\( \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
ArrTraits::CompareXAtLimit_2 Concept Reference
Function Object Concepts

## Definition

Refines:
  AdaptableFunctor

Has Models:
  ArrangementOpenBoundaryTraits_2::Compare_x_at_limit_2

## Operations
A model of this concept must provide:
Comparison_result | operator() (const ArrTraits::Point_2 &p, const ArrTraits::X_monotone_curve_2 &xcv, Arr_curve_end ce)
| Given a point `p`, an \( x\)-monotone curve `xcv`, and an enumeration `ce` that specifies either the minimum or the maximum end of the curve where the curve has a vertical asymptote, compares the \( x\)-coordinate of `p` and the \( x\)-coordinate of the limit of the curve at its specificed end. More...
Comparison_result | operator() (const ArrTraits::X_monotone_curve_2 &xcv1, Arr_curve_end ce1, const ArrTraits::X_monotone_curve_2 &xcv2, Arr_curve_end ce2)
| Given two \( x\)-monotone curves `xcv1` and `xcv2` and two indices `ce1` and `ce2` that specify either the minimum or the maximum ends of `xcv1` and `xcv2`, respectively, where the curves have vertical asymptotes, compares the \( x\)-coordinates of the limits of the curves at their specificed ends. More...

## Member Function Documentation

Comparison_result ArrTraits::CompareXAtLimit_2::operator() | ( | const ArrTraits::Point_2 & | p,
|  | const ArrTraits::X_monotone_curve_2 & | xcv,
|  | Arr_curve_end | ce
| ) |  |

Given a point `p`, an \( x\)-monotone curve `xcv`, and an enumeration `ce` that specifies either the minimum or the maximum end of the curve where the curve has a vertical asymptote, compares the \( x\)-coordinate of `p` and the \( x\)-coordinate of the limit of the curve at its specificed end.

The variable `xcv` identifies the parametric curve \( C(t) = (X(t),Y(t))\) defined over an open or half-open interval with endpoints \( 0\) and \( 1\). The enumeration `ce` identifies an open end \( d \in\{0,1\}\) of \( C\). Formally, compares the \( x\)-coordinate of `p` and \( \lim_{t \rightarrow d} X(t)\). Returns `SMALLER`, `EQUAL`, or `LARGER` accordingly.

Precondition
  `parameter_space_in_y_2`(`xcv`, `ce`) \( \neq\) `ARR_INTERIOR`.
  If the parameter space is unbounded, \( C\) has a vertical asymptote at its \( d\)-end; that is, `parameter_space_in_x_2`(`xcv`, `ce`) = `ARR_INTERIOR`.

Comparison_result ArrTraits::CompareXAtLimit_2::operator() | ( | const ArrTraits::X_monotone_curve_2 & | xcv1,
|  | Arr_curve_end | ce1,
|  | const ArrTraits::X_monotone_curve_2 & | xcv2,
|  | Arr_curve_end | ce2
| ) |  |

Given two \( x\)-monotone curves `xcv1` and `xcv2` and two indices `ce1` and `ce2` that specify either the minimum or the maximum ends of `xcv1` and `xcv2`, respectively, where the curves have vertical asymptotes, compares the \( x\)-coordinates of the limits of the curves at their specificed ends.

The variables `xcv1` and `xcv2` identify the parametric curves \( C_1(t) = (X_1(t),Y_1(t))\) and \( C_2(t) = (X_2(t),Y_2(t))\), respectively, defined over open or half-open intervals with endpoints \( 0\) and \( 1\). The indices `ce1` and `ce2` identify open ends \( d_1 \in\{0,1\}\) and \( d_2 \in\{0,1\}\) of \( C_1\) and \( C_2\), respectively. Formally, compares \( \lim_{t \rightarrow d_1} X_1(t)\) and \( \lim_{t \rightarrow d_2} X_2(t)\). Returns `SMALLER`, `EQUAL`, or `LARGER` accordingly.

Precondition
  `parameter_space_in_y_2`(`xcv1`, `ce1`) \( \neq\) `ARR_INTERIOR`.
  `parameter_space_in_y_2`(`xcv2`, `ce2`) \( \neq\) `ARR_INTERIOR`.
  If the parameter space is unbounded, \( C_1\) has a vertical asymptote at its respective end; that is, `parameter_space_in_x_2`(`xcv1`, `ce1`) = `ARR_INTERIOR`.
  If the parameter space is unbounded, \( C_2\) has a vertical asymptote at its respective end; that is, `parameter_space_in_x_2`(`xcv2`, `ce2`) = `ARR_INTERIOR`.