CGAL 5.5.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...
 

Member Function Documentation

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