PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
Gedim::MeshUtilities Class Referencefinal

MeshUtilities. More...

#include <MeshUtilities.hpp>

Classes

struct  AgglomerateCell1DInformation
 
struct  AgglomerateCell2DInformation
 
struct  AgglomerateCell3DInformation
 
struct  AgglomerateMeshFromTriangularMeshResult
 
struct  AgglomerateTrianglesResult
 
struct  AgglomerationInformation
 
struct  CheckMesh2DConfiguration
 
struct  CheckMesh3DConfiguration
 
struct  CheckMeshGeometricData2DConfiguration
 
struct  CheckMeshGeometricData3DConfiguration
 
struct  ComputeMesh2DCell1DsResult
 
struct  ComputeMesh3DAlignedCell1DsResult
 
struct  ExtractActiveMeshData
 
struct  ExtractMeshData
 
struct  FilterMeshData
 
struct  FindConcaveCell3DFacesConvexCell2DResult
 
struct  FindPointCell2DResult
 
struct  FindPointCell3DResult
 
struct  FindPointMeshPositionResult
 
struct  Intersect_mesh_polyhedron_result
 
struct  Mesh3DPolyhedron
 
struct  MeshGeometricData1D
 
struct  MeshGeometricData2D
 
struct  MeshGeometricData2DConfig
 
struct  MeshGeometricData3D
 
struct  VTPPolyhedron
 

Public Member Functions

 MeshUtilities ()
 
 ~MeshUtilities ()
 
void ExtractActiveMesh (Gedim::IMeshDAO &mesh, Gedim::MeshUtilities::ExtractActiveMeshData &extractionData) const
 Extract Active Cells from mesh.
 
Gedim::MeshUtilities::FilterMeshData FilterActiveMesh (const Gedim::IMeshDAO &mesh) const
 
Gedim::MeshUtilities::FilterMeshData FilterMesh1D (const std::vector< unsigned int > &cell1DsFilter, const Gedim::IMeshDAO &mesh) const
 Extract mesh1D cells from a mesh.
 
Gedim::MeshUtilities::FilterMeshData FilterMesh2D (const std::vector< unsigned int > &cell2DsFilter, const Gedim::IMeshDAO &mesh) const
 Extract mesh2D cells from a mesh.
 
Gedim::MeshUtilities::FilterMeshData FilterMesh3D (const std::vector< unsigned int > &cell3DsFilter, const Gedim::IMeshDAO &mesh) const
 Extract mesh3D cells from a mesh.
 
Gedim::MeshUtilities::ExtractMeshData ExtractMesh1D (const std::vector< unsigned int > &cell0DsFilter, const std::vector< unsigned int > &cell1DsFilter, const Gedim::IMeshDAO &originalMesh, Gedim::IMeshDAO &mesh) const
 
Gedim::MeshUtilities::ExtractMeshData ExtractMesh2D (const std::vector< unsigned int > &cell0DsFilter, const std::vector< unsigned int > &cell1DsFilter, const std::vector< unsigned int > &cell2DsFilter, const Gedim::IMeshDAO &originalMesh, Gedim::IMeshDAO &mesh) const
 
Gedim::MeshUtilities::ExtractMeshData ExtractMesh3D (const std::vector< unsigned int > &cell0DsFilter, const std::vector< unsigned int > &cell1DsFilter, const std::vector< unsigned int > &cell2DsFilter, const std::vector< unsigned int > &cell3DsFilter, const Gedim::IMeshDAO &originalMesh, Gedim::IMeshDAO &mesh) const
 
void FillMesh1D (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::Vector3d &segmentOrigin, const Eigen::Vector3d &segmentTangent, const std::vector< double > &coordinates, Gedim::IMeshDAO &mesh) const
 Fill Mesh 1D From segment Coordinates.
 
void FillMesh2D (const Eigen::MatrixXd &cell0Ds, const Eigen::MatrixXi &cell1Ds, const std::vector< Eigen::MatrixXi > &cell2Ds, Gedim::IMeshDAO &mesh) const
 Fill a Mesh 2D with vertices, edges and polygons.
 
void FillMesh3D (const Eigen::MatrixXd &cell0Ds, const Eigen::MatrixXi &cell1Ds, const std::vector< Eigen::MatrixXi > &cell2Ds, const std::vector< Mesh3DPolyhedron > &cell3Ds, Gedim::IMeshDAO &mesh) const
 
void FillMesh3D (const Eigen::MatrixXd &cell0Ds, const std::vector< std::pair< unsigned int, unsigned int > > &cell1Ds_vertices, const std::vector< std::vector< unsigned int > > &cell2Ds_vertices, const std::vector< std::vector< unsigned int > > &cell2Ds_edges, const std::vector< std::vector< unsigned int > > &cell3Ds_vertices, const std::vector< std::vector< unsigned int > > &cell3Ds_edges, const std::vector< std::vector< unsigned int > > &cell3Ds_faces, Gedim::IMeshDAO &mesh) const
 
void FillMesh3D (const Eigen::MatrixXd &cell0Ds, const std::vector< std::vector< std::vector< unsigned int > > > &cell3Ds_faces_vertices, Gedim::IMeshDAO &mesh) const
 
void FixCell2DsOrientation (const Gedim::GeometryUtilities &geometryUtilities, IMeshDAO &mesh) const
 
void SetMesh3DMarker (const unsigned int marker, Gedim::IMeshDAO &mesh) const
 
Gedim::MeshUtilities::ComputeMesh2DCell1DsResult ComputeMesh2DCell1Ds (const Eigen::MatrixXd &cell0Ds, const std::vector< Eigen::VectorXi > &cell2Ds) const
 Compute edges in a Mesh 2D with vertices and polygons.
 
void CheckMesh2D (const Gedim::MeshUtilities::CheckMesh2DConfiguration &configuration, const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &convexMesh) const
 Check Mesh2D correctness.
 
void CheckMesh3D (const Gedim::MeshUtilities::CheckMesh3DConfiguration &configuration, const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &mesh) const
 Check Mesh3D correctness.
 
Gedim::MeshUtilities::ComputeMesh3DAlignedCell1DsResult ComputeMesh3DAlignedCell1Ds (const std::vector< std::vector< std::vector< unsigned int > > > &cell3DsAlignedEdgesVertices, const std::vector< std::vector< std::vector< unsigned int > > > &cell3DsAlignedEdgesEdges, const Gedim::IMeshDAO &mesh) const
 Compute edges in a Mesh 2D with vertices and polygons.
 
void CheckMeshGeometricData3D (const Gedim::MeshUtilities::CheckMeshGeometricData3DConfiguration &configuration, const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &mesh, const Gedim::MeshUtilities::MeshGeometricData3D &geometricData) const
 Check MeshGeometricData3D correctness.
 
void Mesh1DFromSegment (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::MatrixXd &segmentVertices, const std::vector< unsigned int > vertexMarkers, Gedim::IMeshDAO &mesh) const
 Create a Mesh 1D with a segment.
 
void Mesh2DFromPolygon (const Eigen::MatrixXd &polygonVertices, const std::vector< unsigned int > vertexMarkers, const std::vector< unsigned int > edgeMarkers, Gedim::IMeshDAO &mesh) const
 Create a Mesh 2D with a polygon.
 
void SetMeshMarkersOnLine (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::Vector3d &lineOrigin, const Eigen::Vector3d &lineTangent, const double &lineTangentSquaredLength, const unsigned int &marker, Gedim::IMeshDAO &mesh) const
 Set the marker on all the mesh 2D elements laying on the line.
 
void SetMeshMarkersOnSegment (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::Vector3d &segment_origin, const Eigen::Vector3d &segment_tangent, const double &segment_tangent_squared_length, const unsigned int &marker, Gedim::IMeshDAO &mesh) const
 
void Mesh3DFromPolyhedron (const Eigen::MatrixXd &polyhedronVertices, const Eigen::MatrixXi &polyhedronEdges, const std::vector< Eigen::MatrixXi > &polyhedronFaces, const std::vector< unsigned int > vertexMarkers, const std::vector< unsigned int > edgeMarkers, const std::vector< unsigned int > faceMarkers, Gedim::IMeshDAO &mesh) const
 Create a Mesh 3D with a polyhedron.
 
void SetMeshMarkersOnPlane (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::Vector3d &planeNormal, const Eigen::Vector3d &planeOrigin, const unsigned int &marker, Gedim::IMeshDAO &mesh) const
 Set the marker on all the mesh 3D elements laying on the plane.
 
void SetMeshMarkersByFaceNormal (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::Vector3d &normal, const std::vector< Eigen::Vector3d > &cell2Ds_normal, const unsigned int &marker, Gedim::IMeshDAO &mesh) const
 
void SetMeshMarkersOnPolygon (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::Vector3d &polygon_plane_normal, const Eigen::Vector3d &polygon_plane_origin, const Eigen::MatrixXd &polygon_vertices_2D, const Eigen::Vector3d &polygon_translation, const Eigen::Matrix3d &polygon_rotation_matrix, const unsigned int &marker, Gedim::IMeshDAO &mesh) const
 
void SetMeshMarkersOnPolygon (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::Vector3d &polygon_plane_normal, const Eigen::Vector3d &polygon_plane_origin, const Eigen::MatrixXd &polygon_vertices_2D, const Eigen::Vector3d &polygon_translation, const Eigen::Matrix3d &polygon_rotation_matrix, const std::vector< Eigen::Vector3d > &cell1Ds_centroid, const std::vector< Eigen::Vector3d > &cell2Ds_centroid, const unsigned int &marker, Gedim::IMeshDAO &mesh) const
 
std::vector< unsigned intMeshCell2DRoots (const Gedim::IMeshDAO &mesh) const
 Extract the mesh Cell2D Roots.
 
MeshGeometricData1D FillMesh1DGeometricData (const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &convexMesh) const
 Fill Mesh1D Geometric Data given a mesh with convex mesh cells.
 
MeshGeometricData1D ImportMeshGeometricData1DFromTxt (const std::string &file_path)
 
void ExportMeshGeometricData1DToTxt (const MeshGeometricData1D &mesh_geometric_data, const std::string &file_path)
 
MeshGeometricData2D FillMesh2DGeometricData (const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &convexMesh) const
 Fill Mesh2D Geometric Data given a mesh with convex mesh cells.
 
MeshUtilities::MeshGeometricData2D FillMesh2DGeometricData (const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &mesh, const std::vector< Gedim::GeometryUtilities::PolygonTypes > &meshCell2DsPolygonType, const MeshGeometricData2DConfig &config=MeshGeometricData2DConfig()) const
 Fill Mesh2D Geometric Data given a mesh with mesh cells type.
 
MeshGeometricData2D FillMesh2DGeometricData (const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &mesh, const Gedim::IMeshDAO &convexMesh, const std::vector< std::vector< unsigned int > > &meshCell2DToConvexCell2DIndices) const
 Fill Mesh2D Geometric Data starting given a mesh with non convex mesh cells and its convex sub-mesh cells.
 
MeshGeometricData2D ImportMeshGeometricData2DFromTxt (const std::string &file_path)
 
void ExportMeshGeometricData2DToTxt (const MeshGeometricData2D &mesh_geometric_data, const std::string &file_path)
 
MeshGeometricData3D FillMesh3DGeometricData (const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &convexMesh) const
 Fill Mesh3D Geometric Data given a mesh with convex mesh cells.
 
MeshGeometricData3D FillMesh3DGeometricData (const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &mesh, const Gedim::IMeshDAO &convexMesh, const std::vector< std::vector< unsigned int > > &meshCell3DToConvexCell3DIndices) const
 Fill Mesh3D Geometric Data starting given a mesh with non convex mesh cells and its convex sub-mesh cells.
 
MeshGeometricData3D FillMesh3DGeometricData (const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &mesh, const std::vector< std::vector< Eigen::MatrixXd > > &cell3Ds_tetra_vertices, const std::vector< std::vector< Eigen::Matrix3d > > &cell2Ds_triangles_3D_vertices) const
 
MeshGeometricData3D ImportMeshGeometricData3DFromTxt (const std::string &file_path)
 
