\begin{ccRefFunctionObjectConcept}{CircularKernel::CompareX_2} 

\ccRefines

\ccc{Kernel::CompareX_2}

\ccCreationVariable{fo}

An object \ccVar\ of this type must provide in addition: 

\ccMemberFunction{Comparison_result operator()
	(const CircularKernel::Circular_arc_point_2 &p,
         const CircularKernel::Circular_arc_point_2 &q );}
{Compares the $x$-coordinates of $p$ and $q$.}

\ccMemberFunction{Comparison_result operator()
	(const CircularKernel::Point_2 &p,
         const CircularKernel::Circular_arc_point_2 &q );}
{same.}

\ccMemberFunction{Comparison_result operator()
	(const CircularKernel::Circular_arc_point_2 &p,
         const CircularKernel::Point_2 &q );}
{same.}

\ccHasModels

\ccc{Circular_kernel_2::Compare_x_2;}

\ccSeeAlso

\ccRefIdfierPage{CGAL::compare_x}

\end{ccRefFunctionObjectConcept}
\begin{ccRefFunctionObjectConcept}{CircularKernel::CompareY_2} 

\ccRefines

\ccc{Kernel::CompareY_2}

\ccCreationVariable{fo}

An object \ccVar\ of this type must provide in addition: 

\ccMemberFunction{Comparison_result operator()
	(const CircularKernel::Circular_arc_point_2 &p,
         const CircularKernel::Circular_arc_point_2 &q );}
{Compares the $y$-coordinates of $p$ and $q$.}

\ccMemberFunction{Comparison_result operator()
	(const CircularKernel::Point_2 &p,
         const CircularKernel::Circular_arc_point_2 &q );}
{same.}

\ccMemberFunction{Comparison_result operator()
	(const CircularKernel::Circular_arc_point_2 &p,
         const CircularKernel::Point_2 &q );}
{same.}

\ccHasModels

\ccc{Circular_kernel_2::Compare_y_2;}

\ccSeeAlso

\ccRefIdfierPage{CGAL::compare_y}

\end{ccRefFunctionObjectConcept}
\begin{ccRefFunctionObjectConcept}{CircularKernel::CompareXY_2} 

\ccRefines

\ccc{Kernel::CompareXY_2}

\ccCreationVariable{fo}

An object \ccVar\ of this type must provide in addition: 

\ccMemberFunction{Comparison_result operator()
	(const CircularKernel::Circular_arc_point_2 &p,
         const CircularKernel::Circular_arc_point_2 &q );}
{Compares $p$ and $q$ according to the lexicographic ordering on $x$- and $y$-coordinates.}

\ccMemberFunction{Comparison_result operator()
	(const CircularKernel::Point_2 &p,
         const CircularKernel::Circular_arc_point_2 &q );}
{same.}

\ccMemberFunction{Comparison_result operator()
	(const CircularKernel::Circular_arc_point_2 &p,
         const CircularKernel::Point_2 &q );}
{same.}

\ccHasModels

\ccc{Circular_kernel_2::Compare_xy_2;}

\ccSeeAlso

\ccRefIdfierPage{CGAL::compare_xy}

\end{ccRefFunctionObjectConcept}

\begin{ccRefFunctionObjectConcept}{CircularKernel::CompareYatX_2}

\ccCreationVariable{fo}

An object \ccVar\ of this type must provide two operators that compare 
a point $p$ and an arc $a$ on the vertical line passing through $p$.

\ccMemberFunction{Comparison_result operator()
	(const CircularKernel::Circular_arc_point_2 &p,
                const CircularKernel::Circular_arc_2 &a);}
{For a circular arc.}

\ccMemberFunction{Comparison_result operator()
	(const CircularKernel::Circular_arc_point_2 &p,
                const CircularKernel::Line_arc_2 &a);}
{For a segment.}

\ccHasModels

\ccc{Circular_kernel_2::Compare_y_at_x_2;}

\ccSeeAlso

\ccRefIdfierPage{CGAL::compare_y_at_x}

\end{ccRefFunctionObjectConcept}

\begin{ccRefFunctionObjectConcept}{CircularKernel::CompareYtoRight_2}

\ccCreationVariable{fo}

An object \ccVar\ of this type must provide operators that compare vertically 
two arcs on the right side of a common point $p$:

\ccMemberFunction{Comparison_result operator()
	(const Circular_kernel_2::Circular_arc_2 &a1,
               const Circular_kernel_2::Circular_arc_2 &a2,
               const Circular_kernel_2::Circular_arc_point_2 &p);}
{For two circular arcs.}

\ccMemberFunction{Comparison_result operator()
	(const Circular_kernel_2::Line_arc_2 &a1,
               const Circular_kernel_2::Line_arc_2 &a2,
               const Circular_kernel_2::Circular_arc_point_2 &p);}
{For two segments.}

\ccMemberFunction{Comparison_result operator()
	(const Circular_kernel_2::Line_arc_2 &a1,
               const Circular_kernel_2::Circular_arc_2 &a2,
               const Circular_kernel_2::Circular_arc_point_2 &p);}
{For a segment and an arc.}

\ccMemberFunction{Comparison_result operator()
	(const Circular_kernel_2::Circular_arc_2 &a1,
               const Circular_kernel_2::Line_arc_2 &a2,
               const Circular_kernel_2::Circular_arc_point_2 &p);}
{Same as previous.}

\ccHasModels

\ccc{Circular_kernel_2::Compare_y_to_right_2;}

\ccSeeAlso

\ccRefIdfierPage{CGAL::compare_y_to_right}

\end{ccRefFunctionObjectConcept}
