mirror of https://github.com/CGAL/cgal
mael's review
This commit is contained in:
parent
f63e34fca7
commit
fe3317c92f
|
|
@ -6,7 +6,7 @@ namespace Weights {
|
|||
\cgalConcept
|
||||
|
||||
A concept that describes the set of requirements of the template parameter
|
||||
`GeomTraits` used to parameterize several classes and functions with 2D weights
|
||||
`GeomTraits` used to parameterize several classes and functions
|
||||
from the namespace `CGAL::Weights`.
|
||||
|
||||
\cgalHasModel
|
||||
|
|
@ -34,23 +34,18 @@ typedef unspecified_type Comparison_result;
|
|||
*/
|
||||
typedef unspecified_type Orientation;
|
||||
|
||||
/*!
|
||||
A model of `Kernel::Angle_2`.
|
||||
*/
|
||||
typedef unspecified_type Angle_2;
|
||||
|
||||
/// @}
|
||||
|
||||
/// \name Geometric Objects
|
||||
/// @{
|
||||
|
||||
/*!
|
||||
A model of `Kernel::Point_2`.
|
||||
2D point type.
|
||||
*/
|
||||
typedef unspecified_type Point_2;
|
||||
|
||||
/*!
|
||||
A model of `Kernel::Vector_2`.
|
||||
2D vector type.
|
||||
*/
|
||||
typedef unspecified_type Vector_2;
|
||||
|
||||
|
|
@ -110,6 +105,8 @@ typedef unspecified_type Compute_determinant_2;
|
|||
`%Point_2 operator()(const Point_2& p, const Point_2& q, const Point_2& r)`
|
||||
|
||||
that returns the center of the circle passing through the points `p`, `q`, and `r`.
|
||||
|
||||
\pre The points `p`, `q`, and `r` are not collinear.
|
||||
*/
|
||||
typedef unspecified_type Construct_circumcenter_2;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ namespace Weights {
|
|||
\cgalConcept
|
||||
|
||||
A concept that describes the set of requirements of the template parameter
|
||||
`GeomTraits` used to parameterize several classes and functions with 3D weights
|
||||
`GeomTraits` used to parameterize several classes and functions
|
||||
from the namespace `CGAL::Weights`.
|
||||
|
||||
\cgalHasModel
|
||||
|
|
@ -30,20 +30,15 @@ typedef unspecified_type FT;
|
|||
/// @{
|
||||
|
||||
/*!
|
||||
A model of `Kernel::Point_3`.
|
||||
3D point type.
|
||||
*/
|
||||
typedef unspecified_type Point_3;
|
||||
|
||||
/*!
|
||||
A model of `Kernel::Vector_3`.
|
||||
3D vector type.
|
||||
*/
|
||||
typedef unspecified_type Vector_3;
|
||||
|
||||
/*!
|
||||
A model of `Kernel::Angle_3`.
|
||||
*/
|
||||
typedef unspecified_type Angle_3;
|
||||
|
||||
/// @}
|
||||
|
||||
/// \name Constructions
|
||||
|
|
@ -91,6 +86,8 @@ typedef unspecified_type Construct_cross_product_vector_3;
|
|||
`%Point_3 operator()(const Point_3& p, const Point_3& q, const Point_3& r)`
|
||||
|
||||
that returns the center of the circle passing through the points `p`, `q`, and `r`.
|
||||
|
||||
\pre The points `p`, `q`, and `r` are not collinear.
|
||||
*/
|
||||
typedef unspecified_type Construct_circumcenter_3;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefConcepts
|
||||
\cgalConcept
|
||||
|
||||
A concept that describes the set of methods required in all classes for computing
|
||||
2D generalized barycentric weights with respect to polygons.
|
||||
A concept that describes the set of methods required in all classes used in
|
||||
the computation of 2D generalized barycentric weights.
|
||||
|
||||
\cgalHasModel
|
||||
- `CGAL::Weights::Wachspress_weights_2`
|
||||
|
|
@ -21,11 +21,14 @@ public:
|
|||
fills a destination range with 2D generalized barycentric weights
|
||||
computed at the `query` point with respect to the vertices of the input polygon.
|
||||
|
||||
The number of computed weights equals to the number of polygon vertices.
|
||||
\tparam OutIterator
|
||||
a model of `OutputIterator` whose value type is `FieldNumberType`
|
||||
|
||||
The number of computed weights is equal to the number of polygon vertices.
|
||||
*/
|
||||
template<typename OutputIterator>
|
||||
OutputIterator operator()(
|
||||
const Point_2& query, OutputIterator w_begin)
|
||||
template<typename OutIterator>
|
||||
OutIterator operator()(
|
||||
const Point_2& query, OutIterator w_begin)
|
||||
{ }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -7,14 +7,13 @@ namespace Weights {
|
|||
\defgroup PkgWeightsRefConcepts Concepts
|
||||
\ingroup PkgWeightsRef
|
||||
|
||||
Concepts, which are used to parameterize/define the functions and classes
|
||||
from `CGAL::Weights`.
|
||||
Concepts which are used to parameterize and define the functions and classes of this package.
|
||||
|
||||
|
||||
\defgroup PkgWeightsRefAnalytic Analytic Weights
|
||||
\ingroup PkgWeightsRef
|
||||
|
||||
Models and functions that can be used to compute weights, which have a simple analytic expression.
|
||||
Models and functions that can be used to compute weights which have a simple analytic expression.
|
||||
|
||||
|
||||
\defgroup PkgWeightsRefUniformWeights Uniform Weight
|
||||
|
|
@ -26,8 +25,6 @@ This weight is always equal to 1.
|
|||
a model of `AnalyticWeightTraits_2` for 2D points;
|
||||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefAnalytic
|
||||
|
||||
|
||||
|
|
@ -53,7 +50,6 @@ a model of `AnalyticWeightTraits_2` for 2D points;
|
|||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\pre d != 0
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefAnalytic
|
||||
|
||||
|
|
@ -74,14 +70,13 @@ Alternative formulations are explained in \ref Weights_Implementation.
|
|||
\cgalFigureEnd
|
||||
|
||||
\cgalHeading{Alternative Formulations}
|
||||
- This weight is a special case of the \ref PkgWeightsRefShepardWeights "Shepard Weight".
|
||||
This weight is a special case of the \ref PkgWeightsRefShepardWeights "Shepard Weight".
|
||||
|
||||
\tparam GeomTraits
|
||||
a model of `AnalyticWeightTraits_2` for 2D points;
|
||||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\pre d != 0
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefAnalytic
|
||||
|
||||
|
|
@ -94,7 +89,7 @@ This weight is computed as
|
|||
with notations shown in the figure below and \f$a\f$ any real number
|
||||
being the power parameter.
|
||||
|
||||
Here, `q` is a query point and the points `p0`, `p1`, and `p2` are ordered.
|
||||
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 \ref Weights_Implementation_Coplanarity)
|
||||
while alternative formulations are explained in \ref Weights_Implementation.
|
||||
|
|
@ -119,7 +114,6 @@ a model of `AnalyticWeightTraits_2` for 2D points;
|
|||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\pre A1 != 0 && A2 != 0
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefAnalytic
|
||||
|
||||
|
|
@ -131,7 +125,7 @@ This weight is computed as
|
|||
\f$w = \frac{C}{A_1 A_2}\f$
|
||||
with notations shown in the figure below.
|
||||
|
||||
Here, `q` is a query point and the points `p0`, `p1`, and `p2` are ordered.
|
||||
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 \ref Weights_Implementation_Coplanarity)
|
||||
while alternative formulations are explained in \ref Weights_Implementation.
|
||||
|
|
@ -149,7 +143,6 @@ a model of `AnalyticWeightTraits_2` for 2D points;
|
|||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\pre A1 != 0 && A2 != 0
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefAnalytic
|
||||
|
||||
|
|
@ -161,7 +154,7 @@ This weight is computed as
|
|||
\f$w = 2 \frac{\cot\beta + \cot\gamma}{d^2}\f$
|
||||
with notations shown in the figure below.
|
||||
|
||||
Here, `q` is a query point and the points `p0`, `p1`, and `p2` are ordered.
|
||||
Here, `q` is a query point and the points `p0`, `p1`, and `p2` are its neighbors.
|
||||
|
||||
Alternative formulations are explained in \ref Weights_Implementation.
|
||||
|
||||
|
|
@ -178,7 +171,6 @@ a model of `AnalyticWeightTraits_2` for 2D points;
|
|||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\pre d != 0
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefAnalytic
|
||||
|
||||
|
|
@ -196,7 +188,7 @@ with notations shown in the figure below and dot products
|
|||
|
||||
The \f$\pm\f$ 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 ordered.
|
||||
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 \ref Weights_Implementation_Coplanarity)
|
||||
while alternative formulations are explained in \ref Weights_Implementation.
|
||||
|
|
@ -214,7 +206,6 @@ a model of `AnalyticWeightTraits_2` for 2D points;
|
|||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\pre (d * d1 + D1) != 0 && (d * d2 + D2) != 0
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefAnalytic
|
||||
|
||||
|
|
@ -231,7 +222,7 @@ with notations shown in the figure below and dot products
|
|||
\f$D_1 = (p_0 - q) \cdot (p_1 - q)\f$ and
|
||||
\f$D_2 = (p_1 - q) \cdot (p_2 - q)\f$.
|
||||
|
||||
Here, `q` is a query point and the points `p0`, `p1`, and `p2` are ordered.
|
||||
Here, `q` is a query point and the points `p0`, `p1`, and `p2` are its neighbors.
|
||||
|
||||
Alternative formulations are explained in \ref Weights_Implementation.
|
||||
|
||||
|
|
@ -248,7 +239,6 @@ a model of `AnalyticWeightTraits_2` for 2D points;
|
|||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\pre (d * d1 + D1) != 0 && (d * d2 + D2) != 0 && d != 0
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefAnalytic
|
||||
|
||||
|
|
@ -260,7 +250,7 @@ This weight is computed as
|
|||
\f$w = \frac{d_2^2 A_1 - d^2 B + d_1^2 A_2}{A_1 A_2}\f$
|
||||
with notations shown in the figure below.
|
||||
|
||||
Here, `q` is a query point and the points `p0`, `p1`, and `p2` are ordered.
|
||||
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 \ref Weights_Implementation_Coplanarity)
|
||||
while alternative formulations are explained in \ref Weights_Implementation.
|
||||
|
|
@ -278,7 +268,6 @@ a model of `AnalyticWeightTraits_2` for 2D points;
|
|||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\pre A1 != 0 && A2 != 0
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefAnalytic
|
||||
|
||||
|
|
@ -290,7 +279,7 @@ This weight is computed as
|
|||
\f$w = 2 (\cot\beta + \cot\gamma)\f$
|
||||
with notations shown in the figure below.
|
||||
|
||||
Here, `q` is a query point and the points `p0`, `p1`, and `p2` are ordered.
|
||||
Here, `q` is a query point and the points `p0`, `p1`, and `p2` are its neighbors.
|
||||
|
||||
Alternative formulations are explained in \ref Weights_Implementation.
|
||||
|
||||
|
|
@ -306,8 +295,6 @@ Alternative formulations are explained in \ref Weights_Implementation.
|
|||
a model of `AnalyticWeightTraits_2` for 2D points;
|
||||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefAnalytic
|
||||
|
||||
|
||||
|
|
@ -321,7 +308,7 @@ to polygons. These weights are then normalized in order to obtain barycentric co
|
|||
\defgroup PkgWeightsRefBarycentricWachspressWeights Wachspress Weights
|
||||
\ingroup PkgWeightsRefBarycentric
|
||||
|
||||
Wachspress weights, which can be computed for a query point with respect to the
|
||||
Wachspress weights which can be computed for a query point with respect to the
|
||||
vertices of a strictly convex polygon.
|
||||
|
||||
\addtogroup PkgWeightsRefBarycentric
|
||||
|
|
@ -330,7 +317,7 @@ vertices of a strictly convex polygon.
|
|||
\defgroup PkgWeightsRefBarycentricMeanValueWeights Mean Value Weights
|
||||
\ingroup PkgWeightsRefBarycentric
|
||||
|
||||
Mean value weights, which can be computed for a query point with respect to the
|
||||
Mean value weights which can be computed for a query point with respect to the
|
||||
vertices of a simple polygon.
|
||||
|
||||
\addtogroup PkgWeightsRefBarycentric
|
||||
|
|
@ -339,7 +326,7 @@ vertices of a simple polygon.
|
|||
\defgroup PkgWeightsRefBarycentricDiscreteHarmonicWeights Discrete Harmonic Weights
|
||||
\ingroup PkgWeightsRefBarycentric
|
||||
|
||||
Discrete Harmonic weights, which can be computed for a query point with respect to the
|
||||
Discrete Harmonic weights which can be computed for a query point with respect to the
|
||||
vertices of a strictly convex polygon.
|
||||
|
||||
\addtogroup PkgWeightsRefBarycentric
|
||||
|
|
@ -361,8 +348,6 @@ This weight is always equal to 1.
|
|||
a model of `AnalyticWeightTraits_2` for 2D points;
|
||||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefRegions
|
||||
|
||||
|
||||
|
|
@ -380,8 +365,6 @@ the triangle `[p, q, r]`.
|
|||
a model of `AnalyticWeightTraits_2` for 2D points;
|
||||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefRegions
|
||||
|
||||
|
||||
|
|
@ -400,8 +383,6 @@ the triangle `[p, q, r]`.
|
|||
a model of `AnalyticWeightTraits_2` for 2D points;
|
||||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefRegions
|
||||
|
||||
|
||||
|
|
@ -420,8 +401,6 @@ the triangle `[p, q, r]`.
|
|||
a model of `AnalyticWeightTraits_2` for 2D points;
|
||||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\sa \ref PkgWeightsRefMixedVoronoiRegionWeights "Mixed Voronoi Region Weight"
|
||||
|
||||
\addtogroup PkgWeightsRefRegions
|
||||
|
|
@ -451,8 +430,6 @@ the figure below.
|
|||
a model of `AnalyticWeightTraits_2` for 2D points;
|
||||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\sa \ref PkgWeightsRefVoronoiRegionWeights "Voronoi Region Weight"
|
||||
|
||||
\addtogroup PkgWeightsRefRegions
|
||||
|
|
@ -461,7 +438,7 @@ a model of `AnalyticWeightTraits_3` for 3D points
|
|||
\defgroup PkgWeightsRefUtils Utility Functions
|
||||
\ingroup PkgWeightsRef
|
||||
|
||||
Different related utility functions.
|
||||
Various related utility functions.
|
||||
|
||||
|
||||
\defgroup PkgWeightsRefTangents Tangent
|
||||
|
|
@ -474,8 +451,6 @@ the angle `[p, q, r]` in 2D or 3D.
|
|||
a model of `AnalyticWeightTraits_2` for 2D points;
|
||||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefUtils
|
||||
|
||||
|
||||
|
|
@ -489,8 +464,6 @@ the angle `[p, q, r]` in 2D or 3D.
|
|||
a model of `AnalyticWeightTraits_2` for 2D points;
|
||||
a model of `AnalyticWeightTraits_3` for 3D points
|
||||
|
||||
\note The type `FT` is a model of `FieldNumberType`.
|
||||
|
||||
\addtogroup PkgWeightsRefUtils
|
||||
|
||||
|
||||
|
|
@ -510,7 +483,7 @@ weights, and weighting regions. All weights are available both in 2D and 3D.}
|
|||
\cgalPkgSummaryEnd
|
||||
|
||||
\cgalPkgShortInfoBegin
|
||||
\cgalPkgSince{5.3}
|
||||
\cgalPkgSince{5.4}
|
||||
\cgalPkgBib{cgal:a-wi}
|
||||
\cgalPkgLicense{\ref licensesGPL "GPL"}
|
||||
\cgalPkgDemo{Polyhedron demo, polyhedron_3.zip}
|
||||
|
|
|
|||
|
|
@ -12,17 +12,17 @@ namespace Weights {
|
|||
|
||||
Many geometric algorithms rely on the intermediate computation of scalars, so-called *weights*,
|
||||
which are then used for solving different linear systems or to favor one result over another,
|
||||
so-called *weighting*. This package provides a simple and unified interface
|
||||
also known as *weighting*. This package provides a simple and unified interface
|
||||
to different types of weights.
|
||||
|
||||
A typical example of a geometric algorithm that requires weights is a *Laplace smoothing*
|
||||
A typical example of a geometric algorithm that requires weights is the *Laplace smoothing*
|
||||
of a triangle mesh:
|
||||
|
||||
\f$v_i \leftarrow v_i + h \lambda\Delta v_i\f$,
|
||||
|
||||
where \f$v_i\f$ is a position of the mesh vertex \f$i\f$, \f$h\f$ is a sufficiently
|
||||
small time step, \f$\lambda\f$ is a scalar diffusion coefficient, and \f$\Delta v_i\f$
|
||||
is a discrete average of the *Laplace-Beltrami operator* at vertex \f$v_i\f$ computed
|
||||
where \f$v_i\f$ is the position of the mesh vertex \f$i\f$, \f$h\f$ is a sufficiently
|
||||
small time step, \f$\lambda\f$ is the scalar diffusion coefficient, and \f$\Delta v_i\f$
|
||||
is the discrete average of the *Laplace-Beltrami operator* at vertex \f$v_i\f$ computed
|
||||
using the *cotangent weights*:
|
||||
|
||||
\f$\Delta v_i = w_i\sum_{v_j \in N_1(v_i)} w_{ij} (v_j - v_i)\f$,
|
||||
|
|
@ -34,12 +34,12 @@ Here, the weights \f$w_{ij}\f$ can be computed using the
|
|||
\ref PkgWeightsRefCotangentWeights "cotangent weight" and the
|
||||
local averaging domain can be computed using the
|
||||
\ref PkgWeightsRefMixedVoronoiRegionWeights "mixed Voronoi region weight". The
|
||||
algorithm above smooths the mesh geometry that leads to a smoother version of the
|
||||
algorithm above smooths the mesh geometry, resulting in a higher quality version of the
|
||||
original mesh. The full example of the discretized *Laplacian* for all vertices
|
||||
of a triangle mesh can be found \ref Weights_Examples_WeightedLaplacian "here".
|
||||
|
||||
There are many other scenarios where the weights from this package are used. In particular,
|
||||
the following \cgal packages depend on this package:
|
||||
the following \cgal packages make use of weights described in this package:
|
||||
\ref PkgBarycentricCoordinates2 "2D Generalized Barycentric Coordinates",
|
||||
\ref PkgPolygonMeshProcessing "Polygon Mesh Processing",
|
||||
\ref PkgSurfaceMeshDeformation "Triangulated Surface Mesh Deformation",
|
||||
|
|
@ -57,31 +57,31 @@ three typical groups of weights:
|
|||
|
||||
- \ref PkgWeightsRefAnalytic "Analytic Weights"
|
||||
include all basic weights which can be computed for a query point with respect to its local
|
||||
neighbors in 2D or 3D, whatever way these neighbors are defined. Usually, the configuration is
|
||||
neighbors in 2D or 3D, however these neighbors are defined. Usually, the configuration is
|
||||
a query point and three other points. These weights return one unique value per query point.
|
||||
- \ref PkgWeightsRefBarycentric "Barycentric Weights"
|
||||
include all weights which can be computed for a query point with respect to the vertices
|
||||
of a polygon in XY or any other plane. These weights return \f$n\f$ values per query
|
||||
of a planar polygon. These weights return \f$n\f$ values per query
|
||||
point, where \f$n\f$ is the number of polygon vertices. Barycentric weights are also used
|
||||
for computing \ref PkgBarycentricCoordinates2 "2D barycentric coordinates".
|
||||
- \ref PkgWeightsRefRegions "Weighting Regions"
|
||||
include all weights which are used to balance other weights but are rarely used on their own.
|
||||
Sometimes, such weights are referred as *local averaging regions*. These weights are usually
|
||||
lengths, areas, and volumes of 2D and 3D objects.
|
||||
Sometimes, such weights are also referred to as *local averaging regions*. These weights
|
||||
are usually lengths, areas, and volumes of 2D and 3D objects.
|
||||
|
||||
|
||||
\section Weights_Implementation Implementation
|
||||
|
||||
All weights have a simple and unified interface. In particular, all analytic weights take
|
||||
a query point and three other points in 2D or 3D and return a unique scalar. They all
|
||||
All weight functions have a simple and unified interface. In particular, all analytic weight functions
|
||||
usually take a query point and three other points in 2D or 3D and return a unique scalar. They all
|
||||
have the same signature and are parameterized by a traits class that must be a model of
|
||||
`AnalyticWeightTraits_2` for 2D computations or `AnalyticWeightTraits_3` for 3D computations.
|
||||
|
||||
The barycentric weights are parameterized by a traits class of the concept
|
||||
`AnalyticWeightTraits_2` and are all models of the concept `BarycentricWeights_2`.
|
||||
The barycentric weight functions are parameterized by a traits class of the concept
|
||||
`AnalyticWeightTraits_2` and they are all models of the concept `BarycentricWeights_2`.
|
||||
They take an input polygon and a query point and compute the weights at this point
|
||||
with respect to all vertices of the polygon. The weights are then returned in a
|
||||
container providing the corresponding output iterator. These weights also provide a
|
||||
with respect to all vertices of the polygon. The computed weights are then returned in a
|
||||
container providing the corresponding output iterator. These weight functions also provide a
|
||||
\ref PkgPropertyMap "property map" mechanism for mapping a user type of the polygon
|
||||
vertex to `CGAL::Point_2`.
|
||||
|
||||
|
|
@ -89,13 +89,13 @@ All weighting regions have the same signature and are parameterized by a traits
|
|||
of the concept `AnalyticWeightTraits_2` or `AnalyticWeightTraits_3`. The returned weight
|
||||
is a unique scalar.
|
||||
|
||||
The parameter `traits` with a traits class can be omitted for all functions and classes
|
||||
if it can be deduced from the input point type.
|
||||
The `traits` parameter can be omitted for all functions and classes if it can be deduced
|
||||
from the input point type using `CGAL::Kernel_traits`.
|
||||
|
||||
Several weights in this package have different implementations. One reason to have it is
|
||||
explained in section about \ref Weights_Implementation_Coplanarity. Another reason is that
|
||||
in different communities the same weights are named and computed differently. If one searches
|
||||
for these weights, one needs to know all their alternative names, which is tiresome. We provide
|
||||
the same weights are named and computed differently in different communities. If one searches
|
||||
for these weights, one needs to know all their alternative names which is problematic. We provide
|
||||
the most common names and implementations of these weights.
|
||||
|
||||
|
||||
|
|
@ -108,7 +108,7 @@ and [\f$q\f$, \f$p_1\f$, \f$p_2\f$]. When working in 3D, these triangles are not
|
|||
necessarily coplanar, in other words, they do not belong to the same common plane.
|
||||
|
||||
Certain weights in this package support only coplanar configurations, while other weights support both.
|
||||
The weights, which support non-coplanar configurations, provide the corresponding overloads with 3D points,
|
||||
The weights which support non-coplanar configurations, provide the corresponding overloads with 3D points,
|
||||
while other weights accept only 2D point types. For example, \ref PkgWeightsRefCotangentWeights "cotangent weights"
|
||||
support both coplanar and non-coplanar configurations, while \ref PkgWeightsRefDiscreteHarmonicWeights "discrete harmonic weights"
|
||||
support only coplanar configurations.
|
||||
|
|
@ -116,13 +116,13 @@ support only coplanar configurations.
|
|||
|
||||
\subsection Weights_Implementation_Boundaries Boundaries
|
||||
|
||||
None of the weights in this package is defined for query points on the boundaries. The boundary cases include:
|
||||
None of the weights in this package are defined for query points on boundaries. The boundary cases include:
|
||||
|
||||
- *edges*, for example [\f$p_0\f$, \f$p_1\f$] or [\f$p_1\f$, \f$p_2\f$] or any polygon edge and
|
||||
- *corners*, for example \f$p_0\f$, \f$p_1\f$, or \f$p_2\f$ or any polygon corner.
|
||||
|
||||
Several weights also require other conditions to be satisifed. You should address the
|
||||
reference manual for more details.
|
||||
Several weights also require additional conditions to be satisifed. Consult the reference
|
||||
manual for more details.
|
||||
|
||||
|
||||
\section Weights_Examples Examples
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefAuthalicWeights
|
||||
|
||||
\brief computes the authalic weight in 2D at `q` using the points `p0`, `p1`,
|
||||
and `p2`, which are parameterized by a `Kernel` K.
|
||||
and `p2` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT authalic_weight(
|
||||
|
|
@ -125,7 +125,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefAuthalicWeights
|
||||
|
||||
\brief computes the authalic weight in 3D at `q` using the points `p0`, `p1`,
|
||||
and `p2`, which are parameterized by a `Kernel` K.
|
||||
and `p2` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT authalic_weight(
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefBarycentricRegionWeights
|
||||
|
||||
\brief computes the area of the barycentric cell in 2D using the points `p`, `q`
|
||||
and `r`, which are parameterized by a `Kernel` K.
|
||||
and `r` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT barycentric_area(
|
||||
|
|
@ -66,7 +66,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefBarycentricRegionWeights
|
||||
|
||||
\brief computes the area of the barycentric cell in 3D using the points `p`, `q`
|
||||
and `r`, which are parameterized by a `Kernel` K.
|
||||
and `r` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT barycentric_area(
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefCotangentWeights
|
||||
|
||||
\brief computes the cotangent weight in 2D at `q` using the points `p0`, `p1`,
|
||||
and `p2`, which are parameterized by a `Kernel` K.
|
||||
and `p2` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT cotangent_weight(
|
||||
|
|
@ -106,7 +106,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefCotangentWeights
|
||||
|
||||
\brief computes the cotangent weight in 3D at `q` using the points `p0`, `p1`,
|
||||
and `p2`, which are parameterized by a `Kernel` K.
|
||||
and `p2` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT cotangent_weight(
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefDiscreteHarmonicWeights
|
||||
|
||||
\brief computes the discrete harmonic weight in 2D at `q` using the points `p0`, `p1`,
|
||||
and `p2`, which are parameterized by a `Kernel` K.
|
||||
and `p2` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT discrete_harmonic_weight(
|
||||
|
|
@ -151,7 +151,7 @@ namespace Weights {
|
|||
\brief 2D discrete harmonic weights for polygons.
|
||||
|
||||
This class implements 2D discrete harmonic weights ( \cite cgal:bc:fhk-gcbcocp-06,
|
||||
\cite cgal:pp-cdmsc-93, \cite cgal:bc:eddhls-maam-95 ), which can be computed
|
||||
\cite cgal:pp-cdmsc-93, \cite cgal:bc:eddhls-maam-95 ) which can be computed
|
||||
at any point inside a strictly convex polygon.
|
||||
|
||||
Discrete harmonic weights are well-defined inside a strictly convex polygon
|
||||
|
|
@ -253,7 +253,7 @@ namespace Weights {
|
|||
This function fills a destination range with 2D discrete harmonic weights
|
||||
computed at the `query` point with respect to the vertices of the input polygon.
|
||||
|
||||
The number of computed weights equals to the number of polygon vertices.
|
||||
The number of computed weights is equal to the number of polygon vertices.
|
||||
|
||||
\tparam OutIterator
|
||||
a model of `OutputIterator` whose value type is `FT`
|
||||
|
|
@ -375,7 +375,7 @@ namespace Weights {
|
|||
Internally, the class `Discrete_harmonic_weights_2` is used. If one wants to process
|
||||
multiple query points, it is better to use that class. When using the free function,
|
||||
internal memory is allocated for each query point, while when using the class,
|
||||
it is allocated only once, which is much more efficient. However, for a few query
|
||||
it is allocated only once which is much more efficient. However, for a few query
|
||||
points, it is easier to use this function. It can also be used when the processing
|
||||
time is not a concern.
|
||||
|
||||
|
|
@ -390,7 +390,7 @@ namespace Weights {
|
|||
a model of `AnalyticWeightTraits_2`
|
||||
|
||||
\param polygon
|
||||
an instance of `PointRange` with 2D points, which form a strictly convex polygon
|
||||
an instance of `PointRange` with 2D points which form a strictly convex polygon
|
||||
|
||||
\param query
|
||||
a query point
|
||||
|
|
|
|||
|
|
@ -454,7 +454,7 @@ namespace internal {
|
|||
// The common plane that is used in this example is projectable to the XY plane. We first
|
||||
// compute `Mean_value_weights_2` for a 3D polygon in this plane. We then also show how to use
|
||||
// the projection traits to compute the \ref PkgWeightsRefWachspressWeights "2D Wachspress weight"
|
||||
// for 3D points, which are not strictly coplanar.
|
||||
// for 3D points which are not strictly coplanar.
|
||||
|
||||
// \cgalExample{Weights/projection_traits.cpp}
|
||||
|
||||
|
|
@ -470,7 +470,7 @@ namespace internal {
|
|||
// e.g. 0 - Wachspress (WP) weight.
|
||||
// const FT wp = FT(0);
|
||||
|
||||
// Compute WP weights for q1, which is not on the plane [p0, p1, p2].
|
||||
// Compute WP weights for q1 which is not on the plane [p0, p1, p2].
|
||||
|
||||
// Point_3 q1(3, 1, 2);
|
||||
// std::cout << "3D wachspress (WP, q1): ";
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefMeanValueWeights
|
||||
|
||||
\brief computes the mean value weight in 2D at `q` using the points `p0`, `p1`,
|
||||
and `p2`, which are parameterized by a `Kernel` K.
|
||||
and `p2` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT mean_value_weight(
|
||||
|
|
@ -196,7 +196,7 @@ namespace Weights {
|
|||
\brief 2D mean value weights for polygons.
|
||||
|
||||
This class implements 2D mean value weights ( \cite cgal:bc:hf-mvcapp-06,
|
||||
\cite cgal:bc:fhk-gcbcocp-06, \cite cgal:f-mvc-03 ), which can be computed
|
||||
\cite cgal:bc:fhk-gcbcocp-06, \cite cgal:f-mvc-03 ) which can be computed
|
||||
at any point inside and outside a simple polygon.
|
||||
|
||||
Mean value weights are well-defined inside and outside a simple polygon and are
|
||||
|
|
@ -302,7 +302,7 @@ namespace Weights {
|
|||
This function fills a destination range with 2D mean value weights computed at
|
||||
the `query` point with respect to the vertices of the input polygon.
|
||||
|
||||
The number of computed weights equals to the number of polygon vertices.
|
||||
The number of computed weights is equal to the number of polygon vertices.
|
||||
|
||||
\tparam OutIterator
|
||||
a model of `OutputIterator` whose value type is `FT`
|
||||
|
|
@ -445,7 +445,7 @@ namespace Weights {
|
|||
Internally, the class `Mean_value_weights_2` is used. If one wants to process
|
||||
multiple query points, it is better to use that class. When using the free function,
|
||||
internal memory is allocated for each query point, while when using the class,
|
||||
it is allocated only once, which is much more efficient. However, for a few query
|
||||
it is allocated only once which is much more efficient. However, for a few query
|
||||
points, it is easier to use this function. It can also be used when the processing
|
||||
time is not a concern.
|
||||
|
||||
|
|
@ -460,7 +460,7 @@ namespace Weights {
|
|||
a model of `AnalyticWeightTraits_2`
|
||||
|
||||
\param polygon
|
||||
an instance of `PointRange` with 2D points, which form a simple polygon
|
||||
an instance of `PointRange` with 2D points which form a simple polygon
|
||||
|
||||
\param query
|
||||
a query point
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefMixedVoronoiRegionWeights
|
||||
|
||||
\brief computes the area of the mixed Voronoi cell in 2D using the points `p`, `q`
|
||||
and `r`, which are parameterized by a `Kernel` K.
|
||||
and `r` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT mixed_voronoi_area(
|
||||
|
|
@ -66,7 +66,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefMixedVoronoiRegionWeights
|
||||
|
||||
\brief computes the area of the mixed Voronoi cell in 3D using the points `p`, `q`
|
||||
and `r`, which are parameterized by a `Kernel` K.
|
||||
and `r` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT mixed_voronoi_area(
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefShepardWeights
|
||||
|
||||
\brief computes the Shepard weight in 2D using the points `p` and `q`,
|
||||
which are parameterized by a `Kernel` K, and the power parameter `a`, which
|
||||
which are parameterized by a `Kernel` K, and the power parameter `a` which
|
||||
can be omitted.
|
||||
*/
|
||||
template<typename K>
|
||||
|
|
@ -97,7 +97,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefShepardWeights
|
||||
|
||||
\brief computes the Shepard weight in 3D using the points `p` and `q`,
|
||||
which are parameterized by a `Kernel` K, and the power parameter `a`, which
|
||||
which are parameterized by a `Kernel` K, and the power parameter `a` which
|
||||
can be omitted.
|
||||
*/
|
||||
template<typename K>
|
||||
|
|
@ -138,7 +138,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefShepardWeights
|
||||
|
||||
\brief computes the Shepard weight in 2D using the points `p` and `q`,
|
||||
which are parameterized by a `Kernel` K, and the power parameter `a`, which
|
||||
which are parameterized by a `Kernel` K, and the power parameter `a` which
|
||||
can be omitted.
|
||||
*/
|
||||
template<typename K>
|
||||
|
|
@ -151,7 +151,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefShepardWeights
|
||||
|
||||
\brief computes the Shepard weight in 3D using the points `p` and `q`,
|
||||
which are parameterized by a `Kernel` K, and the power parameter `a`, which
|
||||
which are parameterized by a `Kernel` K, and the power parameter `a` which
|
||||
can be omitted.
|
||||
*/
|
||||
template<typename K>
|
||||
|
|
|
|||
|
|
@ -281,7 +281,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefTangentWeights
|
||||
|
||||
\brief computes the tangent weight in 2D at `q` using the points `p0`, `p1`,
|
||||
and `p2`, which are parameterized by a `Kernel` K.
|
||||
and `p2` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT tangent_weight(
|
||||
|
|
@ -294,7 +294,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefTangentWeights
|
||||
|
||||
\brief computes the tangent weight in 3D at `q` using the points `p0`, `p1`,
|
||||
and `p2`, which are parameterized by a `Kernel` K.
|
||||
and `p2` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT tangent_weight(
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefThreePointFamilyWeights
|
||||
|
||||
\brief computes the three-point family weight in 2D at `q` using the points `p0`, `p1`,
|
||||
and `p2`, which are parameterized by a `Kernel` K, and the power parameter `a`, which
|
||||
and `p2` which are parameterized by a `Kernel` K, and the power parameter `a` which
|
||||
can be omitted.
|
||||
*/
|
||||
template<typename K>
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefTriangularRegionWeights
|
||||
|
||||
\brief computes the area of the triangular cell in 2D using the points `p`, `q`
|
||||
and `r`, which are parameterized by a `Kernel` K.
|
||||
and `r` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT triangular_area(
|
||||
|
|
@ -66,7 +66,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefTriangularRegionWeights
|
||||
|
||||
\brief computes the area of the triangular cell in 3D using the points `p`, `q`
|
||||
and `r`, which are parameterized by a `Kernel` K.
|
||||
and `r` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT triangular_area(
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ namespace Weights {
|
|||
/*!
|
||||
\ingroup PkgWeightsRefUniformRegionWeights
|
||||
|
||||
\brief this function always returns 1, given three points in 2D, which are
|
||||
\brief this function always returns 1, given three points in 2D which are
|
||||
parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
|
|
@ -65,7 +65,7 @@ namespace Weights {
|
|||
/*!
|
||||
\ingroup PkgWeightsRefUniformRegionWeights
|
||||
|
||||
\brief this function always returns 1, given three points in 3D, which are
|
||||
\brief this function always returns 1, given three points in 3D which are
|
||||
parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ namespace Weights {
|
|||
/*!
|
||||
\ingroup PkgWeightsRefUniformWeights
|
||||
|
||||
\brief this function always returns 1, given four points in 2D, which are
|
||||
\brief this function always returns 1, given four points in 2D which are
|
||||
parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
|
|
@ -68,7 +68,7 @@ namespace Weights {
|
|||
/*!
|
||||
\ingroup PkgWeightsRefUniformWeights
|
||||
|
||||
\brief this function always returns 1, given four points in 3D, which are
|
||||
\brief this function always returns 1, given four points in 3D which are
|
||||
parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefTangents
|
||||
|
||||
\brief computes the tangent of the angle between the vectors `[q, r]` and `[q, p]`
|
||||
using the 2D points `p`, `q` and `r`, which are parameterized by a `Kernel` K.
|
||||
using the 2D points `p`, `q` and `r` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT tangent(
|
||||
|
|
@ -69,7 +69,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefTangents
|
||||
|
||||
\brief computes the tangent of the angle between the vectors `[q, r]` and `[q, p]`
|
||||
using the 3D points `p`, `q` and `r`, which are parameterized by a `Kernel` K.
|
||||
using the 3D points `p`, `q` and `r` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT tangent(
|
||||
|
|
@ -109,7 +109,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefCotangents
|
||||
|
||||
\brief computes the cotangent of the angle between the vectors `[q, r]` and `[q, p]`
|
||||
using the 2D points `p`, `q` and `r`, which are parameterized by a `Kernel` K.
|
||||
using the 2D points `p`, `q` and `r` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT cotangent(
|
||||
|
|
@ -121,7 +121,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefCotangents
|
||||
|
||||
\brief computes the cotangent of the angle between the vectors `[q, r]` and `[q, p]`
|
||||
using the 3D points `p`, `q` and `r`, which are parameterized by a `Kernel` K.
|
||||
using the 3D points `p`, `q` and `r` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT cotangent(
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefVoronoiRegionWeights
|
||||
|
||||
\brief computes the area of the Voronoi cell in 2D using the points `p`, `q`
|
||||
and `r`, which are parameterized by a `Kernel` K.
|
||||
and `r` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT voronoi_area(
|
||||
|
|
@ -66,7 +66,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefVoronoiRegionWeights
|
||||
|
||||
\brief computes the area of the Voronoi cell in 3D using the points `p`, `q`
|
||||
and `r`, which are parameterized by a `Kernel` K.
|
||||
and `r` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT voronoi_area(
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ namespace Weights {
|
|||
\ingroup PkgWeightsRefWachspressWeights
|
||||
|
||||
\brief computes the Wachspress weight in 2D at `q` using the points `p0`, `p1`,
|
||||
and `p2`, which are parameterized by a `Kernel` K.
|
||||
and `p2` which are parameterized by a `Kernel` K.
|
||||
*/
|
||||
template<typename K>
|
||||
typename K::FT wachspress_weight(
|
||||
|
|
@ -140,7 +140,7 @@ namespace Weights {
|
|||
\brief 2D Wachspress weights for polygons.
|
||||
|
||||
This class implements 2D Wachspress weights ( \cite cgal:bc:fhk-gcbcocp-06,
|
||||
\cite cgal:bc:mlbd-gbcip-02, \cite cgal:bc:w-rfeb-75 ), which can be computed
|
||||
\cite cgal:bc:mlbd-gbcip-02, \cite cgal:bc:w-rfeb-75 ) which can be computed
|
||||
at any point inside a strictly convex polygon.
|
||||
|
||||
Wachspress weights are well-defined and non-negative inside a strictly convex polygon.
|
||||
|
|
@ -239,7 +239,7 @@ namespace Weights {
|
|||
This function fills a destination range with 2D Wachspress weights computed
|
||||
at the `query` point with respect to the vertices of the input polygon.
|
||||
|
||||
The number of computed weights equals to the number of polygon vertices.
|
||||
The number of computed weights is equal to the number of polygon vertices.
|
||||
|
||||
\tparam OutIterator
|
||||
a model of `OutputIterator` whose value type is `FT`
|
||||
|
|
@ -355,7 +355,7 @@ namespace Weights {
|
|||
Internally, the class `Wachspress_weights_2` is used. If one wants to process
|
||||
multiple query points, it is better to use that class. When using the free function,
|
||||
internal memory is allocated for each query point, while when using the class,
|
||||
it is allocated only once, which is much more efficient. However, for a few query
|
||||
it is allocated only once which is much more efficient. However, for a few query
|
||||
points, it is easier to use this function. It can also be used when the processing
|
||||
time is not a concern.
|
||||
|
||||
|
|
@ -370,7 +370,7 @@ namespace Weights {
|
|||
a model of `AnalyticWeightTraits_2`
|
||||
|
||||
\param polygon
|
||||
an instance of `PointRange` with 2D points, which form a strictly convex polygon
|
||||
an instance of `PointRange` with 2D points which form a strictly convex polygon
|
||||
|
||||
\param query
|
||||
a query point
|
||||
|
|
|
|||
Loading…
Reference in New Issue