A general conic curve $$C is the locus of all points $$(x,y) satisfying the equation $$rx^{2} + sy^{2} + txy + ux + vy + w = 0, where:
A bounded conic arc is defined as one of the following:
A very useful subset of the set of conic arcs are line segments and circular arcs, since arrangements of circular arcs and line segments have some interesting applications (e.g. offsetting polygons, motion planning for a disc robot, etc.). Circular arcs and line segment are simpler objects and can be dealt with more efficiently than arbitrary arcs. For these reasons, it is possible to construct conic arcs from segments and from circles. Using these constructors is highly recommended: It is more straightforward and also speeds up the arrangement construction.
#include <CGAL/Arr_conic_traits_2.h>
The Curve_2 class nested within the conic arcs' traits can represent arbitrary conic arcs and support their construction in various ways. The copy and default constructor as well as the assignment and equality operators are provided for conic arcs. In addition, an operator<< for the curves is defined for standard output streams and Window_stream.
 
constructs an arc from the line segment seg.
 
 
constructs a circular arc that corresponds to the full circle circ
(notice the circle center has integer coordinates and its squared radius
is also an integer).
 
 
constructs a circular arc supported by the circle circ and with
ps and pt as its endpoints, going in the given orientation. Precondition: ps and pt both lie on the circle circ.
 
 
constructs a circular arc going from p1, the source, through p2
to p3, the target (notice all points have integer coordinates).
The orientation of the arc is determined automatically. Precondition: The three points are not collinear.
 
 
constructs a conic arc that corresponds to the full curve $$rx^{2} + sy^{2} +
txy + ux + vy + w = 0. Precondition: The given curve is an ellipse, that is $$4rs  t^{2} > 0.
 
 
constructs a conic arc supported by the curve $$rx^{2} + sy^{2} + txy + ux +
vy + w = 0 with ps as its source and pt as its target, going
in the given orientation. Precondition: ps and pt both satisfy the equation of the supporting curve and define a bounded segment from it (e.g. in case of a hyperbolic arc, both point should be located on the same branch of the hyperbola.
 
 
constructs a conic arc supported by the curve $$rx^{2} + sy^{2} +
txy + ux + vy + w = 0, and whose endpoints are the intersection
points of the curve and the line $$l. We take the portion of the curve
that lies in the positive halfplane defined by $$l. Precondition: The line $$l intersects the conic curve at two points.
 
 
constructs a circular arc going from p1, the source, through p2,
p3 and p4 to p5, the target (notice all points have
integer coordinates). The orientation of the arc is determined
automatically. Precondition: No three points of the five are not collinear.
 
 
constructs a conic are supported by the curve $$rx^{2} + sy^{2} + txy + ux +
vy + w = 0 with ps as its source and pt as its target, going
in the given orientation.
In this case ps and pt are just approximations of the
endpoints, and their exact values are given implicitly, as the
intersections of the supporting curve with $$r_{1}x^{2} + s_{1}y^{2} + t_{1}xy +
u_{1}x + v_{1}y + w_{1} = 0 and $$r_{2}x^{2} + s_{2}y^{2} + t_{2}xy +
u_{2}x + v_{2}y + w_{2} = 0, respectively. Precondition: The two curves specifying the endpoints really intersect with the supporting conic curve.


 
returns whether the arc represents a full conic curve (a full ellipse).  
 
 returns the source point of the arc.  
 
 returns the target point of the arc.  

 
returns true if the arc is $$xmonotone, false otherwise.  

 returns whether the arc is a line segment. 

 returns whether the arc is supported by a circle. 
#include <CGAL/IO/Conic_arc_2_Window_stream.h>