CGAL 6.1.1 - Bounding Volumes

Loading...
Searching...
No Matches
List of all members
Ellipse Concept Reference
Reference Manual » 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`.
void | set (const Point &p, const Point &q, const Point &r)
| sets `ellipse` to the smallest ellipse through `p`,`q`,`r`.
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`.
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`.

## 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.
bool | has_on_bounded_side (const Point &p) const
| returns `true`, iff `p` lies properly inside `ellipse`.
bool | has_on_boundary (const Point &p) const
| returns `true`, iff `p` lies on the boundary of `ellipse`.
bool | is_empty () const
| returns `true`, iff `ellipse` is empty (this implies degeneracy).
bool | is_degenerate () const
| returns `true`, iff `ellipse` is degenerate, i.e. if `ellipse` is empty or equal to a single point.

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

## Member Function Documentation

## ◆ bounded_side()

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.

## ◆ has_on_boundary()

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.

## ◆ has_on_bounded_side()

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.

## ◆ is_degenerate()

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.

## ◆ is_empty()

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.

## ◆ operator<<()

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.

## ◆ set() [1/4]

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.

## ◆ set() [2/4]

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.

## ◆ set() [3/4]

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.

## ◆ set() [4/4]

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.