\( \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.7 - 2D and 3D Linear Geometry Kernel
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Circle_2< Kernel > Class Template Reference

#include <CGAL/Circle_2.h>

Definition

An object c of type Circle_2 is a circle in the two-dimensional Euclidean plane \( \E^2\).

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

See also
Kernel::Circle_2

Creation

 Circle_2 (const Point_2< Kernel > &center, const Kernel::FT &squared_radius, const Orientation &ori=COUNTERCLOCKWISE)
 introduces a variable c of type Circle_2. More...
 
 Circle_2 (const Point_2< Kernel > &p, const Point_2< Kernel > &q, const Point_2< Kernel > &r)
 introduces a variable c of type Circle_2. More...
 
 Circle_2 (const Point_2< Kernel > &p, const Point_2< Kernel > &q, const Orientation &ori=COUNTERCLOCKWISE)
 introduces a variable c of type Circle_2. More...
 
 Circle_2 (const Point_2< Kernel > &center, const Orientation &ori=COUNTERCLOCKWISE)
 introduces a variable c of type Circle_2. More...
 

Access Functions

const Point_2< Kernel > & center () const
 returns the center of c. More...
 
const Kernel::FTsquared_radius () const
 returns the squared radius of c. More...
 
Orientation orientation () const
 returns the orientation of c. More...
 
bool operator== (const Circle_2< Kernel > &circle2) const
 returns true, iff c and circle2 are equal, i.e. if they have the same center, same squared radius and same orientation. More...
 
bool operator!= (const Circle_2< Kernel > &circle2) const
 returns true, iff c and circle2 are not equal. More...
 

Predicates

bool is_degenerate () const
 returns true, iff c is degenerate, i.e. if c has squared radius zero. More...
 
Oriented_side oriented_side (const Point_2< 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. More...
 
Bounded_side bounded_side (const Point_2< 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. More...
 
bool has_on_positive_side (const Point_2< Kernel > &p) const
 
bool has_on_negative_side (const Point_2< Kernel > &p) const
 
bool has_on_boundary (const Point_2< Kernel > &p) const
 
bool has_on_bounded_side (const Point_2< Kernel > &p) const
 
bool has_on_unbounded_side (const Point_2< Kernel > &p) const
 

Miscellaneous

Circle_2< Kernelopposite () const
 returns the circle with the same center and squared radius as c but with opposite orientation. More...
 
Circle_2< Kernelorthogonal_transform (Aff_transformation_2< Kernel > const &at) const
 returns the circle obtained by applying \( at\) on c. More...
 
Bbox_2 bbox () const
 returns a bounding box containing c. More...
 

Constructor & Destructor Documentation

template<typename Kernel >
CGAL::Circle_2< Kernel >::Circle_2 ( const Point_2< Kernel > &  center,
const Kernel::FT squared_radius,
const Orientation ori = COUNTERCLOCKWISE 
)

introduces a variable c of type Circle_2.

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

Precondition
ori \( \neq\) COLLINEAR, and further, squared_radius \( \geq\) 0.
template<typename Kernel >
CGAL::Circle_2< Kernel >::Circle_2 ( const Point_2< Kernel > &  p,
const Point_2< Kernel > &  q,
const Point_2< Kernel > &  r 
)

introduces a variable c of type Circle_2.

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

Precondition
p, q, and r are not collinear.
template<typename Kernel >
CGAL::Circle_2< Kernel >::Circle_2 ( const Point_2< Kernel > &  p,
const Point_2< Kernel > &  q,
const Orientation ori = COUNTERCLOCKWISE 
)

introduces a variable c of type Circle_2.

It is initialized to the circle with diameter \( \overline{pq}\) and orientation ori.

Precondition
ori \( \neq\) COLLINEAR.
template<typename Kernel >
CGAL::Circle_2< Kernel >::Circle_2 ( const Point_2< Kernel > &  center,
const Orientation ori = COUNTERCLOCKWISE 
)

introduces a variable c of type Circle_2.

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

Precondition
ori \( \neq\) COLLINEAR.
Postcondition
c.is_degenerate() = true.

Member Function Documentation

template<typename Kernel >
Bbox_2 CGAL::Circle_2< Kernel >::bbox ( ) const

returns a bounding box containing c.

template<typename Kernel >
Bounded_side CGAL::Circle_2< Kernel >::bounded_side ( const Point_2< 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.

template<typename Kernel >
const Point_2<Kernel>& CGAL::Circle_2< Kernel >::center ( ) const

returns the center of c.

template<typename Kernel >
bool CGAL::Circle_2< Kernel >::has_on_boundary ( const Point_2< Kernel > &  p) const
template<typename Kernel >
bool CGAL::Circle_2< Kernel >::has_on_bounded_side ( const Point_2< Kernel > &  p) const
template<typename Kernel >
bool CGAL::Circle_2< Kernel >::has_on_negative_side ( const Point_2< Kernel > &  p) const
template<typename Kernel >
bool CGAL::Circle_2< Kernel >::has_on_positive_side ( const Point_2< Kernel > &  p) const
template<typename Kernel >
bool CGAL::Circle_2< Kernel >::has_on_unbounded_side ( const Point_2< Kernel > &  p) const
template<typename Kernel >
bool CGAL::Circle_2< Kernel >::is_degenerate ( ) const

returns true, iff c is degenerate, i.e. if c has squared radius zero.

template<typename Kernel >
bool CGAL::Circle_2< Kernel >::operator!= ( const Circle_2< Kernel > &  circle2) const

returns true, iff c and circle2 are not equal.

template<typename Kernel >
bool CGAL::Circle_2< Kernel >::operator== ( const Circle_2< Kernel > &  circle2) const

returns true, iff c and circle2 are equal, i.e. if they have the same center, same squared radius and same orientation.

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

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

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

returns the orientation of c.

template<typename Kernel >
Oriented_side CGAL::Circle_2< Kernel >::oriented_side ( const Point_2< 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.

template<typename Kernel >
Circle_2<Kernel> CGAL::Circle_2< Kernel >::orthogonal_transform ( Aff_transformation_2< Kernel > const &  at) const

returns the circle obtained by applying \( at\) on c.

Precondition
at is an orthogonal transformation.
template<typename Kernel >
const Kernel::FT& CGAL::Circle_2< Kernel >::squared_radius ( ) const

returns the squared radius of c.