An object of the class Circle is a circle in twodimensional 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}.
 
Point type.

The following type is only needed, if the member function is_valid of Min_circle_2 is used.
 
Distance type. The function squared_radius (see below)
returns an object of this type.


 sets circle to the empty circle. 

 sets circle to the circle containing exactly $${p$$}. 

 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. 

 
sets circle to the circle through p,q,r. The algorithm guarantees that set is never called with three collinear points. 

 
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.

 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. 

 
returns true, iff p lies properly inside circle.  

 
returns true, iff p lies on the boundary of circle.  

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

 returns true, iff circle is degenerate, i.e. if circle is empty or equal to a single point. 
The following operations are only needed, if the member function is_valid of Min_circle_2 is used.

 returns true, iff circle and circle2 are equal. 

 returns the center of circle. 

 returns the squared radius of circle. 
The following I/O operators are only needed, if the corresponding I/O operators of Min_circle_2 are used.

 writes circle to output stream os. 

 
writes circle to window stream ws. 