\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - 2D Arrangements

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Arr_polycurve_traits_2< GeometryTraits_2 >::X_monotone_curve_2< Segment_type_2_T, Point_type_2_T > Class Template Reference

`#include <CGAL/Arr_polycurve_traits_2.h>`

## Definition

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

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 segments that an `X_monotone_curve_2` comprises have to be instances of the type `GeometryTraits_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).