void ExportMeshGeometricData3DToTxt (const MeshGeometricData3D &mesh_geometric_data, const std::string &file_path)
 
void ComputeCell0DCell1DNeighbours (Gedim::IMeshDAO &mesh) const
 
void ComputeCell0DCell2DNeighbours (Gedim::IMeshDAO &mesh) const
 
void ComputeCell0DCell3DNeighbours (Gedim::IMeshDAO &mesh) const
 
void ComputeCell1DCell2DNeighbours (Gedim::IMeshDAO &mesh) const
 Compute Cell1D Cell2DNeighbours with given mesh data.
 
void ComputeCell1DCell3DNeighbours (Gedim::IMeshDAO &mesh) const
 Compute Cell1D Cell3DNeighbours with given mesh data.
 
void ComputeCell2DCell3DNeighbours (Gedim::IMeshDAO &mesh) const
 Compute Cell2D Cell3DNeighbours with given mesh data.
 
void CreateRectangleMesh (const Eigen::Vector3d &rectangleOrigin, const Eigen::Vector3d &rectangleBaseTangent, const Eigen::Vector3d &rectangleHeightTangent, const std::vector< double > &baseMeshCurvilinearCoordinates, const std::vector< double > &heightMeshCurvilinearCoordinates, Gedim::IMeshDAO &mesh) const
 Crete rectange Mesh on rectangle base x height.
 
void CreateStructuredTriangularMesh (const Eigen::Vector3d &rectangleOrigin, const Eigen::Vector3d &rectangleBaseTangent, const Eigen::Vector3d &rectangleHeightTangent, const std::vector< double > &baseMeshCurvilinearCoordinates, const std::vector< double > &heightMeshCurvilinearCoordinates, Gedim::IMeshDAO &mesh) const
 
void CreateParallelepipedMesh (const Eigen::Vector3d &rectangleOrigin, const Eigen::Vector3d &rectangleLengthTangent, const Eigen::Vector3d &rectangleHeightTangent, const Eigen::Vector3d &rectangleWidthTangent, const std::vector< double > &lengthMeshCurvilinearCoordinates, const std::vector< double > &heightMeshCurvilinearCoordinates, const std::vector< double > &widthMeshCurvilinearCoordinates, Gedim::IMeshDAO &mesh) const
 
void CreateTrianglePlusHangingNodesMesh (const Eigen::Vector3d &rectangleOrigin, const Eigen::Vector3d &rectangleBaseTangent, const Eigen::Vector3d &rectangleHeightTangent, const std::vector< double > &baseMeshCurvilinearCoordinates, const std::vector< double > &heightMeshCurvilinearCoordinates, const std::vector< unsigned int > &numberOfAddedVerticesForEachRectangle, const Gedim::GeometryUtilities &geometryUtilities, Gedim::IMeshDAO &mesh) const
 
void CreateRectanglePlusHangingNodesMesh (const Eigen::Vector3d &rectangleOrigin, const Eigen::Vector3d &rectangleBaseTangent, const Eigen::Vector3d &rectangleHeightTangent, const std::vector< double > &baseMeshCurvilinearCoordinates, const std::vector< double > &heightMeshCurvilinearCoordinates, const std::vector< unsigned int > &numberOfAddedVerticesForEachRectangle, const Gedim::GeometryUtilities &geometryUtilities, Gedim::IMeshDAO &mesh) const
 
void CreateQuadrilateralMeshFromTriangularMesh (const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &triangular_mesh, Gedim::IMeshDAO &mesh) const
 Create a quadrilateral mesh starting from a triangular mesh: the mesh is created by dividing triangles intro 3 quadrilaterals obtained by connecting the centroid to edge midpoints.
 
void CreateQuadrilateralMeshFromTriangularMesh (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::MatrixXd &polygonVertices, const double &maxTriangleArea, Gedim::IMeshDAO &mesh) const
 
void CreateTriangularMesh (const Eigen::MatrixXd &polygonVertices, const double &maxTriangleArea, Gedim::IMeshDAO &mesh, const std::string &options="-QDzpqnea") const
 Create triangular mesh on 2D polygon.
 
void CreatePolygonalMesh (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::MatrixXd &polygonVertices, const unsigned int numPoints, const unsigned int numIterations, Gedim::IMeshDAO &mesh, const unsigned int random_seed=0) const
 
void CreateTetrahedralMesh (const Eigen::MatrixXd &polyhedronVertices, const Eigen::MatrixXi &polyhedronEdges, const std::vector< Eigen::MatrixXi > &polyhedronFaces, const double &maxTetrahedronVolume, Gedim::IMeshDAO &mesh, const std::string &options="Qpqfezna") const
 Create tetrahedral mesh on 3D polyhedron.
 
void CreateTetrahedralMesh (const Eigen::MatrixXd &points, const std::vector< std::vector< unsigned int > > &facets, const double &maxTetrahedronVolume, Gedim::IMeshDAO &mesh, const std::string &options="Qpqfezna") const
 
void CreateDelaunayMesh3D (const Eigen::MatrixXd &points, const std::vector< unsigned int > &points_marker, Gedim::IMeshDAO &mesh) const
 
void CreatePolyhedralMesh (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::MatrixXd &polyhedronVertices, const Eigen::MatrixXi &polyhedronEdges, const std::vector< Eigen::MatrixXi > &polyhedronFaces, const unsigned int numPoints, const unsigned int numIterations, Gedim::IMeshDAO &mesh, const unsigned int random_seed=0) const
 
void MakeMeshTriangularFaces (const std::vector< std::vector< unsigned int > > &faces_triangulation, Gedim::IMeshDAO &mesh) const
 
void ImportTriangularMesh (const Gedim::GeometryUtilities &geometry_utilities, const std::string &cell0Ds_file_path, const std::string &cell2Ds_file_path, const std::string &marker_file_path, const char separator, Gedim::IMeshDAO &mesh) const
 Import triangular 2D mesh (non standard simple format)
 
void ImportRegnFaceMesh (const Gedim::GeometryUtilities &geometry_utilities, const std::string &node_file_path, const std::string &ele_file_path, IMeshDAO &mesh) const
 Import regn_face 3D mesh (non standard polyhedral format)
 
void ImportOpenVolumeMesh (const std::string &ovmFilePath, Gedim::IMeshDAO &mesh, std::vector< std::vector< bool > > &meshCell3DsFacesOrientation) const
 Import 3D mesh from OVM file.
 
void ExportMeshToOpenVolume (const Gedim::IMeshDAO &mesh, const std::vector< std::vector< bool > > &meshCell3DsFacesOrientation, const std::string &ovmFilePath) const
 Export 3D mesh to OVM file.
 
void ImportVtkMesh3D (const std::string &vtkFilePath, Gedim::IMeshDAO &mesh) const
 Import 3D mesh from VTK file.
 
void ImportObjectFileFormat (const std::string &offFilePath, Gedim::IMeshDAO &mesh) const
 Import 2D mesh from OFF file.
 
void ExportMeshToObjectFileFormat (const Gedim::IMeshDAO &mesh, const std::string &offFilePath) const
 Export 2D mesh to OFF file.
 
void ImportWavefrontOBJ (const std::string &offFilePath, Gedim::IMeshDAO &mesh) const
 Import 2D mesh from OBJ file.
 
void ExportMeshToWavefrontOBJ (const Gedim::IMeshDAO &mesh, const std::string &offFilePath) const
 Export 2D mesh to OBJ file.
 
void ChangePolygonMeshMarkers (const Eigen::MatrixXd &polygonVertices, const std::vector< unsigned int > &cell0DMarkers, const std::vector< unsigned int > &cell1DMarkers, Gedim::IMeshDAO &mesh) const
 Change Polygon Mesh Markers from { 1, 2, 3, 4, ..., numVertices } for cell0Ds and { 5, 6, 7, 8, ..., 2 * numVertices } for cell1Ds to cell0DMarkers and cell1DMarkers.
 
void ChangePolyhedronMeshMarkers (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::MatrixXd &polyhedron_vertices, const Eigen::MatrixXi &polyhedron_edges, const std::vector< Eigen::MatrixXi > &polyhedron_faces, const Eigen::MatrixXd &polyhedron_edges_tangent, const Eigen::VectorXd &polyhedron_edges_length, const std::vector< Eigen::Vector3d > &polyhedron_faces_normal, const std::vector< Eigen::MatrixXd > &polyhedron_faces_vertices, const std::vector< Eigen::MatrixXd > &polyhedron_faces_vertices_2D, const std::vector< Eigen::Vector3d > &polyhedron_faces_translation, const std::vector< Eigen::Matrix3d > &polyhedron_faces_rotation_matrix, const std::vector< unsigned int > &polyhedron_vertices_marker, const std::vector< unsigned int > &polyhedron_edges_marker, const std::vector< unsigned int > &polyhedron_faces_marker, const std::vector< Eigen::Vector3d > &cell1Ds_centroid, const std::vector< Eigen::Vector3d > &cell2Ds_centroid, Gedim::IMeshDAO &mesh) const
 
void ExportMeshToVTU (const Gedim::IMeshDAO &mesh, const std::string &exportFolder, const std::string &fileName, const bool &separateFile=false) const
 Export Mesh To VTU.
 
void ExportMeshToUCD (const Gedim::IMeshDAO &mesh, const std::string &exportFolder, const std::string &fileName, const bool &separateFile=false) const
 Export Mesh To UCD.
 
void ExportMeshToMEDIT (const Gedim::IMeshDAO &mesh, const std::string &exportFolder, const std::string &fileName, const bool &separateFile=false, const unsigned int &order=1) const
 Export Mesh To MEDIT.
 
void ExportCell2DToVTU (const Gedim::IMeshDAO &mesh, const unsigned int &cell2DIndex, const Eigen::MatrixXd &cell2DVertices, const std::vector< Eigen::Matrix3d > &cell2DTriangulations, const double &cell2DArea, const Eigen::Vector3d &cell2DCentroid, const std::string &exportFolder) const
 Export Cell2D To VTU.
 
void ExportCell3DToVTU (const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &mesh, const unsigned int &cell3DIndex, const Eigen::MatrixXd &cell3DVertices, const std::vector< Eigen::MatrixXd > &cell3DTetrahedrons, const std::vector< std::vector< Eigen::Matrix3d > > &cell3DFaces3DTriangulations, const double &cell3DVolume, const Eigen::Vector3d &cell3DCentroid, const std::vector< Eigen::Vector3d > &cell3DFacesTranslation, const std::vector< Eigen::Matrix3d > &cell3DFacesRotationMatrix, const std::vector< double > &cell3DFacesArea, const std::vector< Eigen::MatrixXd > &cell3DFaces2DVertices, const std::vector< Eigen::MatrixXd > &cell3DFaces3DVertices, const std::vector< Eigen::VectorXd > &cell3DFacesEdgeLengths, const std::vector< std::vector< bool > > &cell3DFacesEdgeDirections, const std::vector< Eigen::MatrixXd > &cell3DFacesEdges2DTangent, const std::vector< Eigen::MatrixXd > &cell3DFacesEdges2DNormal, const std::vector< Eigen::Vector3d > &cell3DFacesNormals, const std::vector< bool > &cell3DFacesNormalDirections, const std::vector< Eigen::Vector3d > &cell3DFaces2DCentroids, const std::string &exportFolder) const
 
Gedim::GeometryUtilities::Polyhedron MeshCell3DToPolyhedron (const Gedim::IMeshDAO &mesh, const unsigned int &cell3DIndex) const
 Convert a mesh cell3D to a geometric polydheron.
 
MeshUtilities::VTPPolyhedron MeshCell3DToVTPPolyhedron (const Gedim::IMeshDAO &mesh, const unsigned int &cell3DIndex) const
 Convert a mesh cell3D to a VTP polydheron.
 
std::vector< unsigned intSplitCell1D (const unsigned int &cell1DIndex, const Eigen::MatrixXi subCell1Ds, Gedim::IMeshDAO &mesh) const
 Split cell2D into subcells.
 
