A model fo of this type must provide:

fo ( CircularKernel::Line_2 l ,
CircularKernel::Circular_arc_point_2 p1 ,
CircularKernel::Circular_arc_point_2 p2 )
Constructs the line segment supported by l, whose source is p1 and whose target is p2.
Precondition: p1 and p2 lie on l.

CircularKernel::Line_arc_2 fo ( CircularKernel::Segment_2 s )

CircularKernel::Line_arc_2 fo ( CircularKernel::Point_2 p1 , CircularKernel::Point_2 p2 )

fo ( CircularKernel::Line_2 l ,
CircularKernel::Circle_2 c1 ,
bool b1 ,
CircularKernel::Circle_2 c2 ,
bool b2 )
Constructs the line segment whose supporting line is l, whose source endpoint is the b1th intersection of l with c1, and whose target endpoint is the b2th intersection of l and c2, where intersections are ordered lexicographically.
Precondition: l intersects both c1 and c2, and the arc defined by the intersections has non-zero length.

CircularKernel::Line_arc_2 fo ( CircularKernel::Line_2 l , CircularKernel::Line_2 l1 , CircularKernel::Line_2 l2 )
Same, for intersections defined by lines instead of circles.