CGAL 6.0 - Weights
|
#include<CGAL/Weights/tangent_weights.h>
This weight is computed as \(w = 2 \frac{t_1 + t_2}{d}\), where \(t_1 = \frac{2 A_0}{d d_0 + D_0}\) and \(t_2 = \frac{2 A_2}{d d_2 + D_2}\) with notations shown in the figure below and dot products
\(D_0 = (p_0 - q) \cdot (p_1 - q)\) and \(D_2 = (p_1 - q) \cdot (p_2 - q)\).
Here, q
is a query point and the points p0
, p1
, and p2
are its neighbors.
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 FT > | |
FT | CGAL::Weights::half_tangent_weight (const FT tan05, const FT d) |
computes the half value of the tangent weight. | |
template<typename FT > | |
FT | CGAL::Weights::tangent_half_angle (const FT d, const FT l, const FT A, const FT D) |
computes the tangent of the half angle. | |
template<typename FT > | |
FT | CGAL::Weights::half_tangent_weight (const FT d, const FT l, const FT A, const FT D) |
computes the half value of the tangent weight. | |
template<typename GeomTraits > | |
GeomTraits::FT | CGAL::Weights::tangent_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 tangent weight in 2D at q using the points p0 , p1 , and p2 | |
template<typename Kernel > | |
Kernel::FT | CGAL::Weights::tangent_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) |
computes the tangent weight in 2D at q using the points p0 , p1 , and p2 | |
template<typename GeomTraits > | |
GeomTraits::FT | CGAL::Weights::tangent_weight (const typename GeomTraits::Point_3 &p0, const typename GeomTraits::Point_3 &p1, const typename GeomTraits::Point_3 &p2, const typename GeomTraits::Point_3 &q, const GeomTraits &traits) |
computes the tangent weight in 3D at q using the points p0 , p1 , and p2 | |
template<typename Kernel > | |
Kernel::FT | CGAL::Weights::tangent_weight (const CGAL::Point_3< Kernel > &p0, const CGAL::Point_3< Kernel > &p1, const CGAL::Point_3< Kernel > &p2, const CGAL::Point_3< Kernel > &q) |
computes the tangent weight in 3D at q using the points p0 , p1 , and p2 | |
FT CGAL::Weights::half_tangent_weight | ( | const FT | d, |
const FT | l, | ||
const FT | A, | ||
const FT | D | ||
) |
#include <CGAL/Weights/tangent_weights.h>
computes the half value of the tangent weight.
This function constructs the half of the tangent weight using the precomputed distance, area, and dot product values. The returned value is \(\frac{2\textbf{t}}{\textbf{d}}\) where \(\textbf{t} = \frac{2\textbf{A}}{\textbf{d}\textbf{l} + \textbf{D}}\).
FT | a model of FieldNumberType |
d | the distance value |
l | the distance value |
A | the area value |
D | the dot product value |
tangent_weight()
FT CGAL::Weights::half_tangent_weight | ( | const FT | tan05, |
const FT | d | ||
) |
#include <CGAL/Weights/tangent_weights.h>
computes the half value of the tangent weight.
This function constructs the half of the tangent weight using the precomputed half angle tangent and distance values. The returned value is \(\frac{2\textbf{tan05}}{\textbf{d}}\).
FT | a model of FieldNumberType |
tan05 | the half angle tangent value |
d | the distance value |
tangent_half_angle()
tangent_weight()
FT CGAL::Weights::tangent_half_angle | ( | const FT | d, |
const FT | l, | ||
const FT | A, | ||
const FT | D | ||
) |
#include <CGAL/Weights/tangent_weights.h>
computes the tangent of the half angle.
This function computes the tangent of the half angle using the precomputed distance, area, and dot product values. The returned value is \(\frac{2\textbf{A}}{\textbf{d}\textbf{l} + \textbf{D}}\).
FT | a model of FieldNumberType |
d | the distance value |
l | the distance value |
A | the area value |
D | the dot product value |
half_tangent_weight()
Kernel::FT CGAL::Weights::tangent_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 | ||
) |
Kernel::FT CGAL::Weights::tangent_weight | ( | const CGAL::Point_3< Kernel > & | p0, |
const CGAL::Point_3< Kernel > & | p1, | ||
const CGAL::Point_3< Kernel > & | p2, | ||
const CGAL::Point_3< Kernel > & | q | ||
) |
GeomTraits::FT CGAL::Weights::tangent_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 | ||
) |
#include <CGAL/Weights/tangent_weights.h>
computes the tangent weight in 2D at q
using the points p0
, p1
, and p2
GeomTraits | a model of AnalyticWeightTraits_2 |
GeomTraits::FT CGAL::Weights::tangent_weight | ( | const typename GeomTraits::Point_3 & | p0, |
const typename GeomTraits::Point_3 & | p1, | ||
const typename GeomTraits::Point_3 & | p2, | ||
const typename GeomTraits::Point_3 & | q, | ||
const GeomTraits & | traits | ||
) |
#include <CGAL/Weights/tangent_weights.h>
computes the tangent weight in 3D at q
using the points p0
, p1
, and p2
GeomTraits | a model of AnalyticWeightTraits_3 |