40 #ifdef RINGMESH_WITH_TETGEN 44 #include <geogram/third_party/tetgen/tetgen.h> 70 TetgenMesher() =
default;
73 void tetrahedralize(
const GEO::Mesh& input_mesh,
74 VolumeMeshBuilder< 3 >& output_mesh_builder );
76 void add_points_to_match_quality(
double quality );
80 void initialize_tetgen_args();
81 void tetrahedralize();
83 void copy_mesh_to_tetgen_input(
const GEO::Mesh& M );
84 void copy_vertices_to_tetgen_input(
const GEO::Mesh& M );
85 void copy_edges_to_tetgen_input(
const GEO::Mesh& M );
86 void copy_polygons_to_tetgen_input(
const GEO::Mesh& M );
88 void set_regions(
const std::vector< vec3 >& one_point_per_region );
90 void assign_result_tetmesh_to_mesh(
91 VolumeMeshBuilder< 3 >& output_mesh_builder )
const;
92 std::vector< double > get_result_tetmesh_points()
const;
93 std::vector< index_t > get_result_tetmesh_tets()
const;
94 std::set< double > determine_tet_regions_to_keep()
const;
95 std::vector< index_t > determine_tets_to_keep()
const;
98 GEO_3rdParty::tetgenio tetgen_in_;
99 GEO_3rdParty::tetgenio tetgen_out_;
108 std::string tetgen_command_line_ = std::string(
"QpnYAA" );
109 GEO_3rdParty::tetgenbehavior tetgen_args_;
111 std::unique_ptr< GEO_3rdParty::tetgenio::polygon[] > polygons_{};
112 std::unique_ptr< int[] > polygon_corners_{};
121 void RINGMESH_API tetrahedralize_mesh_tetgen(
122 VolumeMeshBuilder< 3 >& out_mesh_builder,
123 const GEO::Mesh& in_mesh,
#define ringmesh_disable_copy_and_move(Class)
#define FORWARD_DECLARATION_DIMENSION_CLASS(Class)
Classes to build GeoModel from various inputs.