|
CGAL 6.0 - 2D Arrangements
|
#include <CGAL/Arr_polycurve_traits_2.h>
The Curve_2 type nested in the Arr_polycurve_traits_2 represents general continuous piecewise-linear subcurves (a polycurve can be self-intersecting) and support their construction from range of subcurves.
Construction of polycurves in various ways is supported using the construction functors. It is strongly recommended to avoid construction of Curve_2 objects directly and prefer the usage of the construction functors. The type Curve_2 has two template parameters, namely SubcurveType_2 and PointType_2, which are SubcurveTraits_2::Curve_2 and SubcurveTraits_2::Point_2 types. Thus, in general, the subcurves that a Curve_2 instance comprises could be either \(x\)-monotone or not!
The copy and default constructor as well as the assignment operator are provided for polycurve subcurves. In addition, an operator<< for the subcurves is defined for standard output streams, and an operator>> for the subcurves is defined for standard input streams.
Types | |
| typedef std::vector< Subcurve_2 > | Subcurves_container |
| The container of the subcurves that comprises the polycurve. | |
| typedef Subcurves_container::size_type | Size |
| The size of the container that comprises the polycurve. | |
| typedef Subcurves_container::size_type | size_type |
| typedef unspecified_type | const_iterator |
| typedef unspecified_type | const_reverse_iterator |
| typedef unspecified_type | Subcurve_const_iterator |
| A bidirectional constant iterator that allows traversing the subcurves that comprise the polycurve. | |
| typedef unspecified_type | Subcurve_const_reverse_iterator |
| A bidirectional constant iterator that allows traversing the subcurves that comprise the polycurve. | |
Creation | |
| Curve_2 () | |
| Default constructor that constructs an empty polycurve. | |
| Curve_2 (const Subcurve_2 subcurve) | |
| Construct a polycurve from one subcurve. | |
| template<typename InputIterator > | |
| Curve_2 (Iterator first, Iterator last) | |
Construct a polycurve defined by the given range of subcurves [first, last) (the value-type of InputIterator must be SubcurveTraits_2::Curve_2. | |
Access Functions | |
| unsigned_int | points () const |
| const_iterator | begin () const |
| Subcurve_const_iterator | begin_subcurves () const |
| Obtain an iterator pointing at the first subcurve of the polycurve. | |
| const_iterator | end () const |
| Subcurve_const_iterator | end_subcurves () const |
| Get an iterator pointing at the past-the-end subcurve of the polycurve. | |
| const_iterator | rbegin () const |
| Subcurve_const_reverse_iterator | rbegin_subcurves () const |
| Obtain an iterator pointing at the last subcurve of the polycurve. | |
| const_iterator | rend () const |
| Subcurve_const_reverse_iterator | rend_subcurves () const |
| Obtain an iterator pointing at the past-the-end subcurve of the polycurve in reverse order. | |
| size_type | size () const |
| size_type | number_of_subcurves () const |
| Obtain the number of subcurves that comprise the polycurve. | |
| SubcurveTraits_2::X_monotone_curve_2 | operator[] (size_t k) const |
| Obtain the \( k\)th subcurve of the polycurve. | |
| Bbox_2 | bbox () const |
| Obtain the bounding box of the polycurve. | |
Operations | |
| void | push_back (const Subcurve_2 &subcurve) |
| Append a subcurve to the polycurve at the back. | |
| void | push_front (const Subcurve_2 &subcurve) |
| Append a subcurve to the polycurve at the front. | |
| void | push_back (const Point_2 &p) |
| void | clear () |
| Reset the polycurve. | |
| typedef unspecified_type CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::Curve_2< SubcurveType_2, PointType_2 >::const_iterator |
| typedef unspecified_type CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::Curve_2< SubcurveType_2, PointType_2 >::const_reverse_iterator |
| CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::Curve_2< SubcurveType_2, PointType_2 >::Curve_2 | ( | Iterator | first, |
| Iterator | last | ||
| ) |
Construct a polycurve defined by the given range of subcurves [first, last) (the value-type of InputIterator must be SubcurveTraits_2::Curve_2.
In general, the subcurves might not be \(x\)-monotone, furthermore, they might not form a continuous polycurve.
SubcurveTraits_2::Point_2. In this case, the constructed polycurve will concatenate the \(n\)th point with the \((n+1)\)-st point in the range (using a SubcurveTraits_2::Subcurve_2's). This functionality is deprecated. Instead use the Construct_curve_2 functors. | const_iterator CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::Curve_2< SubcurveType_2, PointType_2 >::begin | ( | ) | const |
| const_iterator CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::Curve_2< SubcurveType_2, PointType_2 >::end | ( | ) | const |
| SubcurveTraits_2::X_monotone_curve_2 CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::Curve_2< SubcurveType_2, PointType_2 >::operator[] | ( | size_t | k | ) | const |
Obtain the \( k\)th subcurve of the polycurve.
| unsigned_int CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::Curve_2< SubcurveType_2, PointType_2 >::points | ( | ) | const |
| void CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::Curve_2< SubcurveType_2, PointType_2 >::push_back | ( | const Point_2 & | p | ) |
pi. | void CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::Curve_2< SubcurveType_2, PointType_2 >::push_back | ( | const Subcurve_2 & | subcurve | ) |
Append a subcurve to the polycurve at the back.
Warning: This function does not perform the precondition test that the Push_back_2 functor does. Thus, it is recommended to use the latter.
| subcurve | The new subcurve to be appended to the polycurve. |
subcurve must coincide with the target point of the last subcurve in the polycurve. | void CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::Curve_2< SubcurveType_2, PointType_2 >::push_front | ( | const Subcurve_2 & | subcurve | ) |
Append a subcurve to the polycurve at the front.
Warning: This is a risky function! Don't use it! Prefer the corresponding functor which is provided in the traits class.
| subcurve | The new subcurve to be appended to the polycurve. |
subcurve must coincide with the source point of the first subcurve in the polycurve. | const_iterator CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::Curve_2< SubcurveType_2, PointType_2 >::rbegin | ( | ) | const |
| const_iterator CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::Curve_2< SubcurveType_2, PointType_2 >::rend | ( | ) | const |
| size_type CGAL::Arr_polycurve_traits_2< SubcurveTraits_2 >::Curve_2< SubcurveType_2, PointType_2 >::size | ( | ) | const |
pi.points() - 1). Was replaced by number_of_subcurves()