Concept

ArrangementBasicTraits_2

Definition

The concept ArrangementBasicTraits_2 defines the minimal set of geometric predicates needed for the construction and maintenance of objects of the class Arrangement_2, as well as performing simple queries (such as point-location queries) on such arrangements.

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_curve_2 curves of an arrangement are confined to an iso-rectangular area called the parameter space. The iso-rectangule can be unbounded, open, or closed. The set of predicates provided by a model the concept ArrangementBasicTraits_2 is sufficient for constructing arrangements of x-monotone curves that do not reach or approach the boundary of the parameter space. The nature of the input curves, whether they are expected to reach or approach the left, right, bottom, or top side of the boundary of the parameter space, are conveyed through the definition of four additional nested types, namely Left_side_category, Right_side_category, Bottom_side_category, and Top_side_category. Each such type must be convertible to the type Arr_oblivious_side_tag.

Refines

DefaultConstructible, CopyConstructible, Assignable

Types

ArrangementBasicTraits_2::Point_2
models the concept ArrTraits::Point_2.

ArrangementBasicTraits_2::X_monotone_curve_2
models the concept ArrTraits::XMonotoneCurve_2.

Categories

ArrangementBasicTraits_2::Has_left_category
indicates whether the nested functor Compare_at_x_left_2 is provided.


ArrangementBasicTraits_2::Left_side_category
Must be convertible to Arr_oblivious_side_tag.


ArrangementBasicTraits_2::Bottom_side_category
Must be convertible to Arr_oblivious_side_tag.


ArrangementBasicTraits_2::Top_side_category
Must be convertible to Arr_oblivious_side_tag.


ArrangementBasicTraits_2::Right_side_category
Must be convertible to Arr_oblivious_side_tag.

Functor Types

ArrangementBasicTraits_2::Compare_x_2
models the concept ArrTraits::CompareX_2.

ArrangementBasicTraits_2::Compare_xy_2
models the concept ArrTraits::CompareXy_2.

ArrangementBasicTraits_2::Construct_min_vertex_2
models the concept ArrTraits::ConstructMinVertex_2.

ArrangementBasicTraits_2::Construct_max_vertex_2
models the concept ArrTraits::ConstructMaxVertex_2.

ArrangementBasicTraits_2::Is_vertical_2
models the concept ArrTraits::IsVertical_2.

ArrangementBasicTraits_2::Compare_y_at_x_2
models the concept ArrTraits::CompareYAtX_2.

ArrangementBasicTraits_2::Compare_y_at_x_left_2
models the concept ArrTraits::CompareYAtXLeft_2. Required only if the Has_left_category category is convertible to Tag_true.

ArrangementBasicTraits_2::Compare_y_at_x_right_2
models the concept ArrTraits::CompareYAtXRight_2.

ArrangementBasicTraits_2::Equal_2
models the concept ArrTraits::Equal_2.

Accessing Functor Objects

Compare_x_2 traits.compare_x_2_object () const
Compare_xy_2 traits.compare_xy_2_object () const
Construct_min_vertex_2 traits.construct_min_vertex_2_object () const
Construct_max_vertex_2 traits.construct_max_vertex_2_object () const
Is_vertical_2 traits.is_vertical_2_object () const
Compare_y_at_x_2 traits.compare_y_at_x_2_object () const
Compare_y_at_x_left_2 traits.compare_y_at_x_left_2_object () const
Compare_y_at_x_right_2 traits.compare_y_at_x_right_2_object () const
Equal_2 traits.equal_2_object () const

Has Models

CGAL::Arr_segment_traits_2<Kernel>
CGAL::Arr_non_caching_segment_basic_traits_2<Kernel>
CGAL::Arr_non_caching_segment_traits_2<Kernel>
CGAL::Arr_linear_traits_2<Kernel>
CGAL::Arr_polyline_traits_2<SegmentTraits>
CGAL::Arr_circle_segment_traits_2<Kernel>
CGAL::Arr_line_arc_traits_2<CircularKernel>
CGAL::Arr_circular_arc_traits_2<CircularKernel>
CGAL::Arr_circular_line_arc_traits_2<CircularKernel>
CGAL::Arr_conic_traits_2<RatKernel,AlgKernel,NtTraits>
CGAL::Arr_rational_function_traits_2<AlgebraicKernel_d_1>
CGAL::Arr_Bezier_curve_traits_2<RatKernel,AlgKernel,NtTraits>
CGAL::Arr_algebraic_segment_traits_2<Coefficient>
CGAL::Arr_curve_data_traits_2<Tr,XData,Mrg,CData,Cnv>
CGAL::Arr_consolidated_curve_data_traits_2<Traits,Data>