CGAL 4.12.1 - 2D Arrangements
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<class OutputIterator >
OutputIterator operator() (Curve_2 cv, Point_2 end_min, Point_2 end_max, OutputIterator out)
Writes a sequence of X_monotone_curve_2 objects (terminal segments) into out. More...

template<class OutputIterator >
OutputIterator operator() (Curve_2 cv, Point_2 p, Site_of_point site_of_p, OutputIterator out)
Writes a sequence of X_monotone_curve_2 objects into out. More...

template<class OutputIterator >
OutputIterator operator() (Point_2 p, Point_2 q, OutputIterator out)
Writes a sequence of X_monotone_curve_2 objects into out. More...

## ◆ operator()() [1/3]

template<typename Coefficient >
template<class 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 out )

Writes a sequence of X_monotone_curve_2 objects (terminal segments) into out.

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

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<class 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 )

Writes a sequence of X_monotone_curve_2 objects into out.

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<class OutputIterator >
 OutputIterator CGAL::Arr_algebraic_segment_traits_2< Coefficient >::Construct_x_monotone_segment_2::operator() ( Point_2 p, Point_2 q, OutputIterator out )

Writes a sequence of X_monotone_curve_2 objects into out.

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.)