\( \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.8 - 2D and 3D Linear Geometry Kernel

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

`#include <CGAL/Circle_3.h>`

## Definition

An object `c` of type `Circle_3` is a circle in the three-dimensional Euclidean space \( \E^3\).

Note that the circle can be degenerate, i.e. the squared radius may be zero.

See Also
  `Kernel::Circle_3`

## Related Functions
(Note that these are not member functions.)
bool | operator== (const Circle_3< Kernel > &c1, Circle_3< Kernel > const &c2)
| returns `true`, iff `c1` and `c2` are equal, i.e. if they have the same center, the same squared radius and the same supporting plane.
bool | operator!= (const Circle_3< Kernel > &c1, Circle_3< Kernel > const &c2)

## Creation
| Circle_3 (const Point_3< Kernel > &center, const Kernel::FT &sq_r, const Plane_3< Kernel > &plane)
| introduces a variable `c` of type `Circle_3`. More...
| Circle_3 (const Point_3< Kernel > &center, const Kernel::FT &sq_r, const Vector_3< Kernel > &n)
| introduces a variable `c` of type `Circle_3`. More...
| Circle_3 (const Point_3< Kernel > &p, const Point_3< Kernel > &q, const Point_3< Kernel > &r)
| introduces a variable `c` of type `Circle_3`. More...
| Circle_3 (const Sphere_3< Kernel > &sphere1, const Sphere_3< Kernel > &sphere2)
| introduces a variable `c` of type `Circle_3`. More...
| Circle_3 (constSphere_3< Kernel > &sphere, const Plane_3< Kernel > &plane)
| introduces a variable `c` of type `Circle_3`. More...
| Circle_3 (const Plane_3< Kernel > &plane, const Sphere_3< Kernel > &sphere)
| introduces a variable `c` of type `Circle_3`. More...

## Access Functions
const Point_3< Kernel > & | center () const
| returns the center of `c`.
const Kernel::FT & | squared_radius () const
| returns the squared radius of `c`.
const Plane_3< Kernel > & | supporting_plane () const
| returns the supporting plane of `c`.
const Sphere_3< Kernel > & | diametral_sphere () const
| returns the diametral sphere of `c`.
Kernel::FT const & | area_divided_by_pi () const
| returns the area of `c`, divided by \( \pi\).
double | approximate_area () const
| returns an approximation of the area of `c`.
Kernel::FT | squared_length_divided_by_pi_square () const
| returns the squared length of `c`, divided by \( \pi^2\).
double | approximate_squared_length () const
| returns an approximation of the squared length (i.e. perimeter) of `c`.

## Predicates
bool | has_on (const Point_3< Kernel > &p) const

## Operations
Bbox_3 | bbox () const
| returns a bounding box containing `c`.

## Constructor & Destructor Documentation

template<typename Kernel >

CGAL::Circle_3< Kernel >::Circle_3 | ( | const Point_3< Kernel > & | center,
|  | const Kernel::FT & | sq_r,
|  | const Plane_3< Kernel > & | plane
| ) |  |

introduces a variable `c` of type `Circle_3`.

It is initialized to the circle of center `center` and squared radius `sq_r` in plane `plane`.

Precondition
  `center` lies in `plane` and `sq_r` \( \geq\) 0.

template<typename Kernel >

CGAL::Circle_3< Kernel >::Circle_3 | ( | const Point_3< Kernel > & | center,
|  | const Kernel::FT & | sq_r,
|  | const Vector_3< Kernel > & | n
| ) |  |

introduces a variable `c` of type `Circle_3`.

It is initialized to the circle of center `center` and squared radius `sq_r` in a plane normal to the vector `n`.

Precondition
  `sq_r` \( \geq\) 0.

template<typename Kernel >

CGAL::Circle_3< Kernel >::Circle_3 | ( | const Point_3< Kernel > & | p,
|  | const Point_3< Kernel > & | q,
|  | const Point_3< Kernel > & | r
| ) |  |

introduces a variable `c` of type `Circle_3`.

It is initialized to the circle passing through the three points.

Precondition
  The three points are not collinear.

template<typename Kernel >

CGAL::Circle_3< Kernel >::Circle_3 | ( | const Sphere_3< Kernel > & | sphere1,
|  | const Sphere_3< Kernel > & | sphere2
| ) |  |

introduces a variable `c` of type `Circle_3`.

It is initialized to the circle along which the two spheres intersect.

Precondition
  The two spheres intersect along a circle.

template<typename Kernel >

CGAL::Circle_3< Kernel >::Circle_3 | ( | constSphere_3< Kernel > & | sphere,
|  | const Plane_3< Kernel > & | plane
| ) |  |

introduces a variable `c` of type `Circle_3`.

It is initialized to the circle along which the sphere and the plane intersect.

Precondition
  The sphere and the plane intersect along a circle.

template<typename Kernel >

CGAL::Circle_3< Kernel >::Circle_3 | ( | const Plane_3< Kernel > & | plane,
|  | const Sphere_3< Kernel > & | sphere
| ) |  |

introduces a variable `c` of type `Circle_3`.

It is initialized to the circle along which the sphere and the plane intersect.

Precondition
  The sphere and the plane intersect along a circle.