mirror of https://github.com/CGAL/cgal
90 lines
1.7 KiB
C++
90 lines
1.7 KiB
C++
/*!
|
|
\ingroup PkgPartition2Concepts
|
|
\cgalConcept
|
|
|
|
Requirements of a traits class to be
|
|
used with the function `y_monotone_partition_2()`.
|
|
|
|
\cgalRefines `PartitionTraits_2`
|
|
|
|
\cgalHasModel `CGAL::Partition_traits_2<R>`
|
|
|
|
*/
|
|
|
|
class YMonotonePartitionTraits_2 {
|
|
public:
|
|
|
|
/// \name Types
|
|
/// In addition to the types defined for the concept `PartitionTraits_2`, the following types are also required:
|
|
/// @{
|
|
|
|
/*!
|
|
|
|
*/
|
|
typedef unspecified_type Line_2;
|
|
|
|
/*!
|
|
Predicate object type that provides
|
|
`CGAL::Comparision_result operator()(Point_2 p, Line_2 h)` to compare
|
|
the \f$ x\f$ coordinate of `p` and the horizontal projection of `p`
|
|
on `h`.
|
|
*/
|
|
typedef unspecified_type Compare_x_at_y_2;
|
|
|
|
/*!
|
|
Function object type that provides
|
|
`Line_2 operator()(Point_2 p, Point_2 q)`, which constructs and
|
|
returns the line defined by the points \f$ p\f$ and \f$ q\f$.
|
|
*/
|
|
typedef unspecified_type Construct_line_2;
|
|
|
|
/*!
|
|
Function object type that provides
|
|
`bool operator()(Line_2 l)`, which returns `true` iff the
|
|
line `l` is horizontal.
|
|
*/
|
|
typedef unspecified_type Is_horizontal_2;
|
|
|
|
/// @}
|
|
|
|
/// \name Creation
|
|
/// A copy constructor and default constructor are required.
|
|
/// @{
|
|
|
|
/*!
|
|
|
|
*/
|
|
YMonotonePartitionTraits();
|
|
|
|
/*!
|
|
|
|
*/
|
|
YMonotonePartitionTraits(const YMonotonePartitionTraits tr);
|
|
|
|
/// @}
|
|
|
|
/// \name Operations
|
|
/// In addition to the functions required for the concept
|
|
/// `PartitionTraits_2`, the following functions that create instances
|
|
/// of the above function object types must exist.
|
|
/// @{
|
|
|
|
/*!
|
|
|
|
*/
|
|
Construct_line_2 construct_line_2_object();
|
|
|
|
/*!
|
|
|
|
*/
|
|
Compare_x_at_y_2 compare_x_at_y_2_object();
|
|
|
|
/*!
|
|
|
|
*/
|
|
Is_horizontal_2 is_horizontal_2_object();
|
|
|
|
/// @}
|
|
|
|
}; /* end YMonotonePartitionTraits_2 */
|