CGAL 6.1 - 2D and 3D Linear Geometry Kernel
Loading...
Searching...
No Matches
CGAL::Sphere_3< Kernel > Class Template Reference

#include <CGAL/Sphere_3.h>

Definition

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

An object of type Sphere_3 is a sphere in the three-dimensional Euclidean space \( \E^3\).

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

Is model of
Kernel::Sphere_3
Hashable if Kernel is a cartesian kernel and if Kernel::FT is Hashable

Creation

 Sphere_3 (const Point_3< Kernel > &center, const Kernel::FT &squared_radius, const Orientation &orientation=COUNTERCLOCKWISE)
 introduces a variable c of type Sphere_3.
 
 Sphere_3 (const Point_3< Kernel > &p, const Point_3< Kernel > &q, const Point_3< Kernel > &r, const Point_3< Kernel > &s)
 introduces a variable c of type Sphere_3.
 
 Sphere_3 (const Point_3< Kernel > &p, const Point_3< Kernel > &q, const Point_3< Kernel > &r, const Orientation &o=COUNTERCLOCKWISE)
 introduces a variable c of type Sphere_3.
 
 Sphere_3 (const Point_3< Kernel > &p, const Point_3< Kernel > &q, const Orientation &o=COUNTERCLOCKWISE)
 introduces a variable c of type Sphere_3.
 
 Sphere_3 (const Point_3< Kernel > &center, const Orientation &orientation=COUNTERCLOCKWISE)
 introduces a variable c of type Sphere_3.
 
 Sphere_3 (const Circle_3< Kernel > &c)
 introduces a variable c of type Sphere_3.
 

Access Functions

const Point_3< Kernel > & center () const
 returns the center of c.
 
Kernel::FT const & squared_radius () const
 returns the squared radius of c.
 
Orientation const & orientation () const
 returns the orientation of c.
 
bool operator== (const Sphere_3< Kernel > &sphere2) const
 returns true, iff c and sphere2 are equal, i.e. if they have the same center, same squared radius and same orientation.
 
bool operator!= (const Sphere_3< Kernel > &sphere2) const
 returns true, iff c and sphere2 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_3< 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_3< 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_3< Kernel > &p) const
 
bool has_on_negative_side (const Point_3< Kernel > &p) const
 
bool has_on_boundary (const Point_3< Kernel > &p) const
 
bool has_on_bounded_side (const Point_3< Kernel > &p) const
 
bool has_on_unbounded_side (const Point_3< Kernel > &p) const
 
bool has_on (const Point_3< Kernel > &p) const
 
bool has_on (const Circle_3< Kernel > &p) const
 

Miscellaneous

Sphere_3< Kernelopposite () const
 returns the sphere with the same center and squared radius as c but with opposite orientation.
 
Sphere_3< Kernelorthogonal_transform (Aff_transformation_3< Kernel > const &at) const
 returns the sphere obtained by applying at on c.
 
Bbox_3 bbox () const
 returns a bounding box containing c.
 

Constructor & Destructor Documentation

◆ Sphere_3() [1/6]

template<typename Kernel >
CGAL::Sphere_3< Kernel >::Sphere_3 ( const Point_3< Kernel > &  center,
const Kernel::FT &  squared_radius,
const Orientation orientation = COUNTERCLOCKWISE 
)

introduces a variable c of type Sphere_3.

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

Precondition
orientation != COPLANAR and squared_radius >= 0.
Exactness
This construction is trivial and therefore always exact in Exact_predicates_inexact_constructions_kernel.

◆ Sphere_3() [2/6]

template<typename Kernel >
CGAL::Sphere_3< Kernel >::Sphere_3 ( const Point_3< Kernel > &  p,
const Point_3< Kernel > &  q,
const Point_3< Kernel > &  r,
const Point_3< Kernel > &  s 
)

introduces a variable c of type Sphere_3.

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

Precondition
p, q, r, and s are not coplanar.

◆ Sphere_3() [3/6]

template<typename Kernel >
CGAL::Sphere_3< Kernel >::Sphere_3 ( const Point_3< Kernel > &  p,
const Point_3< Kernel > &  q,
const Point_3< Kernel > &  r,
const Orientation o = COUNTERCLOCKWISE 
)

introduces a variable c of type Sphere_3.

It is initialized to the smallest sphere which passes through the points p, q, and r. The orientation of the sphere is o.

Precondition
o != COPLANAR.

◆ Sphere_3() [4/6]

template<typename Kernel >
CGAL::Sphere_3< Kernel >::Sphere_3 ( const Point_3< Kernel > &  p,
const Point_3< Kernel > &  q,
const Orientation o = COUNTERCLOCKWISE 
)

introduces a variable c of type Sphere_3.

It is initialized to the smallest sphere which passes through the points p and q. The orientation of the sphere is o.

Precondition
o != COPLANAR.

◆ Sphere_3() [5/6]

template<typename Kernel >
CGAL::Sphere_3< Kernel >::Sphere_3 ( const Point_3< Kernel > &  center,
const Orientation orientation = COUNTERCLOCKWISE 
)

introduces a variable c of type Sphere_3.

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

Precondition
orientation != COPLANAR.
Postcondition
c.is_degenerate() = true.
Exactness
This construction is trivial and therefore always exact in Exact_predicates_inexact_constructions_kernel.

◆ Sphere_3() [6/6]

template<typename Kernel >
CGAL::Sphere_3< Kernel >::Sphere_3 ( const Circle_3< Kernel > &  c)

introduces a variable c of type Sphere_3.

It is initialized to the diametral sphere of the circle.

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

Member Function Documentation

◆ center()

template<typename Kernel >
const Point_3< Kernel > & CGAL::Sphere_3< Kernel >::center ( ) const

returns the center of c.

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

◆ opposite()

template<typename Kernel >
Sphere_3< Kernel > CGAL::Sphere_3< Kernel >::opposite ( ) const

returns the sphere with the same center and squared radius as c but with opposite orientation.

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

◆ orientation()

template<typename Kernel >
Orientation const & CGAL::Sphere_3< Kernel >::orientation ( ) const

returns the orientation of c.

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

◆ orthogonal_transform()

template<typename Kernel >
Sphere_3< Kernel > CGAL::Sphere_3< Kernel >::orthogonal_transform ( Aff_transformation_3< Kernel > const &  at) const

returns the sphere obtained by applying at on c.

Precondition
at is an orthogonal transformation.

◆ squared_radius()

template<typename Kernel >
Kernel::FT const & CGAL::Sphere_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.