mirror of https://github.com/CGAL/cgal
RegularTriangulationTraits concept documentation
This commit is contained in:
parent
0d2ea9f2f3
commit
6c0c75fb33
|
|
@ -0,0 +1,136 @@
|
|||
|
||||
/*!
|
||||
\ingroup PkgTriangulationsConcepts
|
||||
\cgalConcept
|
||||
|
||||
This concept describes the geometric types and predicates required to build
|
||||
a regular triangulation. It corresponds to the first template parameter of the class
|
||||
`CGAL::Regular_triangulation<RegularTriangulationTraits, TriangulationDataStructure>`.
|
||||
|
||||
\cgalRefines ::TriangulationTraits.
|
||||
|
||||
\cgalHasModel `CGAL::Epick_d<Dim>`
|
||||
|
||||
\sa `TriangulationTraits`
|
||||
*/
|
||||
class RegularTriangulationTraits {
|
||||
public:
|
||||
|
||||
/// \name Types
|
||||
/// @{
|
||||
|
||||
/*!
|
||||
An arithmetic field type.
|
||||
*/
|
||||
typedef unspecified_type FT;
|
||||
|
||||
/*!
|
||||
The weighted point type.
|
||||
*/
|
||||
typedef unspecified_type Weighted_point;
|
||||
|
||||
/*!
|
||||
The un-weighted point type.
|
||||
*/
|
||||
typedef unspecified_type Bare_point;
|
||||
|
||||
/*!
|
||||
A predicate object that must provide the templated operator
|
||||
`template Bare_point operator()(const Weighted_point & wp)`, returning
|
||||
`wp` without its weight.
|
||||
*/
|
||||
typedef unspecified_type Point_drop_weight_d;
|
||||
|
||||
/*!
|
||||
A predicate object that must provide the templated operator
|
||||
`template FT operator()(const Weighted_point & wp)`, returning
|
||||
the weight of `wp`.
|
||||
*/
|
||||
typedef unspecified_type Point_weight_d;
|
||||
|
||||
/*!
|
||||
A predicate object that must provide the templated operator
|
||||
`template<typename ForwardIterator> Oriented_side operator()(ForwardIterator start, ForwardIterator end, const Point_d & p)`.
|
||||
Let \f$ S \f$ be the power sphere of the weighted points in range `[start,end)`.
|
||||
The operator returns:
|
||||
- `ON_ORIENTED_BOUNDARY` if `p` is orthogonal to
|
||||
\f$ S \f$,
|
||||
|
||||
- `ON_NEGATIVE_SIDE` if `p` lies outside the oriented sphere of
|
||||
the same center as \f$ S \f$ and radius \f$ \sqrt{ w_S^2 + w_p^2 }\f$,
|
||||
|
||||
- `ON_POSITIVE_SIDE` if `p` lies inside this oriented sphere.
|
||||
|
||||
\pre If `Dimension`=`CGAL::``Dimension_tag<D>`,
|
||||
then `std::distance(start,end)=D+1`.
|
||||
The points in range
|
||||
`[start,end)` must be affinely independent, i.e., the simplex must
|
||||
not be flat.
|
||||
*/
|
||||
typedef unspecified_type Power_test_d;
|
||||
|
||||
/*!
|
||||
A predicate object that must provide the templated operator
|
||||
`template<typename ForwardIterator> Oriented_side operator()(Flat_orientation_d orient, ForwardIterator start, ForwardIterator end, const Point_d & p)`.
|
||||
|
||||
The points in range `[start,end)` and `p` are supposed to belong to the lower dimensional flat
|
||||
whose orientation is given by `orient`.
|
||||
|
||||
Let \f$ S \f$ be the power sphere of the weighted points in range `[start,end)`
|
||||
in this lower dimensional flat.
|
||||
The operator returns:
|
||||
- `ON_ORIENTED_BOUNDARY` if `p` is orthogonal to
|
||||
\f$ S \f$,
|
||||
|
||||
- `ON_NEGATIVE_SIDE` if `p` lies outside the oriented sphere of
|
||||
the same center as \f$ S \f$ and radius \f$ \sqrt{ w_S^2 + w_p^2 }\f$,
|
||||
|
||||
- `ON_POSITIVE_SIDE` if `p` lies inside this oriented sphere.
|
||||
|
||||
\pre `std::distance(start,end)=k+1` where \f$ k\f$ is the number of
|
||||
points used to construct `orient`.
|
||||
The points in range
|
||||
`[start,end)` must be affinely independent, i.e., the simplex must
|
||||
not be flat. `p` must be in the flat generated by this simplex.
|
||||
*/
|
||||
typedef unspecified_type In_flat_power_test_d;
|
||||
|
||||
/// @}
|
||||
|
||||
/// \name Creation
|
||||
/// @{
|
||||
|
||||
/*!
|
||||
The default constructor.
|
||||
*/
|
||||
RegularTriangulationTraits();
|
||||
|
||||
/// @}
|
||||
|
||||
/// \name Operations
|
||||
/// The following methods permit access to the traits class's predicates:
|
||||
/// @{
|
||||
|
||||
/*!
|
||||
|
||||
*/
|
||||
Point_drop_weight_d point_drop_weight_d_object() const;
|
||||
|
||||
/*!
|
||||
|
||||
*/
|
||||
Point_weight_d point_weight_d_object() const;
|
||||
|
||||
/*!
|
||||
|
||||
*/
|
||||
Power_test_d power_test_d_object() const;
|
||||
|
||||
/*!
|
||||
|
||||
*/
|
||||
In_flat_power_test_d in_flat_power_test_d_object() const;
|
||||
|
||||
/// @}
|
||||
|
||||
}; /* end RegularTriangulationTraits */
|
||||
Loading…
Reference in New Issue