\( \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 - Bounding Volumes

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
Ellipse Concept Reference
Concepts

## Definition

An object `ellipse` of the class `Ellipse` is an ellipse in two-dimensional Euclidean plane \( \E^2\). Its boundary splits the plane into a bounded and an unbounded side. By definition, an empty `ellipse` has no boundary and no bounded side, i.e. its unbounded side equals the whole plane \( \E^2\).

## Types
typedef unspecified_type | Point
| Point type.

## Creation
void | set ()
| sets `ellipse` to the empty ellipse.
void | set (const Point &p)
| sets `ellipse` to the ellipse containing exactly `p`.
void | set (const Point &p, const Point &q)
| sets `ellipse` to the ellipse containing exactly the segment connecting `p` and `q`. More...
void | set (const Point &p, const Point &q, const Point &r)
| sets `ellipse` to the smallest ellipse through `p`,`q`,`r`. More...
void | set (const Point &p, const Point &q, const Point &r, const Point &s)
| sets `ellipse` to the smallest ellipse through `p`,`q`,`r`,`s`. More...
void | set (const Point &p, const Point &q, const Point &r, const Point &s, const Point &t)
| sets `ellipse` to the unique conic through `p`,`q`,`r`,`s`,`t`. More...

## Predicates
bool | has_on_unbounded_side (const Point &p) const
| returns `true`, iff `p` lies properly outside of `ellipse`.
CGAL::Bounded_side | bounded_side (const Point &p) const
| returns `CGAL::ON_BOUNDED_SIDE`, `CGAL::ON_BOUNDARY`, or `CGAL::ON_UNBOUNDED_SIDE` iff `p` lies properly inside, on the boundary, or properly outside of `ellipse`, resp. More...
bool | has_on_bounded_side (const Point &p) const
| returns `true`, iff `p` lies properly inside `ellipse`. More...
bool | has_on_boundary (const Point &p) const
| returns `true`, iff `p` lies on the boundary of `ellipse`. More...
bool | is_empty () const
| returns `true`, iff `ellipse` is empty (this implies degeneracy). More...
bool | is_degenerate () const
| returns `true`, iff `ellipse` is degenerate, i.e. if `ellipse` is empty or equal to a single point. More...

## I/O
The following I/O operator is only needed, if the corresponding I/O operator of `CGAL::Min_ellipse_2` is used.
ostream & | operator<< (ostream &os, const Ellipse &ellipse)
| writes `ellipse` to output stream `os`. More...

## Member Function Documentation

CGAL::Bounded_side Ellipse::bounded_side | ( | const Point & | p) |  | const

returns `CGAL::ON_BOUNDED_SIDE`, `CGAL::ON_BOUNDARY`, or `CGAL::ON_UNBOUNDED_SIDE` iff `p` lies properly inside, on the boundary, or properly outside of `ellipse`, resp.

Note
  Only needed, if the corresponding predicate of `CGAL::Min_ellipse_2` is used.

bool Ellipse::has_on_boundary | ( | const Point & | p) |  | const

returns `true`, iff `p` lies on the boundary of `ellipse`.

Note
  Only needed, if the corresponding predicate of `CGAL::Min_ellipse_2` is used.

bool Ellipse::has_on_bounded_side | ( | const Point & | p) |  | const

returns `true`, iff `p` lies properly inside `ellipse`.

Note
  Only needed, if the corresponding predicate of `CGAL::Min_ellipse_2` is used.

bool Ellipse::is_degenerate | ( | ) |  | const

returns `true`, iff `ellipse` is degenerate, i.e. if `ellipse` is empty or equal to a single point.

Note
  Only needed, if the corresponding predicate of `CGAL::Min_ellipse_2` is used.

bool Ellipse::is_empty | ( | ) |  | const

returns `true`, iff `ellipse` is empty (this implies degeneracy).

Note
  Only needed, if the corresponding predicate of `CGAL::Min_ellipse_2` is used.

ostream& Ellipse::operator<< | ( | ostream & | os,
|  | const Ellipse & | ellipse
| ) |  |

writes `ellipse` to output stream `os`.

Note
  Only needed, if the corresponding I/O operator of `CGAL::Min_ellipse_2` is used.

void Ellipse::set | ( | const Point & | p,
|  | const Point & | q
| ) |  |

sets `ellipse` to the ellipse containing exactly the segment connecting `p` and `q`.

The algorithm guarantees that `set` is never called with two equal points.

void Ellipse::set | ( | const Point & | p,
|  | const Point & | q,
|  | const Point & | r
| ) |  |

sets `ellipse` to the smallest ellipse through `p`,`q`,`r`.

The algorithm guarantees that `set` is never called with three collinear points.

void Ellipse::set | ( | const Point & | p,
|  | const Point & | q,
|  | const Point & | r,
|  | const Point & | s
| ) |  |

sets `ellipse` to the smallest ellipse through `p`,`q`,`r`,`s`.

The algorithm guarantees that this ellipse exists.

void Ellipse::set | ( | const Point & | p,
|  | const Point & | q,
|  | const Point & | r,
|  | const Point & | s,
|  | const Point & | t
| ) |  |

sets `ellipse` to the unique conic through `p`,`q`,`r`,`s`,`t`.

The algorithm guarantees that this conic is an ellipse.