|
CGAL 6.0 - Triangulated Surface Mesh Shortest Paths
|
The concept SurfaceMeshShortestPathTraits describes the types, predicates, and constructions required by the traits class parameter of CGAL::Surface_mesh_shortest_path.
CopyConstructible Assignable CGAL::Surface_mesh_shortest_path_traits<K,P> Types | |
| typedef unspecified_type | Triangle_mesh |
A model of the concept FaceListGraph | |
| typedef unspecified_type | FT |
A model of the concept FieldWithSqrt or a model of both Field and RealEmbeddable. | |
| typedef unspecified_type | Point_2 |
| The 2-dimensional point type. | |
| typedef unspecified_type | Vector_2 |
| The 2-dimensional vector type. | |
| typedef unspecified_type | Ray_2 |
| The 2-dimensional ray type. | |
| typedef unspecified_type | Line_2 |
| The 2-dimensional line type. | |
| typedef unspecified_type | Segment_2 |
| The 2-dimensional segment type. | |
| typedef unspecified_type | Triangle_2 |
| The 2-dimensional triangle type. | |
| typedef unspecified_type | Barycentric_coordinates |
| An ordered triple to specify barycentric coordinates in triangles. | |
| typedef unspecified_type | Point_3 |
| The 3-dimensional point type. | |
| typedef unspecified_type | Vector_3 |
| The 3-dimensional vector type. | |
| typedef unspecified_type | Ray_3 |
| The 3-dimensional ray type. | |
| typedef unspecified_type | Triangle_3 |
| The 3-dimensional triangle type. | |
Constructions | |
| typedef unspecified_type | Construct_point_2 |
Function object type that provides Point_2 operator()(FT x, FT y) and Point_2 operator()(CGAL::ORIGIN) to construct points with cartesian coordinates (x,y) and (0,0) respectively. | |
| typedef unspecified_type | Construct_vector_2 |
Function object type that provides Vector_2 operator()(Point_2 a, Point_2 b) to construct the vector b - a | |
| typedef unspecified_type | Construct_ray_2 |
Function object type that provides Ray_2 operator()(Point_2 a, Point_2 b) to construct the ray originating from a and passing through b | |
| typedef unspecified_type | Construct_line_2 |
Function object type that provides Line_2 operator()(Segment_2 s) and Line_2 operator()(Ray_2 r) to construct the supporting line to s and r respectively. | |
| typedef unspecified_type | Construct_segment_2 |
Function object type that provides Segment_2 operator()(Point_2 a, Point_2 b) to construct the segment (a,b) | |
| typedef unspecified_type | Construct_triangle_2 |
Function object type that provides Triangle_2 operator()(Point_2 a, Point_2 b, Point_2 c) to construct the triangle (a,b,c) | |
| typedef unspecified_type | Construct_vertex_2 |
Function object type that provides Point_2 operator()(Segment_2 s, int i) to return the source or target of s, depending on whether i is 0 or 1 respectively, and Point_2 operator()(Triangle_2 t, int i) to return the ith vertex of t. | |
| typedef unspecified_type | Construct_source_2 |
Function object type that provides Point_2 operator()(Segment_2 s) to return the source of s. | |
| typedef unspecified_type | Construct_target_2 |
Function object type that provides Point_2 operator()(Segment_2 s) to return the target of s. | |
| typedef unspecified_type | Construct_barycenter_2 |
Function object type that provides Point_2 operator()(Point_2 p1, FT w1, Point_2 p2, FT w2) to compute the barycenter of the points p1 and p2 with corresponding weights w1 and w2, and Point_2 operator()(Point_2 p1, FT w1, Point_2 p2, FT w2, Point_2 p3, FT w3) to compute the barycenter of the points p1, p2, and p3 with corresponding weights w1, w2, and w3. | |
| typedef unspecified_type | Compute_squared_distance_2 |
Function object type that provides FT operator()(A obj1, B obj2) to compute the squared distance between obj1 and obj2, A and B can be any one of Point_2, Segment_2, type objects. | |
| typedef unspecified_type | Intersect_2 |
| Function object type. | |
| typedef unspecified_type | Construct_point_on_2 |
Function object type that provides Point_2 operator()(Ray_2 r, int i) to construct a point on r, such that i = 0 is the source, and any i > 0 is not the source. | |
| typedef unspecified_type | Construct_vector_3 |
Function object type that provides Vector_3 operator()(Point_3 a, Point_3 b) to construct the vector b - a | |
| typedef unspecified_type | Construct_triangle_3 |
Function object type that provides Triangle_3 operator()(Point_3 a, Point_3 b, Point_3 c) to construct the triangle (a,b,c) | |
| typedef unspecified_type | Construct_vertex_3 |
Function object type that provides Point_3 operator()(Segment_3 s, int i) to return the source or target of s, depending on whether i is 0 or 1 respectively, and Point_3 operator()(Triangle_3 t, int i) to return the ith vertex of t. | |
| typedef unspecified_type | Construct_source_3 |
Function object type that provides Point_3 operator()(Segment_3 s) to return the source of s. | |
| typedef unspecified_type | Construct_target_3 |
Function object type that provides Point_3 operator()(Segment_3 s) to return the target of s. | |
| typedef unspecified_type | Construct_barycenter_3 |
Function object type that provides Point_3 operator()(Point_3 p1, FT w1, Point_3 p2) to compute the barycenter of the points p1 and p2 with corresponding weights w1 and 1-w1, and Point_3 operator()(Point_3 p1, FT w1, Point_3 p2, FT w2, Point_3 p3, FT w3) to compute the barycenter of the points p1, p2, and p3 with corresponding weights w1, w2, and w3. | |
| typedef unspecified_type | Compute_squared_distance_3 |
Function object type that provides FT operator()(Point_3 p1, Point_3 p2) to compute the squared distance between p1 and p2. | |
| typedef unspecified_type | Construct_triangle_3_to_triangle_2_projection |
Function object type that provides Triangle_2 operator()(Triangle_3 t) which computes a 2-dimensional projection of t that preserves edge lengths. | |
| typedef unspecified_type | Construct_triangle_3_along_segment_2_flattening |
Function object type that provides Triangle_2 operator()(Triangle_3 t, std::size_t i, Segment_2 base) which computes a 2-dimensional projection of t that preserves edge lengths, such that the ith edge of the projection of t is incident to base. | |
| typedef unspecified_type | Compute_parametric_distance_along_segment_2 |
Function object type that provides FT operator()(Point_2 x0, Point_2 x1, Point_2 p) which computes the parametric distance of p along the segment [x0,x1]. | |
| typedef unspecified_type | Construct_barycentric_coordinates |
Function object type that provides Barycentric_coordinates operator()(FT a, FT b, FT c) to introduce new triangular barycentric coordinates. | |
| typedef unspecified_type | Construct_barycentric_coordinates_weight |
Function object type that provides FT operator(Barycentric_coordinates b, std::size_t i) to get the ith weight of barycentric coordinates b. | |
| typedef unspecified_type | Construct_barycentric_coordinates_in_triangle_2 |
Function object type that provides Barycentric_coordinates operator()(Triangle_2 t, Point_2 p) which computes the Barycentric location of p in t. | |
| typedef unspecified_type | Construct_barycentric_coordinates_in_triangle_3 |
Function object type that provides Barycentric_coordinates operator()(Triangle_3 t, Point_3 p) which computes the Barycentric location of p in t. | |
Predicates | |
| typedef unspecified_type | Classify_barycentric_coordinates |
Function object type that provides std::pair<CGAL::Surface_mesh_shortest_paths_3::Barycentric_coordinates_type,std::size_t> operator()(Barycentric_coordinates b), which computes the classification and the associated edge (if applicable) of the coordinates b | |
| typedef unspecified_type | Orientation_2 |
Function object type that provides CGAL::Orientation operator()(Point_2 s1, Point_2 s2, Point_2 s3), which performs an orientation test for the given points. | |
| typedef unspecified_type | Compare_distance_2 |
Function object type that provides CGAL::Comparison_result operator()(Point_2 p1, Point_2 p2, Point_2 p3, Point_2 p4), which compares the squared distance between p1 and p2 with the squared distance between p3 and p4. | |
| typedef unspecified_type | Compare_relative_intersection_along_segment_2 |
Function object type that provides CGAL::Comparison_result operator()(Segment_2 s1, Line_2 l1, Segment_2 s2, Line_2 l2). | |
| typedef unspecified_type | Is_saddle_vertex |
Function object type that provides template <class VertexPointMap> bool operator()(boost::graph_traits<Triangle_mesh>::vertex_descriptor v, Triangle_mesh& tm, VertexPointMap vpm) that returns true if the vertex is a saddle vertex (more than \( 2 \pi \) surface area over all adjacent faces), and false otherwise. | |
Operations | |
For all of the above predicate and construction types, e.g.
| |
| Construct_point_2 | construct_point_2_object () |
| returns the point construction functor. | |
Function object type that provides std::pair<CGAL::Surface_mesh_shortest_paths_3::Barycentric_coordinates_type,std::size_t> operator()(Barycentric_coordinates b), which computes the classification and the associated edge (if applicable) of the coordinates b
Returns the pair (type, i), such that type is one of the values of CGAL::Surface_mesh_shortest_paths_3::Barycentric_coordinates_type
type is CGAL::Surface_mesh_shortest_paths_3::BARYCENTRIC_COORDINATES_ON_VERTEX, i is the index of that vertextype is CGAL::Surface_mesh_shortest_paths_3::BARYCENTRIC_COORDINATES_ON_BOUNDARY, i is the index of the non-zero edgei is undefined. | typedef unspecified_type SurfaceMeshShortestPathTraits::Compare_relative_intersection_along_segment_2 |
Function object type that provides CGAL::Comparison_result operator()(Segment_2 s1, Line_2 l1, Segment_2 s2, Line_2 l2).
This compares the relative parametric intersections of s1 with l1 against s2 with l2. That is, compare the distance of the intersection of s1 with l1 from the source of s1, scaled by the length of s1, to the distance of the intersection of s2 with l2 from the source of s2, scaled by the length of s2.
s1 and l1 is a point s2 and l2 is a point Function object type that provides FT operator()(Point_2 x0, Point_2 x1, Point_2 p) which computes the parametric distance of p along the segment [x0,x1].
That is, it computes t, such that p = (1.0 - t)*x0 + t*x1
p is a point in the segment [x0,x1] | typedef unspecified_type SurfaceMeshShortestPathTraits::Construct_triangle_3_along_segment_2_flattening |
Function object type that provides Triangle_2 operator()(Triangle_3 t, std::size_t i, Segment_2 base) which computes a 2-dimensional projection of t that preserves edge lengths, such that the ith edge of the projection of t is incident to base.
ith edge of t is equal to the length of base Function object type.
Must provide std::optional< std::variant< T... > > operator()(A obj1, B obj2) to compute the intersection between obj1 and obj2, where A and B can be any type amongst Line_2, Ray_2, Segment_2.
Function object type that provides template <class VertexPointMap> bool operator()(boost::graph_traits<Triangle_mesh>::vertex_descriptor v, Triangle_mesh& tm, VertexPointMap vpm) that returns true if the vertex is a saddle vertex (more than \( 2 \pi \) surface area over all adjacent faces), and false otherwise.
vpm must be a model of concept ReadablePropertyMap that maps from vertex_descriptor to Point_3 objects.