\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.3 - 2D and 3D Linear Geometry Kernel

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Circle_2< Kernel > Class Template Reference
2D Kernel Objects

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

See Also
  `Kernel::Circle_2`

## 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`.
const Kernel::FT & | squared_radius () const
| 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< Kernel > | opposite () const
| returns the circle with the same center and squared radius as `c` but with opposite orientation.
Circle_2< Kernel > | orthogonal_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`.

## Constructor & Destructor Documentation

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.

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.

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

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

## Member Function Documentation

template<typename Kernel >

Circle_2<Kernel> 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.