std::vector< unsigned intSplitCell2D (const unsigned int &cell2DIndex, const std::vector< Eigen::MatrixXi > &subCell2Ds, Gedim::IMeshDAO &mesh) const
 Split cell2D into subcells.
 
std::vector< unsigned intSplitCell3D (const unsigned int &cell3DIndex, const std::vector< std::vector< unsigned int > > &subCell3DsVertices, const std::vector< std::vector< unsigned int > > &subCell3DsEdges, const std::vector< std::vector< unsigned int > > &subCell3DsFaces, Gedim::IMeshDAO &mesh) const
 Split cell3D into subcells.
 
Gedim::MeshUtilities::AgglomerateCell1DInformation AgglomerateCell1Ds (const std::unordered_set< unsigned int > &cell1DsIndex, const Gedim::IMeshDAO &mesh) const
 
Gedim::MeshUtilities::AgglomerateCell2DInformation AgglomerateCell2Ds (const Gedim::GeometryUtilities &geometryUtilities, const std::unordered_set< unsigned int > &cell2DsIndex, const Gedim::IMeshDAO &mesh) const
 
Gedim::MeshUtilities::AgglomerateCell3DInformation AgglomerateCell3Ds (const std::unordered_set< unsigned int > &cell3DsIndex, const Gedim::IMeshDAO &mesh) const
 
unsigned int AgglomerateCell1Ds (const std::unordered_set< unsigned int > &subCell1DsIndex, const std::vector< unsigned int > &agglomerateCell1DVertices, const std::vector< unsigned int > &subCell1DsRemovedCell0Ds, Gedim::IMeshDAO &mesh, std::vector< std::vector< unsigned int > > &meshCell1DsOriginalCell1Ds, const bool mantain_neigh2D_order=false) const
 
unsigned int AgglomerateCell2Ds (const std::unordered_set< unsigned int > &subCell2DsIndex, const std::vector< unsigned int > &agglomerateCell2DVertices, const std::vector< unsigned int > &agglomerateCell2DEdges, const std::vector< unsigned int > &subCell2DsRemovedCell0Ds, const std::vector< unsigned int > &subCell2DsRemovedCell1Ds, Gedim::IMeshDAO &mesh, std::vector< std::vector< unsigned int > > &meshCell2DsOriginalCell2Ds) const
 
unsigned int AgglomerateCell3Ds (const std::unordered_set< unsigned int > &subCell3DsIndex, const std::vector< unsigned int > &agglomerateCell3DVertices, const std::vector< unsigned int > &agglomerateCell3DEdges, const std::vector< unsigned int > &agglomerateCell3DFaces, const std::vector< unsigned int > &subCell3DsRemovedCell0Ds, const std::vector< unsigned int > &subCell3DsRemovedCell1Ds, const std::vector< unsigned int > &subCell3DsRemovedCell2Ds, Gedim::IMeshDAO &mesh, std::vector< std::vector< unsigned int > > &meshCell3DsOriginalCell3Ds) const
 
void CreateRandomlyDeformedQuadrilaterals (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::Vector3d &rectangleOrigin, const Eigen::Vector3d &rectangleBaseTangent, const Eigen::Vector3d &rectangleHeightTangent, const unsigned int &numQuadrilateralsBaseTangent, const unsigned int &numQuadrilateralsHeightTangent, const double &maxDeformingPercentageBase, const double &maxDeformingPercentageHeight, Gedim::IMeshDAO &mesh) const
 
void CreateDistortedQuadrilaterals (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::Vector3d &rectangleOrigin, const Eigen::Vector3d &rectangleBaseTangent, const Eigen::Vector3d &rectangleHeightTangent, const unsigned int &numQuadrilateralsBaseTangent, const unsigned int &numQuadrilateralsHeightTangent, Gedim::IMeshDAO &mesh) const
 
std::vector< unsigned intFindCell2DsCommonVertices (const std::vector< unsigned int > &cell2DsIndex, const Gedim::IMeshDAO &mesh) const
 Given a set of Cell2Ds find the common Cell0Ds.
 
std::vector< unsigned intFindCell2DsCommonEdges (const std::vector< unsigned int > &cell2DsIndex, const Gedim::IMeshDAO &mesh) const
 Given a set of Cell2Ds find the common Cell1Ds.
 
Gedim::MeshUtilities::FindConcaveCell3DFacesConvexCell2DResult FindConcaveCell3DFacesConvexCell2D (const Gedim::GeometryUtilities &geometryUtilities, const unsigned int &concaveCell3DIndex, const Gedim::IMeshDAO &mesh, const Gedim::IMeshDAO &convexMesh, const std::vector< unsigned int > &convexCell3DIndices, const std::vector< Eigen::MatrixXd > &concaveCell3DFaces3DVertices, const std::vector< Eigen::MatrixXd > &concaveCell3DFaces2DVertices, const std::vector< Eigen::Vector3d > &concaveCell3DFacesTranslation, const std::vector< Eigen::Matrix3d > &concaveCell3DFacesRotationMatrix, const std::vector< Eigen::Vector3d > &concaveCell3DFacesNormal, const std::vector< std::vector< Eigen::MatrixXd > > &convexCell3DsFaces3DVertices, const std::vector< std::vector< std::vector< unsigned int > > > &convexCell3DsFacesUnalignedVertices) const
 
Gedim::MeshUtilities::FindConcaveCell3DFacesConvexCell2DResult FindConcaveCell3DFacesConvexCell2D (const Gedim::GeometryUtilities &geometryUtilities, const unsigned int &concaveCell3DIndex, const Gedim::IMeshDAO &mesh, const std::vector< Eigen::MatrixXd > &concaveCell3DTetra, const std::vector< std::vector< Eigen::Matrix3d > > &concaveCell3D_faces_2D_triangles, const std::vector< Eigen::MatrixXd > &concaveCell3DFaces3DVertices, const std::vector< Eigen::Vector3d > &concaveCell3DFacesTranslation, const std::vector< Eigen::Matrix3d > &concaveCell3DFacesRotationMatrix, const std::vector< Eigen::Vector3d > &concaveCell3DFacesNormal, const std::vector< std::vector< Eigen::MatrixXd > > &convexCell3DsFaces3DVertices, const std::vector< std::vector< std::vector< unsigned int > > > &convexCell3DsFacesUnalignedVertices) const
 
Gedim::MeshUtilities::FindPointMeshPositionResult FindPointMeshPosition (const MeshUtilities::FindPointCell2DResult &find_cell2D_result, const Gedim::IMeshDAO &mesh) const
 
Gedim::MeshUtilities::FindPointMeshPositionResult FindPointMeshPosition (const MeshUtilities::FindPointCell3DResult &find_cell3D_result, const Gedim::IMeshDAO &mesh) const
 
Gedim::MeshUtilities::FindPointCell2DResult FindPointCell2D (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::Vector3d &point, const Gedim::IMeshDAO &mesh, const std::vector< Eigen::MatrixXd > &cell2DsVertices, const std::vector< Eigen::MatrixXd > &cell2DsBoundingBox, const bool find_only_first_cell2D=true, const unsigned int starting_cell2D_index=0) const
 
Gedim::MeshUtilities::FindPointCell3DResult FindPointCell3D (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::Vector3d &point, const Gedim::IMeshDAO &mesh, const std::vector< std::vector< Eigen::MatrixXi > > &cell3DsFaces, const std::vector< std::vector< Eigen::MatrixXd > > &cell3DsFaceVertices, const std::vector< std::vector< Eigen::MatrixXd > > &cell3DsFaceRotatedVertices, const std::vector< std::vector< Eigen::Vector3d > > &cell3DsFaceNormals, const std::vector< std::vector< bool > > &cell3DsFaceNormalDirections, const std::vector< std::vector< Eigen::Vector3d > > &cell3DsFaceTranslations, const std::vector< std::vector< Eigen::Matrix3d > > &cell3DsFaceRotationMatrices, const std::vector< Eigen::MatrixXd > &cell3DsBoundingBox, const bool find_only_first_cell3D=true, const unsigned int starting_cell3D_index=0) const
 
Gedim::MeshUtilities::FindPointCell3DResult FindPointCell3D (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::Vector3d &point, const Gedim::IMeshDAO &mesh, const std::vector< std::vector< Eigen::MatrixXi > > &cell3DsFaces, const std::vector< std::vector< Eigen::MatrixXd > > &cell3DsFaceVertices, const std::vector< std::vector< Eigen::MatrixXd > > &cell3DsFaceRotatedVertices, const std::vector< std::vector< Eigen::Vector3d > > &cell3DsFaceNormals, const std::vector< std::vector< bool > > &cell3DsFaceNormalDirections, const std::vector< std::vector< Eigen::Vector3d > > &cell3DsFaceTranslations, const std::vector< std::vector< Eigen::Matrix3d > > &cell3DsFaceRotationMatrices, const std::vector< Eigen::MatrixXd > &cell3DsBoundingBox, const std::vector< std::vector< Eigen::MatrixXd > > &cell3DsTetrahedra, const bool find_only_first_cell3D, const unsigned int starting_cell3D_index) const
 
Gedim::MeshUtilities::AgglomerateTrianglesResult AgglomerateTriangles (const std::vector< unsigned int > &trianglesIndexToAgglomerate, Gedim::IMeshDAO &triangularMesh) const
 Agglomerate Triangles with one vertex in common.
 
Gedim::MeshUtilities::AgglomerateMeshFromTriangularMeshResult AgglomerateMeshFromTriangularMesh (const std::vector< std::vector< unsigned int > > &trianglesIndicesToAgglomerate, Gedim::IMeshDAO &triangularMesh) const
 
Gedim::MeshUtilities::AgglomerationInformation ImportAgglomerationInformationFromCsv (const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &originalMesh, const Gedim::IMeshDAO &agglomeratedMesh, const std::string &fileName, const char &separator) const
 Import Agglomeration mesh Information From file Csv.
 
Gedim::MeshUtilities::AgglomerationInformation ImportAgglomerationInformationFromOFF (const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &originalMesh, const Gedim::IMeshDAO &agglomeratedMesh, const std::string &fileName, const char &separator) const
 Import Agglomeration mesh Information From file OFF.
 
void ExportMeshToCsv (const Gedim::IMeshDAO &mesh, const char &separator, const std::string &exportFolderPath) const
 Export mesh to csv file.
 
void ExportConcaveMesh2DToCsv (const Gedim::IMeshDAO &mesh, const std::vector< std::vector< unsigned int > > &convexCell2DsIndex, const char &separator, const std::string &exportFolderPath) const
 Export 2D concave mesh to csv file.
 
std::vector< unsigned intMarkCells (const std::function< Eigen::VectorXi(const Eigen::MatrixXd &)> &marking_function, const std::vector< Eigen::MatrixXd > &cells_points, const unsigned int default_mark) const
 
