\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.12 - Triangulated Surface Mesh Deformation
SurfaceMeshDeformationWeights Concept Reference


Concept describing the set of requirements for calculating weights for halfedges.


// a simple model to `SurfaceMeshDeformationWeights` concept, which provides uniform weights
template <class TriangleMesh>
struct Identity_weight
typedef TriangleMesh Triangle_mesh;
template<class VertexPointMap>
double operator()(typename boost::graph_traits<TriangleMesh>::halfedge_descriptor /*e*/, const TriangleMesh& /*p*/, VertexPointMap /*v*/)
{ return 1.0; }


typedef unspecified_type Triangle_mesh
 a model of HalfedgeGraph


 SurfaceMeshDeformationWeights ()
 Default constructor. Required only if the default parameter is used in the constructor of CGAL::Surface_mesh_deformation.


template<class VertexPointMap >
double operator() (boost::graph_traits< Triangle_mesh >::halfedge_descriptor he, const Triangle_mesh &triangle_mesh, VertexPointMap vpm)
 Function computing the halfedge weight of halfedge he More...

Member Function Documentation

◆ operator()()

template<class VertexPointMap >
double SurfaceMeshDeformationWeights::operator() ( boost::graph_traits< Triangle_mesh >::halfedge_descriptor  he,
const Triangle_mesh triangle_mesh,
VertexPointMap  vpm 

Function computing the halfedge weight of halfedge he

Template Parameters
VertexPointMapa model of ReadWritePropertyMap with boost::graph_traits<Triangle_mesh>::vertex_descriptor as key and a 3D point from a CGAL Kernel as value type