|
CGAL 5.0 - Planar Parameterization of Triangulated Surface Meshes
|
#include <CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h>
Inherited by CGAL::Surface_mesh_parameterization::Square_border_arc_length_parameterizer_3< TriangleMesh_ >, and CGAL::Surface_mesh_parameterization::Square_border_uniform_parameterizer_3< TriangleMesh_ >.
This is the base class of strategies that parameterize the border of a 3D surface onto a square.
Square_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.
The user can provide four vertices on the border of the mesh, which will be mapped to the four corners of the square.
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 Types | |
| typedef TriangleMesh_ | TriangleMesh |
| typedef boost::graph_traits< TriangleMesh >::vertex_descriptor | vertex_descriptor |
| typedef boost::graph_traits< TriangleMesh >::halfedge_descriptor | halfedge_descriptor |
| typedef Halfedge_around_face_iterator< TriangleMesh > | halfedge_around_face_iterator |
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 vertices of the border of the mesh a 2D position (i.e. a (u,v) pair) on the border's shape. More... | |
| bool | is_border_convex () const |
| Indicate if the border's shape is convex. | |
| Square_border_parameterizer_3 () | |
| Constructor. | |
| Square_border_parameterizer_3 (vertex_descriptor v0, vertex_descriptor v1, vertex_descriptor v2, vertex_descriptor v3) | |
| Constructor with user-defined corners: the user provides four vertices of the border of the mesh, which will be parameterized to the corners of the square. More... | |
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 |
| typedef std::vector< NT > | Offset_map |
Protected Member Functions | |
| virtual double | compute_edge_length (const TriangleMesh &mesh, vertex_descriptor source, vertex_descriptor target) const =0 |
| CGAL::Surface_mesh_parameterization::Square_border_parameterizer_3< TriangleMesh_ >::Square_border_parameterizer_3 | ( | vertex_descriptor | v0, |
| vertex_descriptor | v1, | ||
| vertex_descriptor | v2, | ||
| vertex_descriptor | v3 | ||
| ) |
Constructor with user-defined corners: the user provides four vertices of the border of the mesh, which will be parameterized to the corners of the square.
| Error_code CGAL::Surface_mesh_parameterization::Square_border_parameterizer_3< TriangleMesh_ >::parameterize | ( | const TriangleMesh & | mesh, |
| halfedge_descriptor | bhd, | ||
| VertexUVMap | uvmap, | ||
| VertexIndexMap | , | ||
| VertexParameterizedMap | vpmap | ||
| ) |
Assign to the vertices of the border of the mesh a 2D position (i.e. a (u,v) pair) on the border's shape.
Mark them as parameterized.
| 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.