CGAL 6.1 - 2D Circular Geometry Kernel

Loading...
Searching...
No Matches
List of all members | Related Functions
CGAL::Circular_arc_2< CircularKernel > Class Template Reference
Reference Manual » Geometric Kernel and Classes

`#include <CGAL/Circular_arc_2.h>`

## Definition

template<typename CircularKernel>
class CGAL::Circular_arc_2< CircularKernel >

Is model of
  `CircularKernel::CircularArc_2`

See also
  `CGAL::Circular_arc_point_2<CircularKernel>`
  `CGAL::Line_arc_2<CircularKernel>`

Examples
  Circular_kernel_2/functor_has_on_2.cpp, and Circular_kernel_2/intersecting_arcs.cpp.

## Related Functions
(Note that these are not member functions.)
bool | operator== (const Circular_arc_2< CircularKernel > &ca1, const Circular_arc_2< CircularKernel > &ca2)
| Test for equality.
bool | operator!= (const Circular_arc_2< CircularKernel > &ca1, const Circular_arc_2< CircularKernel > &ca2)
| Test for non-equality.
istream & | operator>> (std::istream &is, Circular_arc_2 &ca)
ostream & | operator<< (std::ostream &os, const Circular_arc_2 &ca)

## Creation
| Circular_arc_2 (const Circle_2< CircularKernel > &c)
| Constructs an arc from a full circle.
| Circular_arc_2 (const Circle_2< CircularKernel > &c, const Circular_arc_point_2< CircularKernel > &p, const Circular_arc_point_2< CircularKernel > &q)
| Constructs the circular arc supported by `c`, whose source is `p` and whose target is `q` when traversing the circle in counterclockwise direction.
| Circular_arc_2 (const Point_2< CircularKernel > &p, const Point_2< CircularKernel > &q, const Point_2< CircularKernel > &r)
| Constructs an arc that is supported by the circle of type `Circle_2<CircularKernel>` passing through the points `p`, `q` and `r`.

## Access Functions
Circle_2< CircularKernel > | supporting_circle ()
Point_2< CircularKernel > const & | center () const
| returns the center of the supporting circle.
CircularKernel::FT const & | squared_radius () const
| returns the squared radius of the supporting circle.
A circular arc is not oriented. Still, its source and target endpoints can be defined, supposing that its supporting circle in traversed the counterclockwise direction from `source` to `target`.
Circular_arc_point_2< CircularKernel > | source ()
Circular_arc_point_2< CircularKernel > | target ()
When the methods `source` and `target` return the same point, then the arc is in fact a full circle. When an arc is x-monotone, its left and right points can be accessed directly:
Circular_arc_point_2< CircularKernel > | left ()
Circular_arc_point_2< CircularKernel > | right ()
Bbox_2 | bbox () const
| Returns a bounding box containing the arc.

## Query Functions
bool | is_x_monotone ()
| Tests whether the arc is x-monotone.
bool | is_y_monotone ()
| Tests whether the arc is y-monotone.

## Constructor & Destructor Documentation

## ◆ Circular_arc_2() [1/2]

template<typename CircularKernel >

CGAL::Circular_arc_2< CircularKernel >::Circular_arc_2 | ( | const Circle_2< CircularKernel > & | c,
|  | const Circular_arc_point_2< CircularKernel > & | p,
|  | const Circular_arc_point_2< CircularKernel > & | q
| ) |  |

Constructs the circular arc supported by `c`, whose source is `p` and whose target is `q` when traversing the circle in counterclockwise direction.

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

## ◆ Circular_arc_2() [2/2]

template<typename CircularKernel >

CGAL::Circular_arc_2< CircularKernel >::Circular_arc_2 | ( | const Point_2< CircularKernel > & | p,
|  | const Point_2< CircularKernel > & | q,
|  | const Point_2< CircularKernel > & | r
| ) |  |

Constructs an arc that is supported by the circle of type `Circle_2<CircularKernel>` 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. 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

## ◆ left()

template<typename CircularKernel >

Circular_arc_point_2< CircularKernel > CGAL::Circular_arc_2< CircularKernel >::left | ( |  | ) |

Precondition
  `ca`.`is_x_monotone()`.

## ◆ right()

template<typename CircularKernel >

Circular_arc_point_2< CircularKernel > CGAL::Circular_arc_2< CircularKernel >::right | ( |  | ) |

Precondition
  `ca`.`is_x_monotone()`.

## Friends And Related Function Documentation

## ◆ operator==()

template<typename CircularKernel >

bool operator== | ( | const Circular_arc_2< CircularKernel > & | ca1,
|  | const Circular_arc_2< CircularKernel > & | ca2
| ) |  |
| related

Test for equality.

Two arcs are equal, iff their non-oriented supporting circles are equal (i.e. they have same center and same squared radius) and their endpoints are equal.