### Definition

An object of the class Circle is a circle in two-dimensional Euclidean plane 2. Its boundary splits the plane into a bounded and an unbounded side. By definition, an empty Circle has no boundary and no bounded side, i.e. its unbounded side equals the whole plane 2. A Circle containing exactly one point p has no bounded side, its boundary is {p}, and its unbounded side equals 2-{p}.

### Types

 Circle::Point Point type.

The following type is only needed, if the member function is_valid of Min_circle_2 is used.

 Circle::Distance Distance type. The function squared_radius (see below) returns an object of this type.

### Creation

 void circle.set () sets circle to the empty circle. void circle.set ( Point p) sets circle to the circle containing exactly {p}. void circle.set ( Point p, Point q) sets circle to the circle with diameter equal to the segment connecting p and q. The algorithm guarantees that set is never called with two equal points. void circle.set ( Point p, Point q, Point r) sets circle to the circle through p,q,r. The algorithm guarantees that set is never called with three collinear points.

### Predicates

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

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

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