CGAL 6.1 - 2D and 3D Linear Geometry Kernel

Loading...
Searching...
No Matches
List of all members | Related Functions
CGAL::Circle_3< Kernel > Class Template Reference
Reference Manual » 3D Kernel Objects

`#include <CGAL/Circle_3.h>`

## Definition

template<typename Kernel>
class CGAL::Circle_3< Kernel >

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.

Is model of
  `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`.
| 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`.
| 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`.
| Circle_3 (const Sphere_3< Kernel > &sphere1, const Sphere_3< Kernel > &sphere2)
| introduces a variable `c` of type `Circle_3`.
| Circle_3 (const Sphere_3< Kernel > &sphere, const Plane_3< Kernel > &plane)
| introduces a variable `c` of type `Circle_3`.
| Circle_3 (const Plane_3< Kernel > &plane, const Sphere_3< Kernel > &sphere)
| introduces a variable `c` of type `Circle_3`.

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

## ◆ Circle_3() [1/6]

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

Exactness
  This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.

## ◆ Circle_3() [2/6]

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

## ◆ Circle_3() [3/6]

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.

## ◆ Circle_3() [4/6]

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.

## ◆ Circle_3() [5/6]

template<typename Kernel >

CGAL::Circle_3< Kernel >::Circle_3 | ( | const Sphere_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.

## ◆ Circle_3() [6/6]

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.

## Member Function Documentation

## ◆ center()

template<typename Kernel >

const Point_3< Kernel > & CGAL::Circle_3< Kernel >::center | ( |  | ) | const

returns the center of `c`.

Exactness
  This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.

## ◆ diametral_sphere()

template<typename Kernel >

const Sphere_3< Kernel > & CGAL::Circle_3< Kernel >::diametral_sphere | ( |  | ) | const

returns the diametral sphere of `c`.

Exactness
  This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.

## ◆ squared_radius()

template<typename Kernel >

const Kernel::FT & CGAL::Circle_3< Kernel >::squared_radius | ( |  | ) | const

returns the squared radius of `c`.

Exactness
  This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.

## ◆ supporting_plane()

template<typename Kernel >

const Plane_3< Kernel > & CGAL::Circle_3< Kernel >::supporting_plane | ( |  | ) | const

returns the supporting plane of `c`.

Exactness
  This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.