\( \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.8 - 3D Spherical Geometry Kernel

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members | Related Functions
CGAL::Circular_arc_3< SphericalKernel > Class Template Reference
Geometric Kernel and Classes

`#include <CGAL/Circular_arc_3.h>`

## Definition

Is Model Of:
  `SphericalKernel::CircularArc_3`

I/O

The input/output format of a circular arc consists of the supporting circle represented as a `Circle_3` object followed by the source and target points of the arc represented as two `Circular_arc_point_3` objects. The defined arc is the unique arc constructed from such three objects.

See Also
  `CGAL::Circular_arc_point_3<SphericalKernel>`
  `CGAL::Line_arc_3<SphericalKernel>`

Examples:
  Circular_kernel_3/functor_has_on_3.cpp.

## Related Functions
(Note that these are not member functions.)
istream & | operator>> (std::istream &is, Circular_arc_3 &ca)
ostream & | operator<< (std::ostream &os, const Circular_arc_3 &ca)

## Creation
| Circular_arc_3 (const Circle_3< SphericalKernel > &c)
| Constructs an arc from a full circle.
| Circular_arc_3 (const Circle_3< SphericalKernel > &c, const Circular_arc_point_3 &pt)
| Constructs an arc from a full circle, using pt as source and target.
| Circular_arc_3 (const Circle_3< SphericalKernel > &c, const Circular_arc_point_3< SphericalKernel > &p, const Circular_arc_point_3< SphericalKernel > &q)
| The circular arc constructed from a circle, a source, and a target, is defined as the set of points of the circle that lie between the source `p1` and the target `p2`, when traversing the circle counterclockwise seen from the side of the plane of the circle pointed by its positive normal vectors. More...
| Circular_arc_3 (const Point_3< SphericalKernel > &p, const Point_3< SphericalKernel > &q, const Point_3< SphericalKernel > &r)
| Constructs an arc that is supported by the circle of type `Circle_3<SphericalKernel>` passing through the points `p`, `q` and `r`. More...

## Access Functions
Circle_3< SphericalKernel > | supporting_circle ()
Point_3< SphericalKernel > const & | center () const
| returns the center of the supporting circle.
SphericalKernel::FT const & | squared_radius () const
| returns the squared radius of the supporting circle.
Plane_3< SphericalKernel > | supporting_plane ()
Sphere_3< SphericalKernel > | diametral_sphere ()
When the methods `source` and `target` return the same point, then the arc is in fact a full circle. When the arc was constructed from its (full) underlying circle, then source and target both return the smallest \( x\)-extremal point of the circle if the circle is not contained in a plane \( x=A\), and the smallest \( y\)-extremal point otherwise.
Circular_arc_point_3 < SphericalKernel > | source ()
Circular_arc_point_3 < SphericalKernel > | target ()
bool | operator== (const Circular_arc_3< SphericalKernel > &a1, const Circular_arc_3< SphericalKernel > &a2)
| Test for equality. More...
bool | operator!= (const Circular_arc_3< SphericalKernel > &a1, const Circular_arc_3< SphericalKernel > &a2)
| Test for nonequality.

## Constructor & Destructor Documentation

template<typename SphericalKernel >

CGAL::Circular_arc_3< SphericalKernel >::Circular_arc_3 | ( | const Circle_3< SphericalKernel > & | c,
|  | const Circular_arc_point_3< SphericalKernel > & | p,
|  | const Circular_arc_point_3< SphericalKernel > & | q
| ) |  |

The circular arc constructed from a circle, a source, and a target, is defined as the set of points of the circle that lie between the source `p1` and the target `p2`, when traversing the circle counterclockwise seen from the side of the plane of the circle pointed by its positive normal vectors.

In this definition, we say that a normal vector \( (a,b,c)\) is positive if \( (a,b,c)>(0,0,0)\) (i.e. \( (a>0) || (a==0) \&\& (b>0) || (a==0)\&\&(b==0)\&\&(c>0)\)).

Constructs the circular arc supported by `c`, whose source and target are `p` and `q`, respectively.

Precondition
  `p` and `q` lie on `c` and are different.

template<typename SphericalKernel >

CGAL::Circular_arc_3< SphericalKernel >::Circular_arc_3 | ( | const Point_3< SphericalKernel > & | p,
|  | const Point_3< SphericalKernel > & | q,
|  | const Point_3< SphericalKernel > & | r
| ) |  |

Constructs an arc that is supported by the circle of type `Circle_3<SphericalKernel>` passing through the points `p`, `q` and `r`.

The source and target are respectively `p` and `r`, when traversing the supporting circle in the counterclockwise direction seen from the side of the plane containing the circle pointed by its positive normal vectors. Note that, depending on the orientation of the point triple `(p,q,r)`, `q` may not lie on the arc.

Precondition
  `p`, `q`, and `r` are not collinear.

## Member Function Documentation

template<typename SphericalKernel >

bool CGAL::Circular_arc_3< SphericalKernel >::operator== | ( | const Circular_arc_3< SphericalKernel > & | a1,
|  | const Circular_arc_3< SphericalKernel > & | a2
| ) |  |

Test for equality.

Two arcs are equal, iff their non-oriented supporting planes are equal, and the centers and squared radii of their respective supporting circles are equal, and their sources and targets are equal.