Project Geode-Common
class SolidPathFinder
The objective of this class is to find paths inside TetrahedralSolid3D. As an example, this class is able to find a rectilinear path between two vertices. This class may be derived for custom path findings.
Functions
SolidPathFinder
cpp
public void SolidPathFinder(const TetrahedralSolid3D & solid, index_t begin, index_t end)
public void SolidPathFinder(const TetrahedralSolid3D & solid, index_t begin, index_t end)
Find a rectilinear path between two vertices.
begin [in] Index of the cut starting vertex
end [in] Index of the cut ending vertex.
find_path
cpp
public absl::optional<std::vector<SolidPath> > find_path()
public absl::optional<std::vector<SolidPath> > find_path()
edge_exists
cpp
protected bool edge_exists()
protected bool edge_exists()
stop_propagation
cpp
protected bool stop_propagation(const SolidPath & path)
protected bool stop_propagation(const SolidPath & path)
adjacent_opposite_vertex
cpp
protected PolyhedronVertex adjacent_opposite_vertex(const PolyhedronFacet & facet)
protected PolyhedronVertex adjacent_opposite_vertex(const PolyhedronFacet & facet)
opposite_facet
cpp
protected PolyhedronFacet opposite_facet(const PolyhedronVertex & vertex)
protected PolyhedronFacet opposite_facet(const PolyhedronVertex & vertex)
opposite_vertex
cpp
protected PolyhedronVertex opposite_vertex(const PolyhedronFacet & facet)
protected PolyhedronVertex opposite_vertex(const PolyhedronFacet & facet)
facet_triangle
cpp
protected Triangle3D facet_triangle(const PolyhedronFacet & facet)
protected Triangle3D facet_triangle(const PolyhedronFacet & facet)
find_path_intersection_with_facet
cpp
protected absl::optional<SolidPath> find_path_intersection_with_facet(const PolyhedronFacet & facet)
protected absl::optional<SolidPath> find_path_intersection_with_facet(const PolyhedronFacet & facet)
find_first_path
cpp
protected absl::optional<SolidPath> find_first_path()
protected absl::optional<SolidPath> find_first_path()
find_next_path
cpp
protected absl::optional<SolidPath> find_next_path(index_t current)
protected absl::optional<SolidPath> find_next_path(index_t current)
find_next_paths
cpp
protected bool find_next_paths(std::vector<SolidPath> & paths)
protected bool find_next_paths(std::vector<SolidPath> & paths)
find_next_facet
cpp
protected absl::optional<SolidPath> find_next_facet(const PolyhedronFacet & facet_from)
protected absl::optional<SolidPath> find_next_facet(const PolyhedronFacet & facet_from)
next_intersection
cpp
protected absl::optional<SolidPath> next_intersection(const SolidPath & previous_path, const SolidPath & current_path)
protected absl::optional<SolidPath> next_intersection(const SolidPath & previous_path, const SolidPath & current_path)
solid
cpp
protected const TetrahedralSolid3D & solid()
protected const TetrahedralSolid3D & solid()
begin
cpp
protected index_t begin()
protected index_t begin()
end
cpp
protected index_t end()
protected index_t end()
begin_to_end
cpp
protected const Segment3D & begin_to_end()
protected const Segment3D & begin_to_end()
find_next_paths
cpp
protected bool find_next_paths(int & paths)
protected bool find_next_paths(int & paths)