1#ifndef CHI_MESH_MESH_CUTTING_H
2#define CHI_MESH_MESH_CUTTING_H
11 typedef std::pair<uint64_t, uint64_t>
Edge;
24 uint64_t in_cutpoint_id) :
46 const std::vector<uint64_t>& vertex_ids,
51 bool check_convexity=
false);
54 void CutPolygon(
const std::vector<ECI>& cut_edges,
55 const std::set<uint64_t>& cut_vertices,
64 bool check_convexity=
false);
67 const std::vector<std::vector<uint64_t>>& proxy_faces,
71 const std::vector<std::vector<uint64_t>>& proxy_faces);
74 const std::vector<Edge>& edges);
78 const std::vector<std::vector<uint64_t>>& raw_faces,
83 void Cut3DCell(
const std::vector<ECI>& global_cut_edges,
84 const std::set<uint64_t>& number,
96 double merge_tolerance=1.0e-3,
97 double float_compare=1.0e-10);
void PopulatePolygonFromVertices(const MeshContinuum &mesh, const std::vector< uint64_t > &vertex_ids, chi_mesh::Cell &cell)
Edge MakeUniqueEdge(const Edge &edge)
std::set< size_t > FindNeighborFaceIndices(const std::vector< std::vector< uint64_t > > &proxy_faces, size_t face_index)
void CutMeshWithPlane(MeshContinuum &mesh, const Vector3 &plane_point, const Vector3 &plane_normal, double merge_tolerance=1.0e-3, double float_compare=1.0e-10)
void CutPolygon(const std::vector< ECI > &cut_edges, const std::set< uint64_t > &cut_vertices, const Vector3 &plane_point, const Vector3 &plane_normal, MeshContinuum &mesh, chi_mesh::Cell &cell)
Edge MakeEdgeFromPolygonEdgeIndex(const std::vector< uint64_t > &vertex_ids, size_t edge_index)
std::vector< Edge > FindNonManifoldEdges(const std::vector< std::vector< uint64_t > > &proxy_faces)
void Cut3DCell(const std::vector< ECI > &global_cut_edges, const std::set< uint64_t > &number, const Vector3 &plane_point, const Vector3 &plane_normal, double float_compare, MeshContinuum &mesh, chi_mesh::Cell &cell, bool verbose=false)
void PopulatePolyhedronFromFaces(const MeshContinuum &mesh, const std::vector< std::vector< uint64_t > > &raw_faces, chi_mesh::Cell &cell)
std::vector< Edge > StitchEdgesEndToEnd(const std::vector< Edge > &edges)
bool CheckPolyhedronQuality(const MeshContinuum &mesh, const chi_mesh::Cell &cell, bool check_convexity=false)
bool CheckPolygonQuality(const MeshContinuum &mesh, const chi_mesh::Cell &cell, bool check_convexity=false)
chi_mesh::Vector3 GetEdgeCentroid(const Edge &edge, const chi_mesh::MeshContinuum &grid)
std::pair< uint64_t, uint64_t > Edge
ECI(Edge in_edge, uint64_t in_cutpoint_id)
static bool Comparator(const ECI &edge_cut_info, const Edge &ref_edge)