Ellipse Type (Ellipse)

Definition

An object of the class Ellipse is an ellipse in two-dimensional Euclidean plane 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 2.

Types

Ellipse::Point
Point type.

Creation

void ellipse.set () sets ellipse to the empty ellipse.

void ellipse.set ( Point p) sets ellipse to the ellipse containing exactly {p}.

void ellipse.set ( Point p, 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 ( Point p, Point q, 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 ( Point p, Point q, Point r, Point s)
sets ellipse to the smallest ellipse through p,q,r,s. The algorithm guarantees that this ellipse exists.

void ellipse.set ( Point p, Point q, Point r, Point s, Point t)
sets ellipse to the unique conic through p,q,r,s,t. The algorithm guarantees that this conic is an ellipse.

Predicates

bool ellipse.has_on_unbounded_side ( Point p)
returns true, iff p lies properly outside of ellipse.

Each of the following predicates is only needed, if the corresponding predicate of Min_ellipse_2 is used.

CGAL::Bounded_side ellipse.bounded_side ( Point p) 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 ellipse.has_on_bounded_side ( Point p)
returns true, iff p lies properly inside ellipse.

bool ellipse.has_on_boundary ( Point p)
returns true, iff p lies on the boundary of ellipse.

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

bool ellipse.is_degenerate () returns true, iff ellipse is degenerate, i.e. if ellipse is empty or equal to a single point.

I/O

The following I/O operators are only needed, if the corresponding I/O operators of Min_ellipse_2 are used.

ostream& ostream& os << ellipse writes ellipse to output stream os.

Window_stream& Window_stream& ws << ellipse writes ellipse to window stream ws.