Gedim::MeshUtilities::Intersect_mesh_polyhedron_result Intersect_mesh_polyhedron (const Gedim::GeometryUtilities &geometry_utilities, const Eigen::MatrixXd &polyhedron_vertices, const Eigen::MatrixXi &polyhedron_edges, const std::vector< Eigen::MatrixXd > &polyhedron_edges_vertices, const Eigen::MatrixXd &polyhedron_edges_tangent, const std::vector< Eigen::MatrixXd > &polyhedron_edges_boudingBox, const std::vector< Eigen::MatrixXi > &polyhedron_faces, const std::vector< Eigen::MatrixXd > &polyhedron_faces_vertices, const std::vector< Eigen::MatrixXd > &polyhedron_faces_rotated_vertices, const std::vector< Eigen::Vector3d > &polyhedron_faces_normals, const std::vector< bool > &polyhedron_faces_normal_direction, const std::vector< Eigen::Vector3d > &polyhedron_faces_translation, const std::vector< Eigen::Matrix3d > &polyhedron_faces_rotation_matrix, const std::vector< Eigen::MatrixXd > &polyhedron_faces_boudingBox, const Eigen::MatrixXd &polyhedron_boudingBox, const Gedim::IMeshDAO &mesh, const std::vector< Eigen::MatrixXd > &mesh_cell1Ds_boudingBox, const std::vector< Eigen::MatrixXd > &mesh_cell1Ds_vertices, const std::vector< Eigen::Vector3d > &mesh_cell1Ds_tangent, const std::vector< Eigen::MatrixXd > &mesh_cell2Ds_vertices, const std::vector< Eigen::Vector3d > &mesh_cell2Ds_normal, const std::vector< Eigen::MatrixXd > &mesh_cell2Ds_2D_vertices, const std::vector< Eigen::Vector3d > &mesh_cell2Ds_translation, const std::vector< Eigen::Matrix3d > &mesh_cell2Ds_rotation_matrix, const std::vector< Eigen::MatrixXd > &mesh_cell2Ds_boudingBox, const std::vector< Eigen::MatrixXd > &mesh_cell3Ds_boudingBox, const std::vector< std::vector< Eigen::MatrixXi > > &mesh_cell3Ds_faces, const std::vector< std::vector< Eigen::MatrixXd > > &mesh_cell3Ds_faces_vertices, const std::vector< std::vector< Eigen::MatrixXd > > &mesh_cell3Ds_faces_2D_vertices, const std::vector< std::vector< Eigen::Vector3d > > &mesh_cell3Ds_faces_normal, const std::vector< std::vector< bool > > &mesh_cell3Ds_faces_normal_directions, const std::vector< std::vector< Eigen::Vector3d > > &mesh_cell3Ds_faces_translation, const std::vector< std::vector< Eigen::Matrix3d > > &mesh_cell3Ds_faces_rotation_matrix) const
 
void SetPolygonMeshMarkers (const Gedim::GeometryUtilities &geometryUtilities, const Eigen::MatrixXd &polygonVertices, const std::vector< unsigned int > &cell0DMarkers, const std::vector< unsigned int > &cell1DMarkers, Gedim::IMeshDAO &mesh) const
 
void CheckMeshGeometricData2D (const Gedim::MeshUtilities::CheckMeshGeometricData2DConfiguration &configuration, const Gedim::GeometryUtilities &geometryUtilities, const Gedim::IMeshDAO &mesh, const MeshGeometricData2D &geometricData) const
 
void CreatePolygonIntersectionMesh (const Gedim::GeometryUtilities &geometry_utilities, const Eigen::MatrixXd &interface_vertices, Gedim::IMeshDAO &mesh) const
 
bool CollapseCell1D (const unsigned int cell1D_index, Gedim::IMeshDAO &mesh) const
 
void Mesh3DFromPolyhedra (const Gedim::GeometryUtilities &geometry_utilities, const std::vector< Gedim::GeometryUtilities::Polyhedron > &polyhedra, Gedim::IMeshDAO &mesh) const
 

Detailed Description

MeshUtilities.

Constructor & Destructor Documentation

◆ MeshUtilities()

Gedim::MeshUtilities::MeshUtilities ( )
inline

◆ ~MeshUtilities()

Gedim::MeshUtilities::~MeshUtilities ( )
inline

Member Function Documentation

◆ AgglomerateCell1Ds() [1/2]

MeshUtilities::AgglomerateCell1DInformation Gedim::MeshUtilities::AgglomerateCell1Ds ( const std::unordered_set< unsigned int > &  cell1DsIndex,
const Gedim::IMeshDAO mesh 
) const

◆ AgglomerateCell1Ds() [2/2]

unsigned int Gedim::MeshUtilities::AgglomerateCell1Ds ( const std::unordered_set< unsigned int > &  subCell1DsIndex,
const std::vector< unsigned int > &  agglomerateCell1DVertices,
const std::vector< unsigned int > &  subCell1DsRemovedCell0Ds,
Gedim::IMeshDAO mesh,
std::vector< std::vector< unsigned int > > &  meshCell1DsOriginalCell1Ds,
const bool  mantain_neigh2D_order = false 
) const

◆ AgglomerateCell2Ds() [1/2]

MeshUtilities::AgglomerateCell2DInformation Gedim::MeshUtilities::AgglomerateCell2Ds ( const Gedim::GeometryUtilities geometryUtilities,
const std::unordered_set< unsigned int > &  cell2DsIndex,
const Gedim::IMeshDAO mesh 
) const

◆ AgglomerateCell2Ds() [2/2]

unsigned int Gedim::MeshUtilities::AgglomerateCell2Ds ( const std::unordered_set< unsigned int > &  subCell2DsIndex,
const std::vector< unsigned int > &  agglomerateCell2DVertices,
const std::vector< unsigned int > &  agglomerateCell2DEdges,
const std::vector< unsigned int > &  subCell2DsRemovedCell0Ds,
const std::vector< unsigned int > &  subCell2DsRemovedCell1Ds,
Gedim::IMeshDAO mesh,
std::vector< std::vector< unsigned int > > &  meshCell2DsOriginalCell2Ds 
) const

◆ AgglomerateCell3Ds() [1/2]

MeshUtilities::AgglomerateCell3DInformation Gedim::MeshUtilities::AgglomerateCell3Ds ( const std::unordered_set< unsigned int > &  cell3DsIndex,
const Gedim::IMeshDAO mesh 
) const

◆ AgglomerateCell3Ds() [2/2]

unsigned int Gedim::MeshUtilities::AgglomerateCell3Ds ( const std::unordered_set< unsigned int > &  subCell3DsIndex,
const std::vector< unsigned int > &  agglomerateCell3DVertices,
const std::vector< unsigned int > &  agglomerateCell3DEdges,
const std::vector< unsigned int > &  agglomerateCell3DFaces,
const std::vector< unsigned int > &  subCell3DsRemovedCell0Ds,
const std::vector< unsigned int > &  subCell3DsRemovedCell1Ds,
const std::vector< unsigned int > &  subCell3DsRemovedCell2Ds,
Gedim::IMeshDAO mesh,
std::vector< std::vector< unsigned int > > &  meshCell3DsOriginalCell3Ds 
) const

◆ AgglomerateMeshFromTriangularMesh()

MeshUtilities::AgglomerateMeshFromTriangularMeshResult Gedim::MeshUtilities::AgglomerateMeshFromTriangularMesh ( const std::vector< std::vector< unsigned int > > &  trianglesIndicesToAgglomerate,
Gedim::IMeshDAO triangularMesh 
) const

◆ AgglomerateTriangles()

MeshUtilities::AgglomerateTrianglesResult Gedim::MeshUtilities::AgglomerateTriangles ( const std::vector< unsigned int > &  trianglesIndexToAgglomerate,
Gedim::IMeshDAO triangularMesh 
) const

Agglomerate Triangles with one vertex in common.

Parameters
trianglesIndexToAgglomeratethe cell2Ds triangular index in the mesh
triangularMeshthe triangular mesh
Returns
the agglomearted polygon indices
Note
the triangular index shall be done counterclockwise

◆ ChangePolygonMeshMarkers()

void Gedim::MeshUtilities::ChangePolygonMeshMarkers ( const Eigen::MatrixXd &  polygonVertices,
const std::vector< unsigned int > &  cell0DMarkers,
const std::vector< unsigned int > &  cell1DMarkers,
Gedim::IMeshDAO mesh 
) const

Change Polygon Mesh Markers from { 1, 2, 3, 4, ..., numVertices } for cell0Ds and { 5, 6, 7, 8, ..., 2 * numVertices } for cell1Ds to cell0DMarkers and cell1DMarkers.

Parameters
polygonVerticesthe 2D polygon vertices, size 3xnumVertices
cell0DMarkersthe new cell0D markers, size 1xnumPolygonVertices
cell1DMarkersthe new cell1D markers, size 1xnumPolygonVertices
meshthe mesh

◆ ChangePolyhedronMeshMarkers()

void Gedim::MeshUtilities::ChangePolyhedronMeshMarkers ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::MatrixXd &  polyhedron_vertices,
const Eigen::MatrixXi &  polyhedron_edges,
const std::vector< Eigen::MatrixXi > &  polyhedron_faces,
const Eigen::MatrixXd &  polyhedron_edges_tangent,
const Eigen::VectorXd &  polyhedron_edges_length,
const std::vector< Eigen::Vector3d > &  polyhedron_faces_normal,
const std::vector< Eigen::MatrixXd > &  polyhedron_faces_vertices,
const std::vector< Eigen::MatrixXd > &  polyhedron_faces_vertices_2D,
const std::vector< Eigen::Vector3d > &  polyhedron_faces_translation,
const std::vector< Eigen::Matrix3d > &  polyhedron_faces_rotation_matrix,
const std::vector< unsigned int > &  polyhedron_vertices_marker,
const std::vector< unsigned int > &  polyhedron_edges_marker,
const std::vector< unsigned int > &  polyhedron_faces_marker,
const std::vector< Eigen::Vector3d > &  cell1Ds_centroid,
const std::vector< Eigen::Vector3d > &  cell2Ds_centroid,
Gedim::IMeshDAO mesh 
) const

◆ CheckMesh2D()

void Gedim::MeshUtilities::CheckMesh2D ( const Gedim::MeshUtilities::CheckMesh2DConfiguration configuration,
const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO convexMesh 
) const

Check Mesh2D correctness.

Parameters
Gedim::GeometryUtilitiesthe geometry utilities
convexMesha convex 2D mesh

◆ CheckMesh3D()

void Gedim::MeshUtilities::CheckMesh3D ( const Gedim::MeshUtilities::CheckMesh3DConfiguration configuration,
const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO mesh 
) const

Check Mesh3D correctness.

Parameters
Gedim::GeometryUtilitiesthe geometry utilities
mesha 3D mesh

◆ CheckMeshGeometricData2D()

void Gedim::MeshUtilities::CheckMeshGeometricData2D ( const Gedim::MeshUtilities::CheckMeshGeometricData2DConfiguration configuration,
const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO mesh,
const MeshGeometricData2D geometricData 
) const

◆ CheckMeshGeometricData3D()

void Gedim::MeshUtilities::CheckMeshGeometricData3D ( const Gedim::MeshUtilities::CheckMeshGeometricData3DConfiguration configuration,
const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO mesh,
const Gedim::MeshUtilities::MeshGeometricData3D geometricData 
) const

Check MeshGeometricData3D correctness.

Parameters
Gedim::GeometryUtilitiesthe geometry utilities
meshthe 3D mesh
geometricDatathe mesh geometric data

◆ CollapseCell1D()

bool Gedim::MeshUtilities::CollapseCell1D ( const unsigned int  cell1D_index,
Gedim::IMeshDAO mesh 
) const

◆ ComputeCell0DCell1DNeighbours()

void Gedim::MeshUtilities::ComputeCell0DCell1DNeighbours ( Gedim::IMeshDAO mesh) const

◆ ComputeCell0DCell2DNeighbours()

void Gedim::MeshUtilities::ComputeCell0DCell2DNeighbours ( Gedim::IMeshDAO mesh) const

◆ ComputeCell0DCell3DNeighbours()

void Gedim::MeshUtilities::ComputeCell0DCell3DNeighbours ( Gedim::IMeshDAO mesh) const

◆ ComputeCell1DCell2DNeighbours()

void Gedim::MeshUtilities::ComputeCell1DCell2DNeighbours ( Gedim::IMeshDAO mesh) const

Compute Cell1D Cell2DNeighbours with given mesh data.

Parameters
meshthe resulting mesh

◆ ComputeCell1DCell3DNeighbours()

void Gedim::MeshUtilities::ComputeCell1DCell3DNeighbours ( Gedim::IMeshDAO mesh) const

Compute Cell1D Cell3DNeighbours with given mesh data.

Parameters
meshthe resulting mesh

◆ ComputeCell2DCell3DNeighbours()

void Gedim::MeshUtilities::ComputeCell2DCell3DNeighbours ( Gedim::IMeshDAO mesh) const

Compute Cell2D Cell3DNeighbours with given mesh data.

Parameters
meshthe resulting mesh

◆ ComputeMesh2DCell1Ds()

MeshUtilities::ComputeMesh2DCell1DsResult Gedim::MeshUtilities::ComputeMesh2DCell1Ds ( const Eigen::MatrixXd &  cell0Ds,
const std::vector< Eigen::VectorXi > &  cell2Ds 
) const

