CGAL 5.4  Weights

#include <CGAL/Weights/mean_value_weights.h>
This weight is computed as \(w = \pm 2 \sqrt{\frac{2 (d_1 d_2  D)}{(d d_1 + D_1)(d d_2 + D_2)}}\) with notations shown in the figure below and dot products
\(D_1 = (p_0  q) \cdot (p_1  q)\), \(D_2 = (p_1  q) \cdot (p_2  q)\), and \(D = (p_0  q) \cdot (p_2  q)\).
The \(\pm\) sign is a sign of the weight that depends on the configuration.
Here, q
is a query point and the points p0
, p1
, and p2
are its neighbors.
This weight supports only planar configurations (see more in section about Coplanarity) while alternative formulations are explained in Implementation.
Alternative Formulations
GeomTraits  a model of AnalyticWeightTraits_2 for 2D points; a model of AnalyticWeightTraits_3 for 3D points 
Functions  
template<typename GeomTraits >  
GeomTraits::FT  CGAL::Weights::mean_value_weight (const typename GeomTraits::Point_2 &p0, const typename GeomTraits::Point_2 &p1, const typename GeomTraits::Point_2 &p2, const typename GeomTraits::Point_2 &q, const GeomTraits &traits) 
computes the mean value weight in 2D at q using the points p0 , p1 , and p2 , given a traits class traits with geometric objects, predicates, and constructions.  
template<typename K >  
K::FT  CGAL::Weights::mean_value_weight (const CGAL::Point_2< K > &p0, const CGAL::Point_2< K > &p1, const CGAL::Point_2< K > &p2, const CGAL::Point_2< K > &q) 
computes the mean value weight in 2D at q using the points p0 , p1 , and p2 which are parameterized by a Kernel K.  