\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - 2D Arrangements

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
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

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

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

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