An x-monotone curve may be closed, in which case its endpoints are representable as Point_2 objects, or open at the boundary of the parameter space. It can have one open end and one closed end (e.g., a ray). The nature of the x-monotone curves, whether they are expected to be closed or not at any one of the four boundary-sides, is conveyed through the definition of the four nested types Left_side_category, Right_side_category, Bottom_side_category, and Top_side_category. If some curves handled by a model of the concept ArrangementOpenBoundaryTraits_2 are expected to be open on the left, the nested type Left_side_category must be convertible to Arr_open_side_tag. Similarly, if some curves handled by the concept are expected to be open on the right, open at the bottom, or open at the top, the corresponding nested type must be convertible to Arr_open_side_tag. A model of the concept ArrangementOpenBoundaryTraits_2 must have all the four categories convertible to Arr_open_side_tag.1 In this case the Dcel of the arrangement instantiated with the model is initialized with an implicit bounding rectangle. When the parameter space is bounded, it is the exact geometric embedding of the implicit bounding rectangle.
ArrangementOpenBoundaryTraits_2::Left_side_category | |
Must be convertible to either Arr_oblivious_side_tag or
Arr_open_side_tag.
| |
ArrangementOpenBoundaryTraits_2::Bottom_side_category | |
Must be convertible to either Arr_oblivious_side_tag or
Arr_open_side_tag.
| |
ArrangementOpenBoundaryTraits_2::Top_side_category | |
Must be convertible to either Arr_oblivious_side_tag or
Arr_open_side_tag.
| |
ArrangementOpenBoundaryTraits_2::Right_side_category | |
Must be convertible to either Arr_oblivious_side_tag or
Arr_open_side_tag.
|
ArrangementOpenBoundaryTraits_2::Parameter_space_in_x_2 | |
models the concept ArrTraits::ParameterSpaceInX_2.
Required only if the traits class supports unbounded curves that
approach the left or the right sides (the Left_side_category
or the Right_side_category categories are convertible to
Arr_open_side_tag).
| |
ArrangementOpenBoundaryTraits_2::Compare_y_near_boundary_2 | |
models the concept ArrTraits::CompareYNearBoundary_2.
Required only if the traits class supports unbounded curves that
approach the left or the right sides (the Left_side_category
or the Right_side_category categories are convertible to
Arr_open_side_tag).
| |
ArrangementOpenBoundaryTraits_2::Parameter_space_in_y_2 | |
models the concept ArrTraits::ParameterSpaceInY_2.
Required only if the traits class supports unbounded curves that
approach the bottom or the top sides (the Bottom_side_category
or the Top_side_category categories are convertible to
Arr_open_side_tag).
| |
ArrangementOpenBoundaryTraits_2::Compare_x_at_limit_2 | |
models the concept ArrTraits::CompareXAtLimit_2.
Required only if the traits class supports unbounded curves that
approach the bottom or the top sides (the Bottom_side_category
or the Top_side_category categories are convertible to
Arr_open_side_tag).
| |
ArrangementOpenBoundaryTraits_2::Compare_x_near_limit_2 | |
models the concept ArrTraits::CompareXNearLimit_2.
Required only if the traits class supports unbounded curves that
approach the bottom or the top sides (the Bottom_side_category
or the Top_side_category categories are convertible to
Arr_open_side_tag).
|
1 | We intend to introduce more concepts that require only a subset of the categories to be convertible to Arr_open_side_tag. |