\( \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
List of all members
ArrangementBasicTraits_2 Concept Reference
Traits Concepts

## 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

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>`

## Types
typedef unspecified_type | Point_2
| models the concept `ArrTraits::Point_2`.
typedef unspecified_type | X_monotone_curve_2
| models the concept `ArrTraits::XMonotoneCurve_2`.

## Categories
typedef unspecified_type | Has_left_category
| indicates whether the nested functor `Compare_at_x_left_2` is provided.
typedef unspecified_type | Left_side_category
| Must be convertible to `Arr_oblivious_side_tag`.
typedef unspecified_type | Bottom_side_category
| Must be convertible to `Arr_oblivious_side_tag`.
typedef unspecified_type | Top_side_category
| Must be convertible to `Arr_oblivious_side_tag`.
typedef unspecified_type | Right_side_category
| Must be convertible to `Arr_oblivious_side_tag`.

## Functor Types
typedef unspecified_type | Compare_x_2
| models the concept `ArrTraits::CompareX_2`.
typedef unspecified_type | Compare_xy_2
| models the concept `ArrTraits::CompareXy_2`.
typedef unspecified_type | Construct_min_vertex_2
| models the concept `ArrTraits::ConstructMinVertex_2`.
typedef unspecified_type | Construct_max_vertex_2
| models the concept `ArrTraits::ConstructMaxVertex_2`.
typedef unspecified_type | Is_vertical_2
| models the concept `ArrTraits::IsVertical_2`.
typedef unspecified_type | Compare_y_at_x_2
| models the concept `ArrTraits::CompareYAtX_2`.
typedef unspecified_type | Compare_y_at_x_left_2
| models the concept `ArrTraits::CompareYAtXLeft_2`. More...
typedef unspecified_type | Compare_y_at_x_right_2
| models the concept `ArrTraits::CompareYAtXRight_2`.
typedef unspecified_type | Equal_2
| models the concept `ArrTraits::Equal_2`.

## Accessing Functor Objects
Compare_x_2 | compare_x_2_object () const
Compare_xy_2 | compare_xy_2_object () const
Construct_min_vertex_2 | construct_min_vertex_2_object () const
Construct_max_vertex_2 | construct_max_vertex_2_object () const
Is_vertical_2 | is_vertical_2_object () const
Compare_y_at_x_2 | compare_y_at_x_2_object () const
Compare_y_at_x_left_2 | compare_y_at_x_left_2_object () const
Compare_y_at_x_right_2 | compare_y_at_x_right_2_object () const
Equal_2 | equal_2_object () const

## Member Typedef Documentation

typedef unspecified_type 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`.