Compute edges in a Mesh 2D with vertices and polygons.

Parameters
cell0Dsthe coordinates as Eigen MatrixXd of cell0Ds, size 3xCell0DTotalNumber()
cell2Dsthe vertices indices of the cell2Ds ordered counterclockwise, size Cell2DTotalNumber()xCell2DNumberVertices()
Returns
the Cell1Ds data

◆ ComputeMesh3DAlignedCell1Ds()

MeshUtilities::ComputeMesh3DAlignedCell1DsResult Gedim::MeshUtilities::ComputeMesh3DAlignedCell1Ds ( const std::vector< std::vector< std::vector< unsigned int > > > &  cell3DsAlignedEdgesVertices,
const std::vector< std::vector< std::vector< unsigned int > > > &  cell3DsAlignedEdgesEdges,
const Gedim::IMeshDAO mesh 
) const

Compute edges in a Mesh 2D with vertices and polygons.

Parameters
cell0Dsthe coordinates as Eigen MatrixXd of cell0Ds, size 3xCell0DTotalNumber()
cell2Dsthe vertices indices of the cell2Ds ordered counterclockwise, size Cell2DTotalNumber()xCell2DNumberVertices()
Returns
the Cell1Ds data

◆ CreateDelaunayMesh3D()

void Gedim::MeshUtilities::CreateDelaunayMesh3D ( const Eigen::MatrixXd &  points,
const std::vector< unsigned int > &  points_marker,
Gedim::IMeshDAO mesh 
) const

◆ CreateDistortedQuadrilaterals()

void Gedim::MeshUtilities::CreateDistortedQuadrilaterals ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::Vector3d &  rectangleOrigin,
const Eigen::Vector3d &  rectangleBaseTangent,
const Eigen::Vector3d &  rectangleHeightTangent,
const unsigned int numQuadrilateralsBaseTangent,
const unsigned int numQuadrilateralsHeightTangent,
Gedim::IMeshDAO mesh 
) const

◆ CreateParallelepipedMesh()

void Gedim::MeshUtilities::CreateParallelepipedMesh ( const Eigen::Vector3d &  rectangleOrigin,
const Eigen::Vector3d &  rectangleLengthTangent,
const Eigen::Vector3d &  rectangleHeightTangent,
const Eigen::Vector3d &  rectangleWidthTangent,
const std::vector< double > &  lengthMeshCurvilinearCoordinates,
const std::vector< double > &  heightMeshCurvilinearCoordinates,
const std::vector< double > &  widthMeshCurvilinearCoordinates,
Gedim::IMeshDAO mesh 
) const

◆ CreatePolygonalMesh()

void Gedim::MeshUtilities::CreatePolygonalMesh ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::MatrixXd &  polygonVertices,
const unsigned int  numPoints,
const unsigned int  numIterations,
Gedim::IMeshDAO mesh,
const unsigned int  random_seed = 0 
) const

◆ CreatePolygonIntersectionMesh()

void Gedim::MeshUtilities::CreatePolygonIntersectionMesh ( const Gedim::GeometryUtilities geometry_utilities,
const Eigen::MatrixXd &  interface_vertices,
Gedim::IMeshDAO mesh 
) const

◆ CreatePolyhedralMesh()

void Gedim::MeshUtilities::CreatePolyhedralMesh ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::MatrixXd &  polyhedronVertices,
const Eigen::MatrixXi &  polyhedronEdges,
const std::vector< Eigen::MatrixXi > &  polyhedronFaces,
const unsigned int  numPoints,
const unsigned int  numIterations,
Gedim::IMeshDAO mesh,
const unsigned int  random_seed = 0 
) const

◆ CreateQuadrilateralMeshFromTriangularMesh() [1/2]

void Gedim::MeshUtilities::CreateQuadrilateralMeshFromTriangularMesh ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::MatrixXd &  polygonVertices,
const double maxTriangleArea,
Gedim::IMeshDAO mesh 
) const

◆ CreateQuadrilateralMeshFromTriangularMesh() [2/2]

void Gedim::MeshUtilities::CreateQuadrilateralMeshFromTriangularMesh ( const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO triangular_mesh,
Gedim::IMeshDAO mesh 
) const

Create a quadrilateral mesh starting from a triangular mesh: the mesh is created by dividing triangles intro 3 quadrilaterals obtained by connecting the centroid to edge midpoints.

◆ CreateRandomlyDeformedQuadrilaterals()

void Gedim::MeshUtilities::CreateRandomlyDeformedQuadrilaterals ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::Vector3d &  rectangleOrigin,
const Eigen::Vector3d &  rectangleBaseTangent,
const Eigen::Vector3d &  rectangleHeightTangent,
const unsigned int numQuadrilateralsBaseTangent,
const unsigned int numQuadrilateralsHeightTangent,
const double maxDeformingPercentageBase,
const double maxDeformingPercentageHeight,
Gedim::IMeshDAO mesh 
) const

◆ CreateRectangleMesh()

void Gedim::MeshUtilities::CreateRectangleMesh ( const Eigen::Vector3d &  rectangleOrigin,
const Eigen::Vector3d &  rectangleBaseTangent,
const Eigen::Vector3d &  rectangleHeightTangent,
const std::vector< double > &  baseMeshCurvilinearCoordinates,
const std::vector< double > &  heightMeshCurvilinearCoordinates,
Gedim::IMeshDAO mesh 
) const

Crete rectange Mesh on rectangle base x height.

Parameters
rectangleOriginthe rectangle origin point
rectangleBaseTangentthe rectangle base tangent vector
rectangleHeightTangentthe rectangle height tangent vector
baseMeshCurvilinearCoordinatesthe base mesh 1D curvilinear coordinates
heightMeshCurvilinearCoordinatesthe height mesh 1D curvilinear coordinates
Note
markers on border are set as { 1, 2, 3, 4, ..., numVertices } for cell0Ds and { 5, 6, 7, 8, ..., 2 * numVertices } for cell1Ds

◆ CreateRectanglePlusHangingNodesMesh()

void Gedim::MeshUtilities::CreateRectanglePlusHangingNodesMesh ( const Eigen::Vector3d &  rectangleOrigin,
const Eigen::Vector3d &  rectangleBaseTangent,
const Eigen::Vector3d &  rectangleHeightTangent,
const std::vector< double > &  baseMeshCurvilinearCoordinates,
const std::vector< double > &  heightMeshCurvilinearCoordinates,
const std::vector< unsigned int > &  numberOfAddedVerticesForEachRectangle,
const Gedim::GeometryUtilities geometryUtilities,
Gedim::IMeshDAO mesh 
) const

◆ CreateStructuredTriangularMesh()

void Gedim::MeshUtilities::CreateStructuredTriangularMesh ( const Eigen::Vector3d &  rectangleOrigin,
const Eigen::Vector3d &  rectangleBaseTangent,
const Eigen::Vector3d &  rectangleHeightTangent,
const std::vector< double > &  baseMeshCurvilinearCoordinates,
const std::vector< double > &  heightMeshCurvilinearCoordinates,
Gedim::IMeshDAO mesh 
) const

◆ CreateTetrahedralMesh() [1/2]

void Gedim::MeshUtilities::CreateTetrahedralMesh ( const Eigen::MatrixXd &  points,
const std::vector< std::vector< unsigned int > > &  facets,
const double maxTetrahedronVolume,
Gedim::IMeshDAO mesh,
const std::string &  options = "Qpqfezna" 
) const

◆ CreateTetrahedralMesh() [2/2]

void Gedim::MeshUtilities::CreateTetrahedralMesh ( const Eigen::MatrixXd &  polyhedronVertices,
const Eigen::MatrixXi &  polyhedronEdges,
const std::vector< Eigen::MatrixXi > &  polyhedronFaces,
const double maxTetrahedronVolume,
Gedim::IMeshDAO mesh,
const std::string &  options = "Qpqfezna" 
) const

Create tetrahedral mesh on 3D polyhedron.

Parameters
polyhedronVerticesthe polyhedron vertices, size 3 x numVertices
polyhedronEdgesthe polyhedron edges, size 2 x numEdges
polyhedronFacesthe polyhedron face vertices and edges, size numFaces x 2 x numVertices
maxTetrahedronVolumethe maximum tetrahedron area
optionsmesh options, see https://wias-berlin.de/software/tetgen/1.5/doc/manual/manual005.html#cmd-q
Note
markers on border are set as { 1, 2, 3, 4, ..., numVertices } for cell0Ds and { 5, 6, 7, 8, ..., 2 * numVertices } for cell1Ds
use tetgen library

◆ CreateTrianglePlusHangingNodesMesh()

void Gedim::MeshUtilities::CreateTrianglePlusHangingNodesMesh ( const Eigen::Vector3d &  rectangleOrigin,
const Eigen::Vector3d &  rectangleBaseTangent,
const Eigen::Vector3d &  rectangleHeightTangent,
const std::vector< double > &  baseMeshCurvilinearCoordinates,
const std::vector< double > &  heightMeshCurvilinearCoordinates,
const std::vector< unsigned int > &  numberOfAddedVerticesForEachRectangle,
const Gedim::GeometryUtilities geometryUtilities,
Gedim::IMeshDAO mesh 
) const

◆ CreateTriangularMesh()

void Gedim::MeshUtilities::CreateTriangularMesh ( const Eigen::MatrixXd &  polygonVertices,
const double maxTriangleArea,
Gedim::IMeshDAO mesh,
const std::string &  options = "-QDzpqnea" 
) const

Create triangular mesh on 2D polygon.

Parameters
polygonVerticesthe 2D polygon vertices, size 3xnumVertices
maxTriangleAreathe maximum triangular area
optionsmesh options, see https://www.cs.cmu.edu/~quake/triangle.switch.html
Note
markers on border are set as { 1, 2, 3, 4, ..., numVertices } for cell0Ds and { 5, 6, 7, 8, ..., 2 * numVertices } for cell1Ds
use triangle library

◆ ExportCell2DToVTU()

void Gedim::MeshUtilities::ExportCell2DToVTU ( const Gedim::IMeshDAO mesh,
const unsigned int cell2DIndex,
const Eigen::MatrixXd &  cell2DVertices,
const std::vector< Eigen::Matrix3d > &  cell2DTriangulations,
const double cell2DArea,
const Eigen::Vector3d &  cell2DCentroid,
const std::string &  exportFolder 
) const

Export Cell2D To VTU.

Parameters
meshthe mesh
cell2DIndexthe cell2D index
cell2DVerticesthe cell2D vertices
cell2DTriangulationsthe cell2D triangulation
cell2DAreathe cell2D area
cell2DCentroidthe cell2D centroid
exportFolderthe folder in which to export

◆ ExportCell3DToVTU()

void Gedim::MeshUtilities::ExportCell3DToVTU ( const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO mesh,
const unsigned int cell3DIndex,
const Eigen::MatrixXd &  cell3DVertices,
const std::vector< Eigen::MatrixXd > &  cell3DTetrahedrons,
const std::vector< std::vector< Eigen::Matrix3d > > &  cell3DFaces3DTriangulations,
const double cell3DVolume,
const Eigen::Vector3d &  cell3DCentroid,
const std::vector< Eigen::Vector3d > &  cell3DFacesTranslation,
const std::vector< Eigen::Matrix3d > &  cell3DFacesRotationMatrix,
const std::vector< double > &  cell3DFacesArea,
const std::vector< Eigen::MatrixXd > &  cell3DFaces2DVertices,
const std::vector< Eigen::MatrixXd > &  cell3DFaces3DVertices,
const std::vector< Eigen::VectorXd > &  cell3DFacesEdgeLengths,
const std::vector< std::vector< bool > > &  cell3DFacesEdgeDirections,
const std::vector< Eigen::MatrixXd > &  cell3DFacesEdges2DTangent,
const std::vector< Eigen::MatrixXd > &  cell3DFacesEdges2DNormal,
const std::vector< Eigen::Vector3d > &  cell3DFacesNormals,
const std::vector< bool > &  cell3DFacesNormalDirections,
const std::vector< Eigen::Vector3d > &  cell3DFaces2DCentroids,
const std::string &  exportFolder 
) const

