The class Arr_consolidated_curve_data_traits_2<Traits,Data> is a model of the ArrangementTraits_2 concept and serves as a decorator class that allows the extension of the curves defined by the Traits parameter, which serves as a geometric traits-class (a model of the ArrangementTraits_2 concept), with extraneous (non-geometric) data fields of type Data.
The traits class inherits its point type from Traits::Point_2, and defines an extended Curve_2 and X_monotone_curve_2 types, as detailed below.
Each Curve_2 object is associated with a single data field of type Data, and each X_monotone_curve_2 object is associated with a set of unique data objects. When a curve is subdivided into -monotone subcurves, all these subcurves are associated with a list containing a single data object, copies from the inducing curve. When an -monotone curve is split, its data set is duplicated two both resulting subcurves. In case two (or more) -monotone curves overlap, their data sets are consolidated and are associated with the -monotone curve that represents the overlap.
#include <CGAL/Arr_consolidated_curve_data_traits_2.h>
Arr_curve_data_traits_2< | Traits, |
_Unique_list<Data>, | |
_Consolidate_unique_lists<Data>, | |
Data> |
| |
a set of data objects that is associated with an -monotone curve.
| |
| |
a non-mutable iterator for the data objects in the data container.
|
The Data_container class nested within the consolidated curve-data traits and associated with the Traits::X_monotone_curve_2 type is maintained as a list with unique data objects. This representation is simple and efficient in terms of memory consumption. It also requires that the Data class supports only the equality operator. Note however that most set operations require linear time.
| |||
default constructor.
| |||
| |||
constructs set containing a single data object.
|