CGAL 4.11 - Planar Parameterization of Triangulated Surface Meshes
|
#include <CGAL/Surface_mesh_parameterization/Orbifold_Tutte_parameterizer_3.h>
The class Orbifold_Tutte_parameterizer_3
implements Orbifold Tutte Planar Embeddings
[1].
This is a borderless parameterization. A one-to-one mapping is guaranteed.
The main function of the class Orbifold_Tutte_parameterizer_3
is parameterize()
, to which the user provides a Seam_mesh
with marked edges (the seams) and a set of vertices of the mesh (the cones). The choice of cones influences the resulting parameterization, but not the choice of the seam path between these cones.
The example orbifold.cpp shows how to select cones on the input mesh and automatically construct the seams and the cones on the Seam_mesh
.
SeamMesh | must be a Seam_mesh , with underlying mesh any model of FaceListGraph and HalfedgeListGraph . |
SolverTraits_ | must be a model of SparseLinearAlgebraTraits_d .Default: If Eigen 3.1 (or greater) is available and CGAL_EIGEN3_ENABLED is defined, then an overload of Eigen_solver_traits is provided as default parameter: Eigen::SparseLU<Eigen_sparse_matrix<double>::EigenType> >
Eigen::UmfPackLU<Eigen_sparse_matrix<double>::EigenType> >
|
CGAL::Surface_mesh_parameterization::ARAP_parameterizer_3<TriangleMesh, BorderParameterizer, SolverTraits>
CGAL::Surface_mesh_parameterization::Barycentric_mapping_parameterizer_3<TriangleMesh, BorderParameterizer, SolverTraits>
CGAL::Surface_mesh_parameterization::Discrete_authalic_parameterizer_3<TriangleMesh, BorderParameterizer, SolverTraits>
CGAL::Surface_mesh_parameterization::Discrete_conformal_map_parameterizer_3<TriangleMesh, BorderParameterizer, SolverTraits>
CGAL::Surface_mesh_parameterization::LSCM_parameterizer_3<TriangleMesh, BorderParameterizer>
CGAL::Surface_mesh_parameterization::Mean_value_coordinates_parameterizer_3<TriangleMesh, BorderParameterizer, SolverTraits>
Public Types | |
typedef SolverTraits_ | Solver_traits |
Public Member Functions | |
template<typename ConeMap , typename VertexIndexMap , typename VertexUVMap > | |
Error_code | parameterize (SeamMesh &mesh, halfedge_descriptor bhd, ConeMap cmap, VertexUVMap uvmap, VertexIndexMap vimap) const |
Compute a one-to-one mapping from a triangular 3D surface mesh to a piece of the 2D space. More... | |
Orbifold_Tutte_parameterizer_3 (const Orbifold_type orb_type=Square, const Weight_type weight_type=Cotangent) | |
Constructor. | |
Error_code CGAL::Surface_mesh_parameterization::Orbifold_Tutte_parameterizer_3< SeamMesh, SolverTraits_ >::parameterize | ( | SeamMesh & | mesh, |
halfedge_descriptor | bhd, | ||
ConeMap | cmap, | ||
VertexUVMap | uvmap, | ||
VertexIndexMap | vimap | ||
) | const |
Compute a one-to-one mapping from a triangular 3D surface mesh to a piece of the 2D space.
The mapping is piecewise linear (linear in each triangle). The result is the (u,v) pair image of each vertex of the 3D surface.
VertexUVmap | must be a model of ReadWritePropertyMap with boost::graph_traits<Seam_mesh>::vertex_descriptor as key type and Point_2 (type deduced from Seam_mesh using Kernel_traits ) as value type. |
VertexIndexMap | must be a model of ReadablePropertyMap with boost::graph_traits<Seam_mesh>::vertex_descriptor as key type and a unique integer as value type. |
VertexParameterizedMap | must be a model of ReadWritePropertyMap with boost::graph_traits<Seam_mesh>::vertex_descriptor as key type and a Boolean as value type. |
mesh | a Seam_mesh parameterized by any model of a FaceGraph |
bhd | a halfedge on the border of the seam mesh |
cmap | a mapping of the vertex_descriptor s of mesh that are cones to their respective Cone_type . |
uvmap | an instanciation of the class VertexUVmap . |
vimap | an instanciation of the class VertexIndexMap . |
mesh
must be a triangular mesh. mesh
is a topological ball. mesh
and their number is adapted to the orbifold type (4 for types I, II or III and 6 for type IV).