◆ ExportConcaveMesh2DToCsv()

void Gedim::MeshUtilities::ExportConcaveMesh2DToCsv ( const Gedim::IMeshDAO mesh,
const std::vector< std::vector< unsigned int > > &  convexCell2DsIndex,
const char separator,
const std::string &  exportFolderPath 
) const

Export 2D concave mesh to csv file.

◆ ExportMeshGeometricData1DToTxt()

void Gedim::MeshUtilities::ExportMeshGeometricData1DToTxt ( const MeshGeometricData1D mesh_geometric_data,
const std::string &  file_path 
)

◆ ExportMeshGeometricData2DToTxt()

void Gedim::MeshUtilities::ExportMeshGeometricData2DToTxt ( const MeshGeometricData2D mesh_geometric_data,
const std::string &  file_path 
)

◆ ExportMeshGeometricData3DToTxt()

void Gedim::MeshUtilities::ExportMeshGeometricData3DToTxt ( const MeshGeometricData3D mesh_geometric_data,
const std::string &  file_path 
)

◆ ExportMeshToCsv()

void Gedim::MeshUtilities::ExportMeshToCsv ( const Gedim::IMeshDAO mesh,
const char separator,
const std::string &  exportFolderPath 
) const

Export mesh to csv file.

◆ ExportMeshToMEDIT()

void Gedim::MeshUtilities::ExportMeshToMEDIT ( const Gedim::IMeshDAO mesh,
const std::string &  exportFolder,
const std::string &  fileName,
const bool separateFile = false,
const unsigned int order = 1 
) const

Export Mesh To MEDIT.

Parameters
meshthe mesh
exportFolderthe folder in which the mesh is exported
order= 1 or order 2 (mid points added)

◆ ExportMeshToObjectFileFormat()

void Gedim::MeshUtilities::ExportMeshToObjectFileFormat ( const Gedim::IMeshDAO mesh,
const std::string &  offFilePath 
) const

Export 2D mesh to OFF file.

◆ ExportMeshToOpenVolume()

void Gedim::MeshUtilities::ExportMeshToOpenVolume ( const Gedim::IMeshDAO mesh,
const std::vector< std::vector< bool > > &  meshCell3DsFacesOrientation,
const std::string &  ovmFilePath 
) const

Export 3D mesh to OVM file.

◆ ExportMeshToUCD()

void Gedim::MeshUtilities::ExportMeshToUCD ( const Gedim::IMeshDAO mesh,
const std::string &  exportFolder,
const std::string &  fileName,
const bool separateFile = false 
) const

Export Mesh To UCD.

Parameters
meshthe mesh
exportFolderthe folder in which the mesh is exported

◆ ExportMeshToVTU()

void Gedim::MeshUtilities::ExportMeshToVTU ( const Gedim::IMeshDAO mesh,
const std::string &  exportFolder,
const std::string &  fileName,
const bool separateFile = false 
) const

Export Mesh To VTU.

Parameters
meshthe mesh
exportFolderthe folder in which the mesh is exported

◆ ExportMeshToWavefrontOBJ()

void Gedim::MeshUtilities::ExportMeshToWavefrontOBJ ( const Gedim::IMeshDAO mesh,
const std::string &  offFilePath 
) const

Export 2D mesh to OBJ file.

◆ ExtractActiveMesh()

void Gedim::MeshUtilities::ExtractActiveMesh ( Gedim::IMeshDAO mesh,
Gedim::MeshUtilities::ExtractActiveMeshData extractionData 
) const

Extract Active Cells from mesh.

Note
the resulting mesh has no inactive elements

◆ ExtractMesh1D()

MeshUtilities::ExtractMeshData Gedim::MeshUtilities::ExtractMesh1D ( const std::vector< unsigned int > &  cell0DsFilter,
const std::vector< unsigned int > &  cell1DsFilter,
const Gedim::IMeshDAO originalMesh,
Gedim::IMeshDAO mesh 
) const

◆ ExtractMesh2D()

MeshUtilities::ExtractMeshData Gedim::MeshUtilities::ExtractMesh2D ( const std::vector< unsigned int > &  cell0DsFilter,
const std::vector< unsigned int > &  cell1DsFilter,
const std::vector< unsigned int > &  cell2DsFilter,
const Gedim::IMeshDAO originalMesh,
Gedim::IMeshDAO mesh 
) const

◆ ExtractMesh3D()

MeshUtilities::ExtractMeshData Gedim::MeshUtilities::ExtractMesh3D ( const std::vector< unsigned int > &  cell0DsFilter,
const std::vector< unsigned int > &  cell1DsFilter,
const std::vector< unsigned int > &  cell2DsFilter,
const std::vector< unsigned int > &  cell3DsFilter,
const Gedim::IMeshDAO originalMesh,
Gedim::IMeshDAO mesh 
) const

◆ FillMesh1D()

void Gedim::MeshUtilities::FillMesh1D ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::Vector3d &  segmentOrigin,
const Eigen::Vector3d &  segmentTangent,
const std::vector< double > &  coordinates,
Gedim::IMeshDAO mesh 
) const

Fill Mesh 1D From segment Coordinates.

Parameters
segmentOriginthe segment origin
segmentTangentthe segment tangent vector
coordinatesrelative coordinates between [0.0, 1.0]
meshthe resulting mesh

◆ FillMesh1DGeometricData()

MeshUtilities::MeshGeometricData1D Gedim::MeshUtilities::FillMesh1DGeometricData ( const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO convexMesh 
) const

Fill Mesh1D Geometric Data given a mesh with convex mesh cells.

Parameters
convexMeshthe convex mesh
Returns
the MeshGeometricData computed

◆ FillMesh2D()

void Gedim::MeshUtilities::FillMesh2D ( const Eigen::MatrixXd &  cell0Ds,
const Eigen::MatrixXi &  cell1Ds,
const std::vector< Eigen::MatrixXi > &  cell2Ds,
Gedim::IMeshDAO mesh 
) const

Fill a Mesh 2D with vertices, edges and polygons.

Parameters
cell0Dsthe coordinates as Eigen MatrixXd of cell0Ds, size 3xCell0DTotalNumber()
cell1Dsthe origin and end as Eigen MatrixXd of cell1Ds, size 2xCell1DTotalNumber()
cell2Dsthe vertices and edges indices of the cell2Ds ordered counterclockwise, size Cell2DTotalNumber()x2xCell2DNumberVertices()

◆ FillMesh2DGeometricData() [1/3]

MeshUtilities::MeshGeometricData2D Gedim::MeshUtilities::FillMesh2DGeometricData ( const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO convexMesh 
) const

Fill Mesh2D Geometric Data given a mesh with convex mesh cells.

Parameters
convexMeshthe convex mesh
Returns
the MeshGeometricData computed

◆ FillMesh2DGeometricData() [2/3]

MeshUtilities::MeshGeometricData2D Gedim::MeshUtilities::FillMesh2DGeometricData ( const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO mesh,
const Gedim::IMeshDAO convexMesh,
const std::vector< std::vector< unsigned int > > &  meshCell2DToConvexCell2DIndices 
) const

Fill Mesh2D Geometric Data starting given a mesh with non convex mesh cells and its convex sub-mesh cells.

Parameters
meshthe mesh
convexMeshthe convex mesh cells of mesh
meshCell2DToConvexCell2DIndicesthe collection of convex cell2Ds for each mesh cell2D
Returns
the MeshGeometricData computed

◆ FillMesh2DGeometricData() [3/3]

MeshUtilities::MeshGeometricData2D Gedim::MeshUtilities::FillMesh2DGeometricData ( const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO mesh,
const std::vector< Gedim::GeometryUtilities::PolygonTypes > &  meshCell2DsPolygonType,
const MeshGeometricData2DConfig config = MeshGeometricData2DConfig() 
) const

Fill Mesh2D Geometric Data given a mesh with mesh cells type.

Parameters
meshthe mesh
meshCell2DsPolygonTypethe cell2D polygon type
Returns
the MeshGeometricData computed

◆ FillMesh3D() [1/3]

void Gedim::MeshUtilities::FillMesh3D ( const Eigen::MatrixXd &  cell0Ds,
const Eigen::MatrixXi &  cell1Ds,
const std::vector< Eigen::MatrixXi > &  cell2Ds,
const std::vector< Mesh3DPolyhedron > &  cell3Ds,
Gedim::IMeshDAO mesh 
) const

◆ FillMesh3D() [2/3]

void Gedim::MeshUtilities::FillMesh3D ( const Eigen::MatrixXd &  cell0Ds,
const std::vector< std::pair< unsigned int, unsigned int > > &  cell1Ds_vertices,
const std::vector< std::vector< unsigned int > > &  cell2Ds_vertices,
const std::vector< std::vector< unsigned int > > &  cell2Ds_edges,
const std::vector< std::vector< unsigned int > > &  cell3Ds_vertices,
const std::vector< std::vector< unsigned int > > &  cell3Ds_edges,
const std::vector< std::vector< unsigned int > > &  cell3Ds_faces,
Gedim::IMeshDAO mesh 
) const

◆ FillMesh3D() [3/3]

void Gedim::MeshUtilities::FillMesh3D ( const Eigen::MatrixXd &  cell0Ds,
const std::vector< std::vector< std::vector< unsigned int > > > &  cell3Ds_faces_vertices,
Gedim::IMeshDAO mesh 
) const

◆ FillMesh3DGeometricData() [1/3]

MeshUtilities::MeshGeometricData3D Gedim::MeshUtilities::FillMesh3DGeometricData ( const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO convexMesh 
) const

Fill Mesh3D Geometric Data given a mesh with convex mesh cells.

Parameters
convexMeshthe convex mesh
Returns
the MeshGeometricData computed

◆ FillMesh3DGeometricData() [2/3]

MeshUtilities::MeshGeometricData3D Gedim::MeshUtilities::FillMesh3DGeometricData ( const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO mesh,
const Gedim::IMeshDAO convexMesh,
const std::vector< std::vector< unsigned int > > &  meshCell3DToConvexCell3DIndices 
) const

Fill Mesh3D Geometric Data starting given a mesh with non convex mesh cells and its convex sub-mesh cells.

Parameters
meshthe mesh
convexMeshthe convex mesh
meshCell2DToConvexCell2DIndicesthe collection of convex cell2Ds for each mesh cell2D
meshCell3DToConvexCell3DIndicesthe collection of convex cell3Ds for each mesh cell3D
Returns
the MeshGeometricData computed

◆ FillMesh3DGeometricData() [3/3]

MeshUtilities::MeshGeometricData3D Gedim::MeshUtilities::FillMesh3DGeometricData ( const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO mesh,
const std::vector< std::vector< Eigen::MatrixXd > > &  cell3Ds_tetra_vertices,
const std::vector< std::vector< Eigen::Matrix3d > > &  cell2Ds_triangles_3D_vertices 
) const

◆ FilterActiveMesh()

MeshUtilities::FilterMeshData Gedim::MeshUtilities::FilterActiveMesh ( const Gedim::IMeshDAO mesh) const

◆ FilterMesh1D()

MeshUtilities::FilterMeshData Gedim::MeshUtilities::FilterMesh1D ( const std::vector< unsigned int > &  cell1DsFilter,
const Gedim::IMeshDAO mesh 
) const

Extract mesh1D cells from a mesh.

◆ FilterMesh2D()

MeshUtilities::FilterMeshData Gedim::MeshUtilities::FilterMesh2D ( const std::vector< unsigned int > &  cell2DsFilter,
const Gedim::IMeshDAO mesh 
) const

Extract mesh2D cells from a mesh.

◆ FilterMesh3D()

MeshUtilities::FilterMeshData Gedim::MeshUtilities::FilterMesh3D ( const std::vector< unsigned int > &  cell3DsFilter,
const Gedim::IMeshDAO mesh 
) const

Extract mesh3D cells from a mesh.

◆ FindCell2DsCommonEdges()

std::vector< unsigned int > Gedim::MeshUtilities::FindCell2DsCommonEdges ( const std::vector< unsigned int > &  cell2DsIndex,
const Gedim::IMeshDAO mesh 
) const

