.. index:: pair: class; geode::TetrahedralSolidEpsilonModifier .. _doxid-classgeode_1_1_tetrahedral_solid_epsilon_modifier: class geode::TetrahedralSolidEpsilonModifier ============================================ .. toctree:: :hidden: Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class TetrahedralSolidEpsilonModifier: public :ref:`geode::TetrahedralSolidModifier` { public: // construction :target:`TetrahedralSolidEpsilonModifier`( const TetrahedralSolid3D& solid, TetrahedralSolidBuilder3D& builder ); // methods :ref:`SolidSplitInfo` :ref:`insert_point_in_tetrahedron`( index_t tetrahedron_id, const Point3D& point ); :ref:`SolidSplitInfo` :ref:`insert_point_on_facet`( const PolyhedronFacet& facet, const Point3D& point ); :ref:`SolidSplitEdgeInfo` :ref:`insert_point_on_edge`( const PolyhedronFacetEdge& edge, const Point3D& point ); :ref:`SolidSplitEdgeInfo` :ref:`insert_point_on_edge`(index_t edge_id, const Point3D& point); }; Inherited Members ----------------- .. ref-code-block:: cpp :class: doxyrest-overview-inherited-code-block public: // methods index_t :ref:`updated_vertex`(index_t vertex_id) const; bool :ref:`is_tetrahedron_active`(index_t tetrahedron_id) const; bool :ref:`is_facet_active`(index_t facet_id) const; :ref:`SolidSplitInfo` :ref:`split_tetrahedron`(index_t tetrahedron_id, const Point3D& point); :ref:`SolidSplitInfo` :ref:`split_facet`(index_t facet_id, const Point3D& point); :ref:`SolidSplitInfo` :ref:`split_facet`(const PolyhedronFacet& facet, const Point3D& point); :ref:`SolidSplitEdgeInfo` :ref:`split_edge`(index_t edge_id, const Point3D& point); :ref:`SolidSplitEdgeInfo` :ref:`split_edge`( const PolyhedronFacetEdge& edge, const Point3D& point ); :ref:`SolidCollapseEdgeInfo` :ref:`collapse_edge`( const PolyhedronFacetEdge& edge, const Point3D& point ); :ref:`SolidCollapseEdgeInfo` :ref:`collapse_edge`(index_t edge_id, const Point3D& point); :ref:`SolidSwapFacetInfo` :ref:`swap_facet`(const PolyhedronFacet& facet); std::vector :ref:`clean_tetrahedra`(); std::vector :ref:`clean_vertices`(); std::vector :ref:`clean_edges`(); std::vector :ref:`clean_facets`(); std::tuple, std::vector, std::vector, std::vector> :ref:`clean`(); .. _details-classgeode_1_1_tetrahedral_solid_epsilon_modifier: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Methods ------- .. index:: pair: function; insert_point_in_tetrahedron .. _doxid-classgeode_1_1_tetrahedral_solid_epsilon_modifier_1a2890eae4217a68f338e851e6575efcb7: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`SolidSplitInfo` insert_point_in_tetrahedron( index_t tetrahedron_id, const Point3D& point ) Insert a point in a tetrahedron either by spliting the tetrahedron into four new ones, or by snapping the point on a facet (three new tetrahedra for each side), an edge (each incident tetrahedra is split into two new tetrahedra) or a vertex (no new tetrahedron). .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - tetrahedron_id - Index of the tetrahedron to split. * - point - Coordinates of the split point. @warn Split tetrahedron is set as inactive but not deleted. .. rubric:: Returns: new vertex index and mappings between old and new mesh. .. index:: pair: function; insert_point_on_facet .. _doxid-classgeode_1_1_tetrahedral_solid_epsilon_modifier_1a37b03f8220cee9cf1c20116427a65bab: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`SolidSplitInfo` insert_point_on_facet( const PolyhedronFacet& facet, const Point3D& point ) Insert a point on a facet either by spliting the facet into three new ones, or by snapping the point on an edge or a vertex. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - facet - Index of the PolyhedronFacet to split. * - point - Coordinates of the split point. @warn Potential split tetrahedra are set as inactive but not deleted. .. rubric:: Returns: new vertex index and mappings between old and new mesh. .. index:: pair: function; insert_point_on_edge .. _doxid-classgeode_1_1_tetrahedral_solid_epsilon_modifier_1ab990b99fddf6e83ede45bdaa96c4e37f: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`SolidSplitEdgeInfo` insert_point_on_edge( const PolyhedronFacetEdge& edge, const Point3D& point ) Insert a point on an edge either by spliting the edge into two new ones, or by snapping the point on a vertex. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - edge - Index of the PolyhedronFacetEdge to split. * - point - Coordinates of the split point. @warn Potential split tetrahedra are set as inactive but not deleted. .. rubric:: Returns: new vertex index and mappings between old and new mesh. .. index:: pair: function; insert_point_on_edge .. _doxid-classgeode_1_1_tetrahedral_solid_epsilon_modifier_1a0e756b4dc67efcda62210add80a1e5c3: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`SolidSplitEdgeInfo` insert_point_on_edge(index_t edge_id, const Point3D& point) Insert a point on an edge either by spliting the edge into two new ones, or by snapping the point on a vertex. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - edge_id - Unique index of the edge to split. * - point - Coordinates of the split point. @warn Potential split tetrahedra are set as inactive but not deleted. .. rubric:: Returns: new vertex index and mappings between old and new mesh.