CGAL 6.1.1 - 2D Arrangements

Loading...
Searching...
No Matches
List of all members
AosTraits_2 Concept Reference
Reference Manual » Concepts » Geometry Traits Concepts

## Definition

The concept `AosTraits_2` allows the construction of arrangement of general planar curves. Models of this concept are used by the free `CGAL::insert()` functions of the arrangement package and by the `CGAL::Arrangement_with_history_2` class.

A model of this concept must define the nested `Curve_2` type, which represents a general planar curve that is not necessarily \(x\)-monotone and is not necessarily connected. Such curves are eventually subdivided into \(x\)-monotone subcurves and isolated points (represented by the `Point_2` and `X_monotone_curve_2` types, defined in the basic traits concept).

A model of the concept `AosTraits_2` that handles arbitrary curves, which are always \(x\)-monotone, such as a traits class that handles linear curves may define the nested types `Curve_2` and `X_monotone_curve_2` to be of equivalent types. Moreover, defining them as of equivalent types is advantageous, as it enables a generic simple implementation of the nested Functor `Make_x_monotone_2`.

On the other hand, a model of the `AosTraits_2` concept that handles arbitrary curves, which may be not \(x\)-monotone must define the `Curve_2` and `X_monotone_curve_2` nested types to be of different types to allow proper dispatching of the free functions that accept such curves, such as `intsert()`.

Refines
  `AosXMonotoneTraits_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
  `AosBasicTraits_2`
  `AosXMonotoneTraits_2`
  `AosLandmarkTraits_2`

## Types
typedef unspecified_type | Curve_2
| ! models the concept `AosTraits::Curve_2`.

## Functor Types
typedef unspecified_type | Make_x_monotone_2
| models the concept `AosTraits::MakeXMonotone_2`.

## Accessing Functor Objects
Make_x_monotone_2 | make_x_monotone_2_object () const