CGAL 6.1.1 - 2D Arrangements

Loading...
Searching...
No Matches
CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::X_monotone_curve_2< SubcurveType_2, PointType_2 > Class Template Reference

`#include <CGAL/Arr_polycurve_traits_2.h>`

## Definition

template<typename SubcurveTraits_2>
template<typename SubcurveType_2, typename PointType_2>
class CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::X_monotone_curve_2< SubcurveType_2, PointType_2 >

The `X_monotone_curve_2` class nested within the polycurve traits is used to represent \(x\)-monotone piecewise linear subcurves.

It inherits from the `Curve_2` type. `X_monotone_curve_2` can be constructed just like `Curve_2`. However, there is precondition (which is not tested) that the input defines an \(x\)-monotone polycurve. Furthermore, in contrast to the general `Curve_2` type, in this case, the subcurves that an `X_monotone_curve_2` comprises have to be instances of the type `SubcurveTraits_2::X_monotone_curve_2`. Note that the \(x\)-monotonicity ensures that an \(x\)-monotone polycurve is not self-intersecting. (A self-intersecting polycurve is subdivided into several interior-disjoint \(x\)-monotone subcurves).

The defined \(x\)-monotone polycurve can be directed either from right-to-left (and in turn its vertices are stored in an ascending lexicographical \(xy\)-order) or left-to-right (and in this case the vertices are stored in a descending lexicographical \(xy\)-order).