CGAL 5.4.5 - Weights
Three Point Family Weight

#include <CGAL/Weights/three_point_family_weights.h>

This weight is computed as \(w = \frac{d_2^a A_0 - d^a B + d_0^a A_2}{A_0 A_2}\) with notations shown in the figure below and \(a\) any real number being the power parameter.

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.

three_point_family.svg
Figure 104.1 Notation used for the three point family weight.

Specializations

Template Parameters
GeomTraitsa model of AnalyticWeightTraits_2 for 2D points; a model of AnalyticWeightTraits_3 for 3D points
Precondition
A1 != 0 && A2 != 0

Functions

template<typename GeomTraits >
GeomTraits::FT CGAL::Weights::three_point_family_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 typename GeomTraits::FT a, const GeomTraits &traits)
 computes the three-point family weight in 2D at q using the points p0, p1 and p2, and the power parameter a. More...
 
template<typename Kernel >
Kernel::FT CGAL::Weights::three_point_family_weight (const CGAL::Point_2< Kernel > &p0, const CGAL::Point_2< Kernel > &p1, const CGAL::Point_2< Kernel > &p2, const CGAL::Point_2< Kernel > &q, const typename Kernel::FT a={1})
 computes the three-point family weight in 2D at q using the points p0, p1 and p2, and the power parameter a. More...
 

Function Documentation

◆ three_point_family_weight() [1/2]

template<typename GeomTraits >
GeomTraits::FT CGAL::Weights::three_point_family_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 typename GeomTraits::FT  a,
const GeomTraits &  traits 
)

#include <CGAL/Weights/three_point_family_weights.h>

computes the three-point family weight in 2D at q using the points p0, p1 and p2, and the power parameter a.

Template Parameters
GeomTraitsa model of AnalyticWeightTraits_2
Examples:
Weights/convergence.cpp.

◆ three_point_family_weight() [2/2]

template<typename Kernel >
Kernel::FT CGAL::Weights::three_point_family_weight ( const CGAL::Point_2< Kernel > &  p0,
const CGAL::Point_2< Kernel > &  p1,
const CGAL::Point_2< Kernel > &  p2,
const CGAL::Point_2< Kernel > &  q,
const typename Kernel::FT  a = {1} 
)

#include <CGAL/Weights/three_point_family_weights.h>

computes the three-point family weight in 2D at q using the points p0, p1 and p2, and the power parameter a.

Template Parameters
Kernela model of Kernel