CGAL 4.8.1 - Planar Parameterization of Triangulated Surface Meshes
|
#include <CGAL/LSCM_parameterizer_3.h>
CGAL::Parameterizer_traits_3< ParameterizationMesh_3 >.
The class LSCM_parameterizer_3
implements the Least Squares Conformal Maps (LSCM) parameterization.
[7].
This is a conformal parameterization, i.e. it attempts to preserve angles.
This is a free border parameterization. No need to map the border of the surface onto a convex polygon (only two pinned vertices are needed to ensure a unique solution), but one-to-one mapping is not guaranteed.
Note that his parametrization method has no template parameter for changing the sparse solver.
CGAL::Parameterizer_traits_3<ParameterizationMesh_3>
CGAL::Fixed_border_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>
CGAL::Barycentric_mapping_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>
CGAL::Discrete_authalic_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>
CGAL::Discrete_conformal_map_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>
CGAL::Mean_value_coordinates_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>
Public Types | |
typedef BorderParameterizer_3 | Border_param |
Export BorderParameterizer_3 template parameter. | |
Public Types inherited from CGAL::Parameterizer_traits_3< ParameterizationMesh_3 > | |
enum | Error_code { OK, ERROR_EMPTY_MESH, ERROR_NON_TRIANGULAR_MESH, ERROR_NO_TOPOLOGICAL_DISC, ERROR_BORDER_TOO_SHORT, ERROR_NON_CONVEX_BORDER, ERROR_CANNOT_SOLVE_LINEAR_SYSTEM, ERROR_NO_1_TO_1_MAPPING, ERROR_OUT_OF_MEMORY, ERROR_WRONG_PARAMETER } |
List of errors detected by this package. More... | |
typedef ParameterizationMesh_3 | Adaptor |
Export ParameterizationMesh_3 template parameter. | |
Public Member Functions | |
LSCM_parameterizer_3 (Border_param border_param=Border_param(), Sparse_LA sparse_la=Sparse_LA()) | |
Constructor. More... | |
virtual Error_code | parameterize (Adaptor &mesh) |
Compute a one-to-one mapping from a triangular 3D surface mesh to a piece of the 2D space. More... | |
Public Member Functions inherited from CGAL::Parameterizer_traits_3< ParameterizationMesh_3 > | |
virtual | ~Parameterizer_traits_3 () |
Destructor of base class should be virtual. | |
Additional Inherited Members | |
Static Public Member Functions inherited from CGAL::Parameterizer_traits_3< ParameterizationMesh_3 > | |
static const char * | get_error_message (int error_code) |
Get message corresponding to an error code. More... | |
Protected Types inherited from CGAL::Parameterizer_traits_3< ParameterizationMesh_3 > | |
typedef Adaptor::NT | NT |
typedef Adaptor::Point_2 | Point_2 |
typedef Adaptor::Point_3 | Point_3 |
typedef Adaptor::Vector_2 | Vector_2 |
typedef Adaptor::Vector_3 | Vector_3 |
typedef Adaptor::Facet | Facet |
typedef Adaptor::Facet_handle | Facet_handle |
typedef Adaptor::Facet_const_handle | Facet_const_handle |
typedef Adaptor::Facet_iterator | Facet_iterator |
typedef Adaptor::Facet_const_iterator | Facet_const_iterator |
typedef Adaptor::Vertex | Vertex |
typedef Adaptor::Vertex_handle | Vertex_handle |
typedef Adaptor::Vertex_const_handle | Vertex_const_handle |
typedef Adaptor::Vertex_iterator | Vertex_iterator |
typedef Adaptor::Vertex_const_iterator | Vertex_const_iterator |
typedef Adaptor::Border_vertex_iterator | Border_vertex_iterator |
typedef Adaptor::Border_vertex_const_iterator | Border_vertex_const_iterator |
typedef Adaptor::Vertex_around_facet_circulator | Vertex_around_facet_circulator |
typedef Adaptor::Vertex_around_facet_const_circulator | Vertex_around_facet_const_circulator |
typedef Adaptor::Vertex_around_vertex_circulator | Vertex_around_vertex_circulator |
typedef Adaptor::Vertex_around_vertex_const_circulator | Vertex_around_vertex_const_circulator |
CGAL::LSCM_parameterizer_3< ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d >::LSCM_parameterizer_3 | ( | Border_param | border_param = Border_param() , |
Sparse_LA | sparse_la = Sparse_LA() |
||
) |
Constructor.
border_param | Object that maps the surface's border to 2D space |
sparse_la | Traits object to access a sparse linear system |
|
virtual |
Compute a one-to-one mapping from a triangular 3D surface mesh to a piece of the 2D space.
The mapping is linear by pieces (linear in each triangle). The result is the (u,v) pair image of each vertex of the 3D surface.
mesh
must be a surface with one connected component. mesh
must be a triangular mesh. Implements CGAL::Parameterizer_traits_3< ParameterizationMesh_3 >.