A model of this concept must define nested Point_2 and X_monotone_curve_2 types, which represent planar points and continuous x-monotone curves (a vertical segment is also considered to be weakly x-monotone), respectively. The x-monotone curves are assumed to be pairwise disjoint in their interiors, so they do not intersect except at their endpoints.
The x-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 x-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 y-position of the hyperbolas y1 = (1)/(x) and y2 = (2)/(x) at x = ∞; than since there exists x0 such that for each finite x > x0 we have y2(x) > y1(x) (in our case we can take x0 = 0), we say that y2 is above y1 at infinity. Similarly, when comparing the x-positions of the vertical line x = 0 and the xy-minimal end of parabola y = (1)/(x) for x > 0 (which has a vertical asymptote at x = 0), 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
| |
|
|
|
|
|
|
|
| |
|
| |
|
|