Given a set of Cell2Ds find the common Cell1Ds.

Parameters
cell2DsIndexthe cell2Ds index
meshthe mesh
Returns
the Cell1D indices

◆ FindCell2DsCommonVertices()

std::vector< unsigned int > Gedim::MeshUtilities::FindCell2DsCommonVertices ( const std::vector< unsigned int > &  cell2DsIndex,
const Gedim::IMeshDAO mesh 
) const

Given a set of Cell2Ds find the common Cell0Ds.

Parameters
cell2DsIndexthe cell2Ds index
meshthe mesh
Returns
the Cell0D indices

◆ FindConcaveCell3DFacesConvexCell2D() [1/2]

MeshUtilities::FindConcaveCell3DFacesConvexCell2DResult Gedim::MeshUtilities::FindConcaveCell3DFacesConvexCell2D ( const Gedim::GeometryUtilities geometryUtilities,
const unsigned int concaveCell3DIndex,
const Gedim::IMeshDAO mesh,
const Gedim::IMeshDAO convexMesh,
const std::vector< unsigned int > &  convexCell3DIndices,
const std::vector< Eigen::MatrixXd > &  concaveCell3DFaces3DVertices,
const std::vector< Eigen::MatrixXd > &  concaveCell3DFaces2DVertices,
const std::vector< Eigen::Vector3d > &  concaveCell3DFacesTranslation,
const std::vector< Eigen::Matrix3d > &  concaveCell3DFacesRotationMatrix,
const std::vector< Eigen::Vector3d > &  concaveCell3DFacesNormal,
const std::vector< std::vector< Eigen::MatrixXd > > &  convexCell3DsFaces3DVertices,
const std::vector< std::vector< std::vector< unsigned int > > > &  convexCell3DsFacesUnalignedVertices 
) const

◆ FindConcaveCell3DFacesConvexCell2D() [2/2]

MeshUtilities::FindConcaveCell3DFacesConvexCell2DResult Gedim::MeshUtilities::FindConcaveCell3DFacesConvexCell2D ( const Gedim::GeometryUtilities geometryUtilities,
const unsigned int concaveCell3DIndex,
const Gedim::IMeshDAO mesh,
const std::vector< Eigen::MatrixXd > &  concaveCell3DTetra,
const std::vector< std::vector< Eigen::Matrix3d > > &  concaveCell3D_faces_2D_triangles,
const std::vector< Eigen::MatrixXd > &  concaveCell3DFaces3DVertices,
const std::vector< Eigen::Vector3d > &  concaveCell3DFacesTranslation,
const std::vector< Eigen::Matrix3d > &  concaveCell3DFacesRotationMatrix,
const std::vector< Eigen::Vector3d > &  concaveCell3DFacesNormal,
const std::vector< std::vector< Eigen::MatrixXd > > &  convexCell3DsFaces3DVertices,
const std::vector< std::vector< std::vector< unsigned int > > > &  convexCell3DsFacesUnalignedVertices 
) const

◆ FindPointCell2D()

MeshUtilities::FindPointCell2DResult Gedim::MeshUtilities::FindPointCell2D ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::Vector3d &  point,
const Gedim::IMeshDAO mesh,
const std::vector< Eigen::MatrixXd > &  cell2DsVertices,
const std::vector< Eigen::MatrixXd > &  cell2DsBoundingBox,
const bool  find_only_first_cell2D = true,
const unsigned int  starting_cell2D_index = 0 
) const

◆ FindPointCell3D() [1/2]

MeshUtilities::FindPointCell3DResult Gedim::MeshUtilities::FindPointCell3D ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::Vector3d &  point,
const Gedim::IMeshDAO mesh,
const std::vector< std::vector< Eigen::MatrixXi > > &  cell3DsFaces,
const std::vector< std::vector< Eigen::MatrixXd > > &  cell3DsFaceVertices,
const std::vector< std::vector< Eigen::MatrixXd > > &  cell3DsFaceRotatedVertices,
const std::vector< std::vector< Eigen::Vector3d > > &  cell3DsFaceNormals,
const std::vector< std::vector< bool > > &  cell3DsFaceNormalDirections,
const std::vector< std::vector< Eigen::Vector3d > > &  cell3DsFaceTranslations,
const std::vector< std::vector< Eigen::Matrix3d > > &  cell3DsFaceRotationMatrices,
const std::vector< Eigen::MatrixXd > &  cell3DsBoundingBox,
const bool  find_only_first_cell3D = true,
const unsigned int  starting_cell3D_index = 0 
) const

◆ FindPointCell3D() [2/2]

MeshUtilities::FindPointCell3DResult Gedim::MeshUtilities::FindPointCell3D ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::Vector3d &  point,
const Gedim::IMeshDAO mesh,
const std::vector< std::vector< Eigen::MatrixXi > > &  cell3DsFaces,
const std::vector< std::vector< Eigen::MatrixXd > > &  cell3DsFaceVertices,
const std::vector< std::vector< Eigen::MatrixXd > > &  cell3DsFaceRotatedVertices,
const std::vector< std::vector< Eigen::Vector3d > > &  cell3DsFaceNormals,
const std::vector< std::vector< bool > > &  cell3DsFaceNormalDirections,
const std::vector< std::vector< Eigen::Vector3d > > &  cell3DsFaceTranslations,
const std::vector< std::vector< Eigen::Matrix3d > > &  cell3DsFaceRotationMatrices,
const std::vector< Eigen::MatrixXd > &  cell3DsBoundingBox,
const std::vector< std::vector< Eigen::MatrixXd > > &  cell3DsTetrahedra,
const bool  find_only_first_cell3D,
const unsigned int  starting_cell3D_index 
) const

◆ FindPointMeshPosition() [1/2]

MeshUtilities::FindPointMeshPositionResult Gedim::MeshUtilities::FindPointMeshPosition ( const MeshUtilities::FindPointCell2DResult find_cell2D_result,
const Gedim::IMeshDAO mesh 
) const

◆ FindPointMeshPosition() [2/2]

MeshUtilities::FindPointMeshPositionResult Gedim::MeshUtilities::FindPointMeshPosition ( const MeshUtilities::FindPointCell3DResult find_cell3D_result,
const Gedim::IMeshDAO mesh 
) const

◆ FixCell2DsOrientation()

void Gedim::MeshUtilities::FixCell2DsOrientation ( const Gedim::GeometryUtilities geometryUtilities,
Gedim::IMeshDAO mesh 
) const

◆ ImportAgglomerationInformationFromCsv()

MeshUtilities::AgglomerationInformation Gedim::MeshUtilities::ImportAgglomerationInformationFromCsv ( const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO originalMesh,
const Gedim::IMeshDAO agglomeratedMesh,
const std::string &  fileName,
const char separator 
) const

Import Agglomeration mesh Information From file Csv.

Parameters
Gedim::GeometryUtilitiesthe geometry utilities
originalMeshthe original mesh
agglomeratedMeshthe agglomerated mesh
fileNamethe csv file name
separatorthe csv file separator
originalCell0DToAgglomeratedCell0Dsoriginal Cell0Ds to agglomerated Cell0Ds
originalCell1DToAgglomeratedCell1Dsoriginal Cell1Ds to agglomerated Cell1Ds
originalCell2DToAgglomeratedCell2Dsoriginal Cell2Ds to agglomerated Cell2Ds
agglomeratedCell0DToOriginalCell0Dsagglomerated Cell0Ds to original Cell0Ds
agglomeratedCell1DToOriginalCell1Dsagglomerated Cell1Ds to original Cell1Ds
agglomeratedCell2DToOriginalCell2Dsagglomerated Cell2Ds to original Cell2Ds

◆ ImportAgglomerationInformationFromOFF()

MeshUtilities::AgglomerationInformation Gedim::MeshUtilities::ImportAgglomerationInformationFromOFF ( const Gedim::GeometryUtilities geometryUtilities,
const Gedim::IMeshDAO originalMesh,
const Gedim::IMeshDAO agglomeratedMesh,
const std::string &  fileName,
const char separator 
) const

Import Agglomeration mesh Information From file OFF.

Parameters
Gedim::GeometryUtilitiesthe geometry utilities
originalMeshthe original mesh
agglomeratedMeshthe agglomerated mesh
fileNamethe csv file name
separatorthe csv file separator
originalCell0DToAgglomeratedCell0Dsoriginal Cell0Ds to agglomerated Cell0Ds
originalCell1DToAgglomeratedCell1Dsoriginal Cell1Ds to agglomerated Cell1Ds
originalCell2DToAgglomeratedCell2Dsoriginal Cell2Ds to agglomerated Cell2Ds
agglomeratedCell0DToOriginalCell0Dsagglomerated Cell0Ds to original Cell0Ds
agglomeratedCell1DToOriginalCell1Dsagglomerated Cell1Ds to original Cell1Ds
agglomeratedCell2DToOriginalCell2Dsagglomerated Cell2Ds to original Cell2Ds

◆ ImportMeshGeometricData1DFromTxt()

MeshUtilities::MeshGeometricData1D Gedim::MeshUtilities::ImportMeshGeometricData1DFromTxt ( const std::string &  file_path)

◆ ImportMeshGeometricData2DFromTxt()

MeshUtilities::MeshGeometricData2D Gedim::MeshUtilities::ImportMeshGeometricData2DFromTxt ( const std::string &  file_path)

◆ ImportMeshGeometricData3DFromTxt()

MeshUtilities::MeshGeometricData3D Gedim::MeshUtilities::ImportMeshGeometricData3DFromTxt ( const std::string &  file_path)

◆ ImportObjectFileFormat()

void Gedim::MeshUtilities::ImportObjectFileFormat ( const std::string &  offFilePath,
Gedim::IMeshDAO mesh 
) const

Import 2D mesh from OFF file.

◆ ImportOpenVolumeMesh()

void Gedim::MeshUtilities::ImportOpenVolumeMesh ( const std::string &  ovmFilePath,
Gedim::IMeshDAO mesh,
std::vector< std::vector< bool > > &  meshCell3DsFacesOrientation 
) const

Import 3D mesh from OVM file.

◆ ImportRegnFaceMesh()

void Gedim::MeshUtilities::ImportRegnFaceMesh ( const Gedim::GeometryUtilities geometry_utilities,
const std::string &  node_file_path,
const std::string &  ele_file_path,
IMeshDAO mesh 
) const

Import regn_face 3D mesh (non standard polyhedral format)

Parameters
node_file_pathcell0Ds coordinates
ele_file_pathcell2Ds-cell3Ds connectivity

◆ ImportTriangularMesh()

void Gedim::MeshUtilities::ImportTriangularMesh ( const Gedim::GeometryUtilities geometry_utilities,
const std::string &  cell0Ds_file_path,
const std::string &  cell2Ds_file_path,
const std::string &  marker_file_path,
const char  separator,
Gedim::IMeshDAO mesh 
) const

Import triangular 2D mesh (non standard simple format)

Parameters
cell0Ds_file_pathcell0Ds coordinates
cell2Ds_file_pathcell2Ds connectivity
marker_file_pathmarkers file

◆ ImportVtkMesh3D()

void Gedim::MeshUtilities::ImportVtkMesh3D ( const std::string &  vtkFilePath,
Gedim::IMeshDAO mesh 
) const

Import 3D mesh from VTK file.

◆ ImportWavefrontOBJ()

void Gedim::MeshUtilities::ImportWavefrontOBJ ( const std::string &  offFilePath,
Gedim::IMeshDAO mesh 
) const

Import 2D mesh from OBJ file.

◆ Intersect_mesh_polyhedron()

