|
CGAL 6.1.3 - 2D Arrangements
|
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().
AosXMonotoneTraits_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 |
#include <Concepts/AosTraits_2.h>
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().
AosXMonotoneTraits_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 |