PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
ConformMeshUtilities.hpp
Go to the documentation of this file.
1// _LICENSE_HEADER_
2//
3// Copyright (C) 2019 - 2025.
4// Terms register on the GPL-3.0 license.
5//
6// This file can be redistributed and/or modified under the license terms.
7//
8// See top level LICENSE file for more details.
9//
10// This file can be used citing references in CITATION.cff file.
11
12#ifndef __ConformMeshUtilities_H
13#define __ConformMeshUtilities_H
14
15#include "IMeshDAO.hpp"
16#include <list>
17
19#include "MeshUtilities.hpp"
20
21namespace Gedim
22{
24{
25 public:
27 {
28 bool PrintStatus = false;
29 std::string VtkExportFolder = "";
30 };
31
32 private:
33 const GeometryUtilities &geometryUtilities;
34 const MeshUtilities &meshUtilities;
35
36 public:
37 ConformMeshUtilities(const GeometryUtilities &geometryUtilities, const MeshUtilities &meshUtilities);
39
40 void ComputeConformedMeshWithSegments(const std::vector<std::list<double>> &segmentsAdditionalPoints,
41 const std::vector<Eigen::MatrixXd> &segmentsVertices,
42 const std::vector<Eigen::Vector3d> &segmentsTangent,
43 const std::vector<Eigen::Vector3d> &segmentsBarycenter,
44 const std::vector<double> &segmentsLength,
45 const std::vector<double> &segmentsSquaredLength,
47 std::vector<IntersectorMesh2DSegment::IntersectionMesh> &segmentsIntersectionMesh,
48 std::vector<std::vector<double>> &segmentsCurvilinearCoordinatesMesh,
49 std::vector<UnionMeshSegment::UnionMesh> &segmentsUnionMesh,
50 std::vector<ConformerMeshSegment::ConformMesh> &segmentsConformMesh,
53
54 void AddConformedMeshProperties(const std::vector<ConformerMeshSegment::ConformMesh> &segmentsConformMesh,
55 IMeshDAO &conformedMesh) const;
56};
57} // namespace Gedim
58
59#endif
Definition ConformMeshUtilities.hpp:24
void AddConformedMeshProperties(const std::vector< ConformerMeshSegment::ConformMesh > &segmentsConformMesh, IMeshDAO &conformedMesh) const
Definition ConformMeshUtilities.cpp:154
void ComputeConformedMeshWithSegments(const std::vector< std::list< double > > &segmentsAdditionalPoints, const std::vector< Eigen::MatrixXd > &segmentsVertices, const std::vector< Eigen::Vector3d > &segmentsTangent, const std::vector< Eigen::Vector3d > &segmentsBarycenter, const std::vector< double > &segmentsLength, const std::vector< double > &segmentsSquaredLength, IMeshDAO &domainMesh, std::vector< IntersectorMesh2DSegment::IntersectionMesh > &segmentsIntersectionMesh, std::vector< std::vector< double > > &segmentsCurvilinearCoordinatesMesh, std::vector< UnionMeshSegment::UnionMesh > &segmentsUnionMesh, std::vector< ConformerMeshSegment::ConformMesh > &segmentsConformMesh, const ConformerMeshPolygon::ConformerMeshPolygonConfiguration::Types &conformDomainMeshType, const ComputeDomainConformedMeshOptions &options) const
Definition ConformMeshUtilities.cpp:27
~ConformMeshUtilities()
Definition ConformMeshUtilities.cpp:23
Eigen column vector.
Definition Eigen_Array.hpp:23
The GeometryUtilities class intersects 3D segments.
Definition GeometryUtilities.hpp:37
The IMeshDAO (mesh data access object) class to read and write mesh data.
Definition IMeshDAO.hpp:24
MeshUtilities.
Definition MeshUtilities.hpp:23
Definition Eigen_Array.cpp:22
bool PrintStatus
Definition ConformMeshUtilities.hpp:28
std::string VtkExportFolder
Definition ConformMeshUtilities.hpp:29