CGAL 4.12.1 - Planar Parameterization of Triangulated Surface Meshes
|
#include <CGAL/Surface_mesh_parameterization/Discrete_authalic_parameterizer_3.h>
The class Discrete_authalic_parameterizer_3
implements the Discrete Authalic Parameterization algorithm.
This method is sometimes called DAP or just Authalic parameterization [2].
DAP is a weak area-preserving parameterization. It is a compromise between area-preserving and angle-preserving.
A one-to-one mapping is guaranteed if the surface's border is mapped onto a convex polygon.
This class is a strategy called by the main parameterization algorithm Fixed_border_parameterizer_3::parameterize()
and it:
BorderParameterizer_
and SolverTraits_
.compute_w_ij()
to compute w_ij = (i, j), coefficient of the matrix A for j neighbor vertex of i, based on Discrete Authalic Parameterization algorithm.TriangleMesh_ | must be a model of FaceGraph . |
BorderParameterizer_ | is a Strategy to parameterize the surface border and must be a model of Parameterizer_3 .Default: Circular_border_arc_length_parameterizer_3<TriangleMesh_> |
SolverTraits_ | must be a model of SparseLinearAlgebraTraits_d .Note that the system is not symmetric because Fixed_border_parameterizer_3 does not remove border vertices from the system.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::BiCGSTAB<Eigen_sparse_matrix<double>::EigenType, Eigen::IncompleteLUT< double > > > |
CGAL::Surface_mesh_parameterization::Fixed_border_parameterizer_3<TriangleMesh, BorderParameterizer, SolverTraits>
Public Types | |
typedef Border_parameterizer_ | Border_parameterizer |
typedef SolverTraits_ | Solver_traits |
typedef TriangleMesh_ | TriangleMesh |
Public Types inherited from CGAL::Surface_mesh_parameterization::Fixed_border_parameterizer_3< TriangleMesh_, Default::Get< BorderParameterizer_, Circular_border_arc_length_parameterizer_3< TriangleMesh_ > >::type, Default::Get< SolverTraits_, SolverTraits_ >::type > | |
typedef Border_parameterizer_ | Border_parameterizer |
typedef Default::Get< SolverTraits_, SolverTraits_ >::type | Solver_traits |
typedef TriangleMesh_ | TriangleMesh |
Public Member Functions | |
Discrete_authalic_parameterizer_3 (Border_parameterizer border_param=Border_parameterizer(), Solver_traits sparse_la=Solver_traits()) | |
Constructor. More... | |
Public Member Functions inherited from CGAL::Surface_mesh_parameterization::Fixed_border_parameterizer_3< TriangleMesh_, Default::Get< BorderParameterizer_, Circular_border_arc_length_parameterizer_3< TriangleMesh_ > >::type, Default::Get< SolverTraits_, SolverTraits_ >::type > | |
Fixed_border_parameterizer_3 (Border_parameterizer border_param=Border_parameterizer(), Solver_traits sparse_la=Solver_traits()) | |
Constructor. More... | |
virtual | ~Fixed_border_parameterizer_3 () |
Destructor of base class should be virtual. | |
Error_code | parameterize (TriangleMesh &mesh, halfedge_descriptor bhd, VertexUVmap uvmap, VertexIndexMap vimap, VertexParameterizedMap vpmap) |
Compute a one-to-one mapping from a triangular 3D surface mesh to a piece of the 2D space. More... | |
Protected Member Functions | |
virtual NT | compute_w_ij (const TriangleMesh &mesh, vertex_descriptor main_vertex_v_i, vertex_around_target_circulator neighbor_vertex_v_j) const |
Compute w_ij = (i, j), coefficient of matrix A for j neighbor vertex of i. More... | |
Protected Member Functions inherited from CGAL::Surface_mesh_parameterization::Fixed_border_parameterizer_3< TriangleMesh_, Default::Get< BorderParameterizer_, Circular_border_arc_length_parameterizer_3< TriangleMesh_ > >::type, Default::Get< SolverTraits_, SolverTraits_ >::type > | |
void | initialize_system_from_mesh_border (Matrix &A, Vector &Bu, Vector &Bv, const TriangleMesh &mesh, halfedge_descriptor bhd, VertexUVmap uvmap, VertexIndexMap vimap) const |
Initialize A, Bu and Bv after border parameterization. More... | |
Error_code | setup_inner_vertex_relations (Matrix &A, Vector &, Vector &, const TriangleMesh &mesh, vertex_descriptor vertex, VertexIndexMap vimap) const |
Compute the line i of matrix A for i inner vertex: More... | |
Border_parameterizer & | get_border_parameterizer () |
Get the object that maps the surface's border onto a 2D space. | |
Solver_traits & | get_linear_algebra_traits () |
Get the sparse linear algebra (traits object to access the linear system). | |
Additional Inherited Members | |
Protected Types inherited from CGAL::Surface_mesh_parameterization::Fixed_border_parameterizer_3< TriangleMesh_, Default::Get< BorderParameterizer_, Circular_border_arc_length_parameterizer_3< TriangleMesh_ > >::type, Default::Get< SolverTraits_, SolverTraits_ >::type > | |
typedef internal::Kernel_traits< TriangleMesh >::Kernel | Kernel |
typedef internal::Kernel_traits< TriangleMesh >::PPM | PPM |
typedef Kernel::FT | NT |
typedef Kernel::Point_2 | Point_2 |
typedef Kernel::Point_3 | Point_3 |
typedef Kernel::Vector_3 | Vector_3 |
typedef Solver_traits::Vector | Vector |
typedef Solver_traits::Matrix | Matrix |
CGAL::Surface_mesh_parameterization::Discrete_authalic_parameterizer_3< TriangleMesh_, BorderParameterizer_, SolverTraits_ >::Discrete_authalic_parameterizer_3 | ( | Border_parameterizer | border_param = Border_parameterizer() , |
Solver_traits | sparse_la = Solver_traits() |
||
) |
Constructor.
border_param | Object that maps the surface's border to 2D space. |
sparse_la | Traits object to access a sparse linear system. |
|
protectedvirtual |
Compute w_ij = (i, j), coefficient of matrix A for j neighbor vertex of i.
mesh | a triangulated surface. |
main_vertex_v_i | the vertex of mesh with index i |
neighbor_vertex_v_j | the vertex of mesh with index j |