CGAL 6.0 - 2D Arrangements
Loading...
Searching...
No Matches
CGAL::Arr_algebraic_segment_traits_2< Coefficient >::Construct_x_monotone_segment_2 Class Reference

#include <CGAL/Arr_algebraic_segment_traits_2.h>

Object Creation Functors

template<typename OutputIterator >
OutputIterator operator() (Curve_2 cv, Point_2 end_min, Point_2 end_max, OutputIterator oi)
 inserts a sequence of X_monotone_curve_2 objects (terminal segments) into an output container given through an output iterator.
 
template<typename OutputIterator >
OutputIterator operator() (Curve_2 cv, Point_2 p, Site_of_point site_of_p, OutputIterator out)
 inserts a sequence of X_monotone_curve_2 objects into an output container given through an output iterator.
 
template<typename OutputIterator >
OutputIterator operator() (Point_2 p, Point_2 q, OutputIterator out)
 inserts a sequence of X_monotone_curve_2 objects into an output container given through an output iterator.
 

Member Function Documentation

◆ operator()() [1/3]

template<typename Coefficient >
template<typename OutputIterator >
OutputIterator CGAL::Arr_algebraic_segment_traits_2< Coefficient >::Construct_x_monotone_segment_2::operator() ( Curve_2  cv,
Point_2  end_min,
Point_2  end_max,
OutputIterator  oi 
)

inserts a sequence of X_monotone_curve_2 objects (terminal segments) into an output container given through an output iterator.

These terminal segments compose an \(x\)-monotone (or vertical) segment of a given curve that starts in end_min, and ends in end_max.

Parameters
cvThe input curve.
end_minThe starting point.
end_maxThe ending point.
oiThe output iterator that points at the output container.
Returns
The past-the-end iterator of the output container.
Precondition
end_min must have a unique \(x\)-monotone segment to its right, or end_max must have a unique \(x\)-monotone segment to its left. Furthermore, end_min and end_max must be connected by an \(x\)-monotone segment of cv)

◆ operator()() [2/3]

template<typename Coefficient >
template<typename OutputIterator >
OutputIterator CGAL::Arr_algebraic_segment_traits_2< Coefficient >::Construct_x_monotone_segment_2::operator() ( Curve_2  cv,
Point_2  p,
Site_of_point  site_of_p,
OutputIterator  out 
)

inserts a sequence of X_monotone_curve_2 objects into an output container given through an output iterator.

These segments form an \(x\)-monotone (or vertical) segment of the curve cv.

If site_of_p==POINT_IN_INTERIOR, the maximal segment is returned that contains p in its interior.

returned that contains p as its left endpoint.

returned that contains p as its left endpoint.

Precondition
(If site_of_p==POINT_IN_INTERIOR, p must be an interior point of an \(x\)-monotone or a vertical segment. must either have a unique \(x\)-monotone segment to the right, or a vertical segment from p upwards. must either have a unique \(x\)-monotone segment to the left, or a vertical segment from p downwards.)

◆ operator()() [3/3]

template<typename Coefficient >
template<typename OutputIterator >
OutputIterator CGAL::Arr_algebraic_segment_traits_2< Coefficient >::Construct_x_monotone_segment_2::operator() ( Point_2  p,
Point_2  q,
OutputIterator  out 
)

inserts a sequence of X_monotone_curve_2 objects into an output container given through an output iterator.

These segments form a straight-line segment connecting the points p and q. If p and q share the same \(x\)-coordinate, the constructed vertical segment consists of only one X_monotone_curve_2 object and can be computed efficiently. In the non-vertical case, the construction is only possible if p and q have both rational x- and y-coordinates.

Precondition
(p must not be equal to q.)