CGAL 5.0.2 - 2D and 3D Linear Geometry Kernel
CGAL::Circle_2< Kernel > Class Template Reference

#include <CGAL/Circle_2.h>

## Definition

An object c of type Circle_2 is a circle in the two-dimensional Euclidean plane $$\E^2$$.

The circle is oriented, i.e. its boundary has clockwise or counterclockwise orientation. The boundary splits $$\E^2$$ into a positive and a negative side, where the positive side is to the left of the boundary. The boundary also splits $$\E^2$$ into a bounded and an unbounded side. Note that the circle can be degenerated, i.e. the squared radius may be zero.

Is Model Of:

Kernel::Circle_2

Hashable if Kernel is a cartesian kernel and if Kernel::FT is Hashable

## Creation

Circle_2 (const Point_2< Kernel > &center, const Kernel::FT &squared_radius, const Orientation &ori=COUNTERCLOCKWISE)
introduces a variable c of type Circle_2. More...

Circle_2 (const Point_2< Kernel > &p, const Point_2< Kernel > &q, const Point_2< Kernel > &r)
introduces a variable c of type Circle_2. More...

Circle_2 (const Point_2< Kernel > &p, const Point_2< Kernel > &q, const Orientation &ori=COUNTERCLOCKWISE)
introduces a variable c of type Circle_2. More...

Circle_2 (const Point_2< Kernel > &center, const Orientation &ori=COUNTERCLOCKWISE)
introduces a variable c of type Circle_2. More...

## Access Functions

const Point_2< Kernel > & center () const
returns the center of c.

returns the squared radius of c.

Orientation orientation () const
returns the orientation of c.

bool operator== (const Circle_2< Kernel > &circle2) const
returns true, iff c and circle2 are equal, i.e. if they have the same center, same squared radius and same orientation.

bool operator!= (const Circle_2< Kernel > &circle2) const
returns true, iff c and circle2 are not equal.

## Predicates

bool is_degenerate () const
returns true, iff c is degenerate, i.e. if c has squared radius zero.

Oriented_side oriented_side (const Point_2< Kernel > &p) const
returns either the constant ON_ORIENTED_BOUNDARY, ON_POSITIVE_SIDE, or ON_NEGATIVE_SIDE, iff p lies on the boundary, properly on the positive side, or properly on the negative side of c, resp.

Bounded_side bounded_side (const Point_2< Kernel > &p) const
returns ON_BOUNDED_SIDE, ON_BOUNDARY, or ON_UNBOUNDED_SIDE iff p lies properly inside, on the boundary, or properly outside of c, resp.

bool has_on_positive_side (const Point_2< Kernel > &p) const

bool has_on_negative_side (const Point_2< Kernel > &p) const

bool has_on_boundary (const Point_2< Kernel > &p) const

bool has_on_bounded_side (const Point_2< Kernel > &p) const

bool has_on_unbounded_side (const Point_2< Kernel > &p) const

## Miscellaneous

Circle_2< Kernelopposite () const
returns the circle with the same center and squared radius as c but with opposite orientation.

Circle_2< Kernelorthogonal_transform (Aff_transformation_2< Kernel > const &at) const
returns the circle obtained by applying $$at$$ on c. More...

Bbox_2 bbox () const
returns a bounding box containing c.

## ◆ Circle_2() [1/4]

template<typename Kernel >
 CGAL::Circle_2< Kernel >::Circle_2 ( const Point_2< Kernel > & center, const Kernel::FT & squared_radius, const Orientation & ori = COUNTERCLOCKWISE )

introduces a variable c of type Circle_2.

It is initialized to the circle with center center, squared radius squared_radius and orientation ori.

Precondition
ori $$\neq$$ COLLINEAR, and further, squared_radius $$\geq$$ 0.

## ◆ Circle_2() [2/4]

template<typename Kernel >
 CGAL::Circle_2< Kernel >::Circle_2 ( const Point_2< Kernel > & p, const Point_2< Kernel > & q, const Point_2< Kernel > & r )

introduces a variable c of type Circle_2.

It is initialized to the unique circle which passes through the points p, q and r. The orientation of the circle is the orientation of the point triple p, q, r.

Precondition
p, q, and r are not collinear.

## ◆ Circle_2() [3/4]

template<typename Kernel >
 CGAL::Circle_2< Kernel >::Circle_2 ( const Point_2< Kernel > & p, const Point_2< Kernel > & q, const Orientation & ori = COUNTERCLOCKWISE )

introduces a variable c of type Circle_2.

It is initialized to the circle with diameter $$\overline{pq}$$ and orientation ori.

Precondition
ori $$\neq$$ COLLINEAR.

## ◆ Circle_2() [4/4]

template<typename Kernel >
 CGAL::Circle_2< Kernel >::Circle_2 ( const Point_2< Kernel > & center, const Orientation & ori = COUNTERCLOCKWISE )

introduces a variable c of type Circle_2.

It is initialized to the circle with center center, squared radius zero and orientation ori.

Precondition
ori $$\neq$$ COLLINEAR.
Postcondition
c.is_degenerate() = true.

## ◆ orthogonal_transform()

template<typename Kernel >
 Circle_2 CGAL::Circle_2< Kernel >::orthogonal_transform ( Aff_transformation_2< Kernel > const & at ) const

returns the circle obtained by applying $$at$$ on c.

Precondition
at is an orthogonal transformation.