Class

CGAL::Sphere_3<Kernel>

Definition

An object of type Sphere_3<Kernel> 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.

Creation

Sphere_3<Kernel> c ( Point_3<Kernel> const& center,
Kernel::FT const& squared_radius,
Orientation const& orientation = COUNTERCLOCKWISE);
introduces a variable c of type Sphere_3<Kernel>. It is initialized to the sphere with center center, squared radius squared_radius and orientation orientation.
Precondition: orientation COPLANAR, and furthermore, squared_radius 0.


Sphere_3<Kernel> c ( Point_3<Kernel> const& p, Point_3<Kernel> const& q, Point_3<Kernel> const& r, Point_3<Kernel> const& s);
introduces a variable c of type Sphere_3<Kernel>. 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<Kernel> c ( Point_3<Kernel> const& p, Point_3<Kernel> const& q, Point_3<Kernel> const& r, Orientation o = COUNTERCLOCKWISE);
introduces a variable c of type Sphere_3<Kernel>. 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 is not COPLANAR.


Sphere_3<Kernel> c ( Point_3<Kernel> const& p, Point_3<Kernel> const& q, Orientation o = COUNTERCLOCKWISE);
introduces a variable c of type Sphere_3<Kernel>. It is initialized to the smallest sphere which passes through the points p and q. The orientation of the sphere is o.
Precondition: o is not COPLANAR.


Sphere_3<Kernel> c ( Point_3<Kernel> const& center, Orientation const& orientation = COUNTERCLOCKWISE);
introduces a variable c of type Sphere_3<Kernel>. It is initialized to the sphere with center center, squared radius zero and orientation orientation.
Precondition: orientation COPLANAR.
Postcondition: c.is_degenerate() = true.


Sphere_3<Kernel> c ( Circle_3<Kernel> const& c);
introduces a variable c of type Sphere_3<Kernel>. It is initialized to the diametral sphere of the circle.

Access Functions

Point_3<Kernel> const& c.center () const returns the center of c.
Kernel::FT const& c.squared_radius () const returns the squared radius of c.
Orientation const& c.orientation () const returns the orientation of c.

bool c.operator == ( const& 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 c.operator != ( const& sphere2) const
returns true, iff c and sphere2 are not equal.

Predicates

bool c.is_degenerate () const returns true, iff c is degenerate, i.e. if c has squared radius zero.

Oriented_side c.oriented_side ( Point_3<Kernel> const& 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 c.bounded_side ( Point_3<Kernel> const& 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 c.has_on_positive_side ( Point_3<Kernel> p) const
bool c.has_on_negative_side ( Point_3<Kernel> p) const
bool c.has_on_boundary ( Point_3<Kernel> p) const
bool c.has_on_bounded_side ( Point_3<Kernel> p) const
bool c.has_on_unbounded_side ( Point_3<Kernel> p) const

bool c.has_on ( Point_3<Kernel> p) const
bool c.has_on ( Circle_3<Kernel> p) const

Miscellaneous

Sphere_3<Kernel> c.opposite () const returns the sphere with the same center and squared radius as c but with opposite orientation.

Sphere_3<Kernel> c.orthogonal_transform ( Aff_transformation_3<Kernel> const& at) const
returns the sphere obtained by applying at on c.
Precondition: at is an orthogonal transformation.

Bbox_3 c.bbox () const returns a bounding box containing c.

See Also

Kernel::Sphere_3