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

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

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

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.

## ◆ 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 $$\geq$$ 0.

## ◆ 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 $$\geq$$ 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 ( 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.

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