Gedim::MeshUtilities::Intersect_mesh_polyhedron_result Gedim::MeshUtilities::Intersect_mesh_polyhedron ( const Gedim::GeometryUtilities geometry_utilities,
const Eigen::MatrixXd &  polyhedron_vertices,
const Eigen::MatrixXi &  polyhedron_edges,
const std::vector< Eigen::MatrixXd > &  polyhedron_edges_vertices,
const Eigen::MatrixXd &  polyhedron_edges_tangent,
const std::vector< Eigen::MatrixXd > &  polyhedron_edges_boudingBox,
const std::vector< Eigen::MatrixXi > &  polyhedron_faces,
const std::vector< Eigen::MatrixXd > &  polyhedron_faces_vertices,
const std::vector< Eigen::MatrixXd > &  polyhedron_faces_rotated_vertices,
const std::vector< Eigen::Vector3d > &  polyhedron_faces_normals,
const std::vector< bool > &  polyhedron_faces_normal_direction,
const std::vector< Eigen::Vector3d > &  polyhedron_faces_translation,
const std::vector< Eigen::Matrix3d > &  polyhedron_faces_rotation_matrix,
const std::vector< Eigen::MatrixXd > &  polyhedron_faces_boudingBox,
const Eigen::MatrixXd &  polyhedron_boudingBox,
const Gedim::IMeshDAO mesh,
const std::vector< Eigen::MatrixXd > &  mesh_cell1Ds_boudingBox,
const std::vector< Eigen::MatrixXd > &  mesh_cell1Ds_vertices,
const std::vector< Eigen::Vector3d > &  mesh_cell1Ds_tangent,
const std::vector< Eigen::MatrixXd > &  mesh_cell2Ds_vertices,
const std::vector< Eigen::Vector3d > &  mesh_cell2Ds_normal,
const std::vector< Eigen::MatrixXd > &  mesh_cell2Ds_2D_vertices,
const std::vector< Eigen::Vector3d > &  mesh_cell2Ds_translation,
const std::vector< Eigen::Matrix3d > &  mesh_cell2Ds_rotation_matrix,
const std::vector< Eigen::MatrixXd > &  mesh_cell2Ds_boudingBox,
const std::vector< Eigen::MatrixXd > &  mesh_cell3Ds_boudingBox,
const std::vector< std::vector< Eigen::MatrixXi > > &  mesh_cell3Ds_faces,
const std::vector< std::vector< Eigen::MatrixXd > > &  mesh_cell3Ds_faces_vertices,
const std::vector< std::vector< Eigen::MatrixXd > > &  mesh_cell3Ds_faces_2D_vertices,
const std::vector< std::vector< Eigen::Vector3d > > &  mesh_cell3Ds_faces_normal,
const std::vector< std::vector< bool > > &  mesh_cell3Ds_faces_normal_directions,
const std::vector< std::vector< Eigen::Vector3d > > &  mesh_cell3Ds_faces_translation,
const std::vector< std::vector< Eigen::Matrix3d > > &  mesh_cell3Ds_faces_rotation_matrix 
) const

◆ MakeMeshTriangularFaces()

void Gedim::MeshUtilities::MakeMeshTriangularFaces ( const std::vector< std::vector< unsigned int > > &  faces_triangulation,
Gedim::IMeshDAO mesh 
) const

◆ MarkCells()

std::vector< unsigned int > Gedim::MeshUtilities::MarkCells ( const std::function< Eigen::VectorXi(const Eigen::MatrixXd &)> &  marking_function,
const std::vector< Eigen::MatrixXd > &  cells_points,
const unsigned int  default_mark 
) const

◆ Mesh1DFromSegment()

void Gedim::MeshUtilities::Mesh1DFromSegment ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::MatrixXd &  segmentVertices,
const std::vector< unsigned int vertexMarkers,
Gedim::IMeshDAO mesh 
) const

Create a Mesh 1D with a segment.

Parameters
segmentVerticesthe segment coordinates, size 3x2
vertexMarkersmesh markers of vertices, size 1xNumPolygonVertices()

◆ Mesh2DFromPolygon()

void Gedim::MeshUtilities::Mesh2DFromPolygon ( const Eigen::MatrixXd &  polygonVertices,
const std::vector< unsigned int vertexMarkers,
const std::vector< unsigned int edgeMarkers,
Gedim::IMeshDAO mesh 
) const

Create a Mesh 2D with a polygon.

Parameters
polygonVerticesthe polygon coordinates, size 3xNumPolygonVertices()
vertexMarkersmesh markers of vertices, size 1xNumPolygonVertices()
edgeMarkersmesh markers of edges, size 1xNumPolygonVertices()

◆ Mesh3DFromPolyhedra()

void Gedim::MeshUtilities::Mesh3DFromPolyhedra ( const Gedim::GeometryUtilities geometry_utilities,
const std::vector< Gedim::GeometryUtilities::Polyhedron > &  polyhedra,
Gedim::IMeshDAO mesh 
) const

◆ Mesh3DFromPolyhedron()

void Gedim::MeshUtilities::Mesh3DFromPolyhedron ( const Eigen::MatrixXd &  polyhedronVertices,
const Eigen::MatrixXi &  polyhedronEdges,
const std::vector< Eigen::MatrixXi > &  polyhedronFaces,
const std::vector< unsigned int vertexMarkers,
const std::vector< unsigned int edgeMarkers,
const std::vector< unsigned int faceMarkers,
Gedim::IMeshDAO mesh 
) const

Create a Mesh 3D with a polyhedron.

Parameters
polyhedronVerticesthe polyhedron vertices, size 3 x numVertices
polyhedronEdgesthe polyhedron edges, size 2 x numEdges
polyhedronFacesthe polyhedron face vertices and edges, size numFaces x 2 x numVertices
vertexMarkersmesh markers of vertices, size 1xnumVertices
edgeMarkersmesh markers of edges, size 1xnumEdges
faceMarkersmesh markers of faces, size 1xnumFaces

◆ MeshCell2DRoots()

std::vector< unsigned int > Gedim::MeshUtilities::MeshCell2DRoots ( const Gedim::IMeshDAO mesh) const

Extract the mesh Cell2D Roots.

Parameters
meshthe mesh
Returns
the root cell for each cell2D, size 1xCell2DTotalNumber()

◆ MeshCell3DToPolyhedron()

GeometryUtilities::Polyhedron Gedim::MeshUtilities::MeshCell3DToPolyhedron ( const Gedim::IMeshDAO mesh,
const unsigned int cell3DIndex 
) const

Convert a mesh cell3D to a geometric polydheron.

Parameters
mesha mesh
cell3DIndexthe cell3D index
Returns
polyhedron from mesh 3D cell

◆ MeshCell3DToVTPPolyhedron()

MeshUtilities::VTPPolyhedron Gedim::MeshUtilities::MeshCell3DToVTPPolyhedron ( const Gedim::IMeshDAO mesh,
const unsigned int cell3DIndex 
) const

Convert a mesh cell3D to a VTP polydheron.

Parameters
mesha mesh
cell3DIndexthe cell3D index
Returns
VTP polyhedron from mesh 3D cell

◆ SetMesh3DMarker()

void Gedim::MeshUtilities::SetMesh3DMarker ( const unsigned int  marker,
Gedim::IMeshDAO mesh 
) const

◆ SetMeshMarkersByFaceNormal()

void Gedim::MeshUtilities::SetMeshMarkersByFaceNormal ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::Vector3d &  normal,
const std::vector< Eigen::Vector3d > &  cell2Ds_normal,
const unsigned int marker,
Gedim::IMeshDAO mesh 
) const

◆ SetMeshMarkersOnLine()

void Gedim::MeshUtilities::SetMeshMarkersOnLine ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::Vector3d &  lineOrigin,
const Eigen::Vector3d &  lineTangent,
const double lineTangentSquaredLength,
const unsigned int marker,
Gedim::IMeshDAO mesh 
) const

Set the marker on all the mesh 2D elements laying on the line.

Parameters
Gedim::GeometryUtilitiesthe geometry utilities
lineTangentthe line tangent
lineOriginthe line origin
lineTangentSquaredLengththe line tangent squared length
markerthe marker
meshthe mesh

◆ SetMeshMarkersOnPlane()

void Gedim::MeshUtilities::SetMeshMarkersOnPlane ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::Vector3d &  planeNormal,
const Eigen::Vector3d &  planeOrigin,
const unsigned int marker,
Gedim::IMeshDAO mesh 
) const

Set the marker on all the mesh 3D elements laying on the plane.

Parameters
Gedim::GeometryUtilitiesthe geometry utilities
planeNormalthe plane normal
planeOriginthe plane origin
markerthe marker
meshthe mesh

◆ SetMeshMarkersOnPolygon() [1/2]

void Gedim::MeshUtilities::SetMeshMarkersOnPolygon ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::Vector3d &  polygon_plane_normal,
const Eigen::Vector3d &  polygon_plane_origin,
const Eigen::MatrixXd &  polygon_vertices_2D,
const Eigen::Vector3d &  polygon_translation,
const Eigen::Matrix3d &  polygon_rotation_matrix,
const std::vector< Eigen::Vector3d > &  cell1Ds_centroid,
const std::vector< Eigen::Vector3d > &  cell2Ds_centroid,
const unsigned int marker,
Gedim::IMeshDAO mesh 
) const

◆ SetMeshMarkersOnPolygon() [2/2]

void Gedim::MeshUtilities::SetMeshMarkersOnPolygon ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::Vector3d &  polygon_plane_normal,
const Eigen::Vector3d &  polygon_plane_origin,
const Eigen::MatrixXd &  polygon_vertices_2D,
const Eigen::Vector3d &  polygon_translation,
const Eigen::Matrix3d &  polygon_rotation_matrix,
const unsigned int marker,
Gedim::IMeshDAO mesh 
) const
Warning
Only for convex points

◆ SetMeshMarkersOnSegment()

void Gedim::MeshUtilities::SetMeshMarkersOnSegment ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::Vector3d &  segment_origin,
const Eigen::Vector3d &  segment_tangent,
const double segment_tangent_squared_length,
const unsigned int marker,
Gedim::IMeshDAO mesh 
) const

◆ SetPolygonMeshMarkers()

void Gedim::MeshUtilities::SetPolygonMeshMarkers ( const Gedim::GeometryUtilities geometryUtilities,
const Eigen::MatrixXd &  polygonVertices,
const std::vector< unsigned int > &  cell0DMarkers,
const std::vector< unsigned int > &  cell1DMarkers,
Gedim::IMeshDAO mesh 
) const

◆ SplitCell1D()

std::vector< unsigned int > Gedim::MeshUtilities::SplitCell1D ( const unsigned int cell1DIndex,
const Eigen::MatrixXi  subCell1Ds,
Gedim::IMeshDAO mesh 
) const

Split cell2D into subcells.

Parameters
cell1DIndexthe index of Cell1D from 0 to Cell1DTotalNumber()
subCell1Dsthe list of sub-cells 1D mesh vertices indices, size 2 x numSubCells)
meshthe mesh to update
Returns
the list of new cell1Ds indices, from 0 to Cell1DTotalNumber()

◆ SplitCell2D()

std::vector< unsigned int > Gedim::MeshUtilities::SplitCell2D ( const unsigned int cell2DIndex,
const std::vector< Eigen::MatrixXi > &  subCell2Ds,
Gedim::IMeshDAO mesh 
) const

Split cell2D into subcells.

Parameters
cell2DIndexthe index of Cell2D from 0 to Cell2DTotalNumber()
subCell2Dsthe list of sub-cells 2D mesh vertices and edges indices, size numSubCells x (2 x numVertices)
meshthe mesh to update
Returns
the list of new cell2Ds indices, from 0 to Cell2DTotalNumber()

◆ SplitCell3D()

std::vector< unsigned int > Gedim::MeshUtilities::SplitCell3D ( const unsigned int cell3DIndex,
const std::vector< std::vector< unsigned int > > &  subCell3DsVertices,
const std::vector< std::vector< unsigned int > > &  subCell3DsEdges,
const std::vector< std::vector< unsigned int > > &  subCell3DsFaces,
Gedim::IMeshDAO mesh 
) const

Split cell3D into subcells.

Parameters
cell3DIndexthe index of Cell3D from 0 to Cell3DTotalNumber()
subCell3Dsthe list of sub-cells 3D mesh vertices and edges indices, size numSubCells x (2 x numVertices)
meshthe mesh to update
Returns
the list of new cell3Ds indices, from 0 to Cell3DTotalNumber()

The documentation for this class was generated from the following files: