A model of this concept must define nested Point_2 and X_monotone_curve_2 types, which represent planar points and continuous -monotone curves (a vertical segment is also considered to be weakly -monotone), respectively. The -monotone curves are assumed to be pairwise disjoint in their interiors, so they do not intersect except at their endpoints.
The -monotone curves may be unbounded, namely they may have unbounded ends that lie at infinity, or bounded, in which case their have finite endpoints are representable as Point_2 objects. An -monotone curve may also have one unbounded end and one finite endpoint (e.g. a ray). If unbounded curves are supported, the requirements from the traits class are extended a bit, as described below. In particular, the traits class needs to support comparisons at infinity, where we interpret comparisons at infinity as follows: Suppose we wish to compare the -position of the hyperbolas and at ; than since there exists such that for each finite we have (in our case we can take ), we say that is above at infinity. Similarly, when comparing the -positions of the vertical line and the -minimal end of parabola for (which has a vertical asymptote at ), we define that the line lies to the left of the hyperbola. Namely, comparing curves at their unbounded ends should return the comparison result EQUAL only if the curves overlap.
| |
models the concept ArrTraits::Point_2.
| |
| |
models the concept ArrTraits::XMonotoneCurve_2.
|
| |
models the concept ArrTraits::CompareX_2.
If the traits class supports unbounded curves (i.e., the
Has_boundary_category tag is defined as Tag_true), then
the type models the concept ArrTraits::BoundaryCompareX_2.
| |
| |
models the concept ArrTraits::CompareXy_2.
| |
| |
models the concept ArrTraits::BoundaryInX_2.
Required only if the traits class supports unbounded curves
(the Has_boundary_category tag is defined as Tag_true).
| |
| |
models the concept ArrTraits::BoundaryInY_2.
Required only if the traits class supports unbounded curves
(the Has_boundary_category tag is defined as Tag_true).
| |
| |
models the concept ArrTraits::ConstructMinVertex_2.
| |
| |
models the concept ArrTraits::ConstructMaxVertex_2.
| |
| |
models the concept ArrTraits::IsVertical_2.
| |
| |
models the concept ArrTraits::CompareYAtX_2.
If the traits class supports unbounded curves (i.e., the
Has_boundary_category tag is defined as Tag_true), then
the type models the concept ArrTraits::BoundaryCompareYAtX_2.
| |
| |
models the concept ArrTraits::CompareYAtXLeft_2.
Required only if the Has_left_category tag is defined as
Tag_true.
| |
| |
models the concept ArrTraits::CompareYAtXRight_2.
| |
| |
models the concept ArrTraits::Equal_2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
| |
|
|
|
|
|
|
|
| |
|
| |
|
|