\( \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
ArrangementXMonotoneTraits_2 Concept Reference
Traits Concepts

## Definition

The concept `ArrangementXMonotoneTraits_2` refines the basic arrangement-traits concept. A model of this concept is able to handle \( x\)-monotone curves that intersect in their interior (and points that coincide with curve interiors). This is necessary for constructing arrangements of sets of intersecting \( x\)-monotone curves.

As the resulting structure, represented by the `Arrangement_2` class, stores pairwise interior-disjoint curves, the input curves are split at the intersection points before being inserted into the arrangement. A model of this refined concept therefore needs to compute the intersections (and possibly overlaps) between two \( x\)-monotone curves and to support curve splitting.

Refines:
  `ArrangementBasicTraits_2`

Has Models:

  `CGAL::Arr_segment_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>`

See Also
  `ArrangementBasicTraits_2`

## Types
typedef unspecified_type | Multiplicity
| the multiplicity type.

## Tags
typedef unspecified_type | Has_merge_category
| indicates whether the nested functors `Are_mergeable_2` and `Merge_2` are provided.

## Functor Types
typedef unspecified_type | Intersect_2
| models the concept `ArrTraits::Intersect_2`.
typedef unspecified_type | Split_2
| models the concept `ArrTraits::Split_2`.
Attention The two following function-object types are optional. If they are supported, the `Has_merge_category` tag should be defined as `Tag_true` (and `Tag_false` otherwise.
typedef unspecified_type | Are_mergeable_2
| models the concept `ArrTraits::AreMergeable_2`.
typedef unspecified_type | Merge_2
| models the concept `ArrTraits::Merge_2`.

## Accessing Functor Objects
Intersect_2 | intersect_2_object () const
Split_2 | split_2_object () const
The two following methods are optional. If they are supported, the `Has_merge_category` tag should be defined as `Tag_true` (and `Tag_false` otherwise.
Are_mergeable_2 | are_mergeable_2_object () const
Merge_2 | merge_2_object () const