CGAL 5.4.4 - 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