CGAL 5.0.2 - Planar Parameterization of Triangulated Surface Meshes
|
#include <CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h>
Inherited by CGAL::Surface_mesh_parameterization::Circular_border_arc_length_parameterizer_3< TriangleMesh_ >, and CGAL::Surface_mesh_parameterization::Circular_border_uniform_parameterizer_3< TriangleMesh_ >.
This is the base class of strategies that parameterize the border of a 3D surface onto a circle.
The class Circular_border_parameterizer_3
is a pure virtual class, thus cannot be instantiated.
It implements most of the algorithm. Subclasses only have to implement the function compute_edge_length()
to compute a segment's length.
Implementation note: To simplify the implementation, the border parameterizer knows only the TriangleMesh
class and does not know the parameterization algorithm requirements or the kind of sparse linear system used.
TriangleMesh_ | must be a model of FaceGraph . |
Public Member Functions | |
template<typename VertexUVmap , typename VertexIndexMap , typename VertexParameterizedMap > | |
Error_code | parameterize (const TriangleMesh &mesh, halfedge_descriptor bhd, VertexUVmap uvmap, VertexIndexMap, VertexParameterizedMap vpmap) |
Assign to the mesh's border vertices a 2D position (i.e. a (u,v) pair) on the circle. More... | |
bool | is_border_convex () const |
Indicate if border's shape is convex. | |
Protected Types | |
typedef internal::Kernel_traits< TriangleMesh_ >::PPM | PPM |
typedef internal::Kernel_traits< TriangleMesh_ >::Kernel | Kernel |
typedef Kernel::FT | NT |
typedef Kernel::Point_2 | Point_2 |
typedef Kernel::Vector_3 | Vector_3 |
Protected Member Functions | |
virtual NT | compute_edge_length (const TriangleMesh &mesh, vertex_descriptor source, vertex_descriptor target) const =0 |
Error_code CGAL::Surface_mesh_parameterization::Circular_border_parameterizer_3< TriangleMesh_ >::parameterize | ( | const TriangleMesh & | mesh, |
halfedge_descriptor | bhd, | ||
VertexUVmap | uvmap, | ||
VertexIndexMap | , | ||
VertexParameterizedMap | vpmap | ||
) |
Assign to the mesh's border vertices a 2D position (i.e. a (u,v) pair) on the circle.
Mark them as parameterized.
The distribution of vertices over the circle depends on the function compute_edge_length()
.
VertexUVmap | must be a model of ReadWritePropertyMap with boost::graph_traits<TriangleMesh>::vertex_descriptor as key type and Point_2 (type deduced from TriangleMesh using Kernel_traits ) as value type. |
VertexIndexMap | must be a model of ReadablePropertyMap with boost::graph_traits<TriangleMesh>::vertex_descriptor as key type and a unique integer as value type. |
VertexParameterizedMap | must be a model of ReadWritePropertyMap with boost::graph_traits<TriangleMesh>::vertex_descriptor as key type and a Boolean as value type. |
mesh | a triangulated surface. |
bhd | a halfedge descriptor on the boundary of mesh . |
uvmap | an instanciation of the class VertexUVmap . |
vpmap | an instanciation of the class VertexParameterizedMap . |
mesh
must be a triangular mesh.