"Fossies" - the Fresh Open Source Software Archive

Member "doc_html/Circular_kernel_2/classCGAL_1_1Circular__arc__2.html" (8 Nov 2019, 32566 Bytes) of package /linux/misc/CGAL-4.14.2-doc_html.tar.xz:


Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. You can here alternatively try to browse the pure source code or just view or download the uninterpreted raw source code. If the rendering is insufficient you may try to find and view the page on the CGAL-4.14.2-doc_html.tar.xz project site itself.

\( \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.14.2 - 2D Circular Geometry Kernel
CGAL::Circular_arc_2< CircularKernel > Class Template Reference

#include <CGAL/Circular_arc_2.h>

Definition

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. More...
 
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. More...
 
 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. More...
 

Access Functions

Circle_2< CircularKernelsupporting_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< CircularKernelsource ()
 
Circular_arc_point_2< CircularKerneltarget ()
 

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< CircularKernelleft ()
 
Circular_arc_point_2< CircularKernelright ()
 
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.