\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. \ccPrecond{The arc $a$ must be monotone and $p$ must be in the vertical range of $a$.}} \ccMemberFunction{Comparison_result operator() (const CircularKernel::Circular_arc_point_2 &p, const CircularKernel::Line_arc_2 &a);} {Same 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. \ccPrecond{$p$ must be a common point to $a_1$ and $a_2$, and $a_1$ and $a_2$ must be defined to the right of $p$.}} \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);} {Same 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}