CGAL 6.0  2D Circular Geometry Kernel

Operations  
A model of this concept must provide:  
CircularKernel::Circular_arc_2  operator() (const CircularKernel::Circle_2 &c) 
Constructs an arc from a full circle.  
CircularKernel::Circular_arc_2  operator() (const CircularKernel::Circle_2 &c, const CircularKernel::Circular_arc_point_2 &p1, const CircularKernel::Circular_arc_point_2 &p2) 
Construct the circular arc supported by c , whose source is p1 and whose target is p2 when traversing the circle in counterclockwise direction.  
CircularKernel::Circular_arc_2  operator() (const CircularKernel::Circle_2 &c, const CircularKernel::Circle_2 &c1, bool b1, const CircularKernel::Circle_2 &c2, bool b2) 
Constructs the unique circular arc whose supporting circle is c , and whose source is the intersection of c and c1 with index b1 , and whose target is the intersection of c and c2 of index b2 , where intersections are ordered lexicographically, and when traversing the circle in counterclockwise direction.  
CircularKernel::Circular_arc_2  operator() (const CircularKernel::Circle_2 &c, const CircularKernel::Line_2 &l1, bool b1, const CircularKernel::Line_2 &l2, bool b2) 
Same, for intersections defined by lines instead of circles.  
CircularKernel::Circular_arc_2  operator() (const CircularKernel::Point_2 &p, const CircularKernel::Point_2 &q, const CircularKernel::Point_2 &r) 
Constructs an arc that is supported by the circle of type CircularKernel::Circle_2 passing through the points p , q and r .  
CircularKernel::Circular_arc_2 CircularKernel::ConstructCircularArc_2::operator()  (  const CircularKernel::Circle_2 &  c, 
const CircularKernel::Circle_2 &  c1,  
bool  b1,  
const CircularKernel::Circle_2 &  c2,  
bool  b2  
) 
Constructs the unique circular arc whose supporting circle is c
, and whose source is the intersection of c
and c1
with index b1
, and whose target is the intersection of c
and c2
of index b2
, where intersections are ordered lexicographically, and when traversing the circle in counterclockwise direction.
c
intersects both c1
and c2
, and the arc defined by the intersections has nonzero length. CircularKernel::Circular_arc_2 CircularKernel::ConstructCircularArc_2::operator()  (  const CircularKernel::Circle_2 &  c, 
const CircularKernel::Circular_arc_point_2 &  p1,  
const CircularKernel::Circular_arc_point_2 &  p2  
) 
Construct the circular arc supported by c
, whose source is p1
and whose target is p2
when traversing the circle in counterclockwise direction.
p1
and p2
lie on c
. CircularKernel::Circular_arc_2 CircularKernel::ConstructCircularArc_2::operator()  (  const CircularKernel::Point_2 &  p, 
const CircularKernel::Point_2 &  q,  
const CircularKernel::Point_2 &  r  
) 
Constructs an arc that is supported by the circle of type CircularKernel::Circle_2
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.
p
, q
, and r
are not collinear.