CGAL 6.1 - Planar Parameterization of Triangulated Surface Meshes

Loading...
Searching...
No Matches
List of all members | Public Types | Public Member Functions
CGAL::Surface_mesh_parameterization::MVC_post_processor_3< TriangleMesh_, SolverTraits_ > Class Template Reference

`#include <CGAL/Surface_mesh_parameterization/MVC_post_processor_3.h>`

## Definition

template<class TriangleMesh_, class SolverTraits_ = Default>
class CGAL::Surface_mesh_parameterization::MVC_post_processor_3< TriangleMesh_, SolverTraits_ >

The class `MVC_post_processor_3` implements the Free boundary linear Parameterization algorithm [7].

This parameterizer provides a post processing step to other parameterizers that do not necessarily return a valid embedding. It is based on the convexification of the initial (2D) parameterization and the resolution of a linear system with coefficients based on Mean Value Coordinates.

Is model of
  `Parameterizer_3`

Template Parameters

  TriangleMesh_ | must be a model of `FaceGraph`.
  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: CGAL::Eigen_solver_traits< Eigen::BiCGSTAB<Eigen_sparse_matrix<double>::EigenType, Eigen::IncompleteLUT< double > > > CGAL::Eigen_solver_traits

See also
  `CGAL::Surface_mesh_parameterization::ARAP_parameterizer_3<TriangleMesh, BorderParameterizer_, Solver_traits>`

## Public Types
typedef SolverTraits_ | Solver_traits
| Solver traits type.
typedef TriangleMesh_ | Triangle_mesh
| Triangle mesh type.

## Public Member Functions
template<typename VertexUVMap , typename VertexIndexMap >
Error_code | parameterize (const Triangle_mesh &mesh, halfedge_descriptor bhd, VertexUVMap uvmap, const VertexIndexMap vimap)
| computes a one-to-one mapping from a triangular 2D surface mesh that is not necessarily embedded to a piece of the 2D space.
| MVC_post_processor_3 (Solver_traits sparse_la=Solver_traits())
| Constructor.

## Constructor & Destructor Documentation

## ◆ MVC_post_processor_3()

template<class TriangleMesh_ , class SolverTraits_ = Default>

CGAL::Surface_mesh_parameterization::MVC_post_processor_3< TriangleMesh_, SolverTraits_ >::MVC_post_processor_3 | ( | Solver_traits | sparse_la = `Solver_traits()` | ) |

Constructor.

Parameters

  sparse_la | Traits object to access a sparse linear system.

## Member Function Documentation

## ◆ parameterize()

template<class TriangleMesh_ , class SolverTraits_ = Default>
template<typename VertexUVMap , typename VertexIndexMap >

Error_code CGAL::Surface_mesh_parameterization::MVC_post_processor_3< TriangleMesh_, SolverTraits_ >::parameterize | ( | const Triangle_mesh & | mesh,
|  | halfedge_descriptor | bhd,
|  | VertexUVMap | uvmap,
|  | const VertexIndexMap | vimap
| ) |  |

computes a one-to-one mapping from a triangular 2D surface mesh that is not necessarily embedded to a piece of the 2D space.

Template Parameters

  VertexUVmap | must be a model of `ReadWritePropertyMap` with `boost::graph_traits<Triangle_mesh>::vertex_descriptor` as key type and Point_2 (type deduced from `Triangle_mesh` using `Kernel_traits`) as value type.
  VertexIndexMap | must be a model of `ReadablePropertyMap` with `boost::graph_traits<Triangle_mesh>::vertex_descriptor` as key type and a unique integer as value type.

Parameters

  mesh | a triangulated surface.
  bhd | a halfedge descriptor on the boundary of `mesh`.
  uvmap | an instantiation of the class `VertexUVmap`.
  vimap | an instantiation of the class `VertexIndexMap`.