\( \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 and 3D Linear Geometry Kernel

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
Kernel::CompareYAtX_2 Concept Reference
Kernel Function Object Concepts

## Definition

Refines:
  `AdaptableFunctor` (with three arguments)

See Also
  `CGAL::compare_y_at_x()`

## Operations
A model of this concept must provide:
Comparison_result | operator() (const Kernel::Point_2 &p, const Kernel::Line_2 &h)
| compares the \( y\)-coordinates of `p` and the vertical projection of `p` on `h`. More...
Comparison_result | operator() (const Kernel::Point_2 &p, const Kernel::Line_2 &h1, const Kernel::Line_2 &h2)
| This function compares the `y`-coordinates of the vertical projection of `p` on `h1` and on `h2`. More...
Comparison_result | operator() (const Kernel::Line_2 &l1, const Kernel::Line_2 &l2, const Kernel::Line_2 &h)
| Let `p` be the intersection of lines `l1` and `l2`. More...
Comparison_result | operator() (const Kernel::Line_2 &l1, const Kernel::Line_2 &l2, const Kernel::Line_2 &h1, const Kernel::Line_2 &h2)
| Let `p` be the intersection of lines `l1` and `l2`. More...
Comparison_result | operator() (const Kernel::Point_2 &p, const Kernel::Segment_2 &s)
| compares the `y`-coordinates of `p` and the vertical projection of `p` on `s`. More...
Comparison_result | operator() (const Kernel::Point_2 &p, const Kernel::Segment_2 &s1, const Kernel::Segment_2 &s2)
| This function compares the \( y\)-coordinates of the vertical projection of `p` on `s1` and on `s2`. More...

## Member Function Documentation

Comparison_result Kernel::CompareYAtX_2::operator() | ( | const Kernel::Point_2 & | p,
|  | const Kernel::Line_2 & | h
| ) |  |

compares the \( y\)-coordinates of `p` and the vertical projection of `p` on `h`.

See Figure fig-compare2 (e).

Precondition
  `h` is not vertical.

Comparison_result Kernel::CompareYAtX_2::operator() | ( | const Kernel::Point_2 & | p,
|  | const Kernel::Line_2 & | h1,
|  | const Kernel::Line_2 & | h2
| ) |  |

This function compares the `y`-coordinates of the vertical projection of `p` on `h1` and on `h2`.

See Figure fig-compare2 (e).

Precondition
  `h1` and `h2` are not vertical.

Comparison_result Kernel::CompareYAtX_2::operator() | ( | const Kernel::Line_2 & | l1,
|  | const Kernel::Line_2 & | l2,
|  | const Kernel::Line_2 & | h
| ) |  |

Let `p` be the intersection of lines `l1` and `l2`.

This function compares the \( y\)-coordinates of `p` and the vertical projection of `p` on `h`. See (Figure fig-compare2 (f)).

Precondition
  `l1`, `l2` intersect and `h` is not vertical.

Comparison_result Kernel::CompareYAtX_2::operator() | ( | const Kernel::Line_2 & | l1,
|  | const Kernel::Line_2 & | l2,
|  | const Kernel::Line_2 & | h1,
|  | const Kernel::Line_2 & | h2
| ) |  |

Let `p` be the intersection of lines `l1` and `l2`.

This function compares the `y`-coordinates of the vertical projection of `p` on `h1` and on `h2`. See (Figure fig-compare2 (g)).

Precondition
  `l1` and `l2` intersect; `h1` and `h2` are not vertical.

Comparison_result Kernel::CompareYAtX_2::operator() | ( | const Kernel::Point_2 & | p,
|  | const Kernel::Segment_2 & | s
| ) |  |

compares the `y`-coordinates of `p` and the vertical projection of `p` on `s`.

If `s` is vertical, then return CGAL::EQUAL when `p` lies on `s`, CGAL::SMALLER when `p` lies under s, and CGAL::LARGER otherwise.

Precondition
  `p` is within the x range of `s`.

Comparison_result Kernel::CompareYAtX_2::operator() | ( | const Kernel::Point_2 & | p,
|  | const Kernel::Segment_2 & | s1,
|  | const Kernel::Segment_2 & | s2
| ) |  |

This function compares the \( y\)-coordinates of the vertical projection of `p` on `s1` and on `s2`.

If `s1` or `s2` is vertical, then return CGAL::EQUAL if they intersect, otherwise return CGAL::SMALLER if `s1` lies below `s2`, and return CGAL::LARGER otherwise.

Precondition
  `p` is within the x range of `s1` and `s2`.