\chapter{Circular Kernel}

\textbf{Submission - Monique - with Sylvain's help...}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Geometric concepts}

\ccRefConceptPage{CircularKernel}

\ccRefConceptPage{LinearKernel}

	\subsubsection*{Functors} 

\ccRefConceptPage{CircularKernel::CompareX_2}\\
\ccRefConceptPage{CircularKernel::CompareY_2}\\
\ccRefConceptPage{CircularKernel::CompareXY_2}

\ccRefConceptPage{CircularKernel::Equal_2}

\ccRefConceptPage{CircularKernel::CompareYatX_2}\\
\ccRefConceptPage{CircularKernel::CompareYtoRight_2}

\ccRefConceptPage{CircularKernel::HasOn_2}

\ccRefConceptPage{CircularKernel::DoOverlap_2}

\ccRefConceptPage{CircularKernel::InXRange_2}\\
\ccRefConceptPage{CircularKernel::InYRange_2}

\ccRefConceptPage{CircularKernel::IsVertical_2}

\ccRefConceptPage{CircularKernel::IsXMonotone_2}\\
\ccRefConceptPage{CircularKernel::IsYMonotone_2}

\ccRefConceptPage{CircularKernel::ConstructCircularMinVertex_2}\\
\ccRefConceptPage{CircularKernel::ConstructCircularMaxVertex_2}\\
\ccRefConceptPage{CircularKernel::ConstructCircularSourceVertex_2}\\
\ccRefConceptPage{CircularKernel::ConstructCircularTargetVertex_2}

%\footnote{technical remark: the previous functors have a different name 
%``Circular'' because the operators() don't have the same return type 
%as the existing CGAL functors... it would be nice to find a way to avoid 
%this, but I don't know any technique for this.} 

\ccRefConceptPage{CircularKernel::ConstructCircularArc_2}\\
\ccRefConceptPage{CircularKernel::ConstructLineArc_2}\\
\ccRefConceptPage{CircularKernel::ConstructCircularArcPoint_2}

\ccRefConceptPage{CircularKernel::MakeXMonotone_2}\\
\ccRefConceptPage{CircularKernel::Intersect_2}\\
\ccRefConceptPage{CircularKernel::Split_2}

\ccRefConceptPage{CircularKernel::ConstructBbox_2}

\ccRefConceptPage{CircularKernel::GetEquation}\\

%\begin{ccAdvanced}
%\ccRefConceptPage{ConicKernel::CompareX_2}\\
%\ccRefConceptPage{ConicKernel::CompareY_2}\\
%\ccRefConceptPage{ConicKernel::CompareXY_2}

%\ccRefConceptPage{ConicKernel::ConstructConic_2}\\
%\ccRefConceptPage{ConicKernel::ConstructConicArc_2}\\
%\ccRefConceptPage{ConicKernel::ConstructConicArcPoint_2}

%\ccRefConceptPage{ConicKernel::IsXMonotone_2}\\
%\ccRefConceptPage{ConicKernel::MakeXMonotone_2}\\
%\ccRefConceptPage{ConicKernel::Intersect_2}

%\ccRefConceptPage{ConicKernel::GetEquation}
%\end{ccAdvanced}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Algebraic concepts}

\ccRefConceptPage{AlgebraicKernelForCircles}

%\ccRefConceptPage{AlgebraicKernelForCircles::Polynomial_1_2}\footnote{General
%remark about the suffix \_d\_v: \_d stands
%for the degree of the polynomials and the algebraic numbers, and
%\_v stands for the number of variables, which is analogous to the
%dimension for CGAL geometric objects.}\\
%\ccRefConceptPage{AlgebraicKernelForCircles::PolynomialForCircles_2_2}\\
%\ccRefConceptPage{AlgebraicKernelForCircles::RootOf_2}\\
%\ccRefConceptPage{AlgebraicKernelForCircles::RootForCircles_2_2}

	\subsubsection*{Functors} 
\ccRefConceptPage{AlgebraicKernelForCircles::ConstructPolynomial_1_2}\\
\ccRefConceptPage{AlgebraicKernelForCircles::ConstructPolynomialForCircles_2_2}

\ccRefConceptPage{AlgebraicKernelForCircles::Solve}

\ccRefConceptPage{AlgebraicKernelForCircles::SignAt}

\ccRefConceptPage{AlgebraicKernelForCircles::XCriticalPoints}\\
\ccRefConceptPage{AlgebraicKernelForCircles::YCriticalPoints}

\ccRefConceptPage{AlgebraicKernelForCircles::CompareX}\\
\ccRefConceptPage{AlgebraicKernelForCircles::CompareY}\\
\ccRefConceptPage{AlgebraicKernelForCircles::CompareXY}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Geometric kernels and classes}

	\subsubsection*{Kernels}

\ccRefIdfierPage{CGAL::Circular_kernel_2<LinearKernel,AlgebraicKernelForCircles>} 
\\
\ccRefIdfierPage{CGAL::Exact_circular_kernel}
%\ccRefIdfierPage{CGAL::Lazy_curved_kernel<??>}%\\
%\ccRefIdfierPage{CGAL::Filtered_hexagon_curved_kernel<CircularKernel>}\\
%\ccRefIdfierPage{CGAL::Filtered_bbox_curved_kernel<CircularKernel>}

	\subsubsection*{Arcs}
\ccRefIdfierPage{CGAL::Circular_arc_2<CircularKernel>}\\
\ccRefIdfierPage{CGAL::Line_arc_2<CircularKernel>}

	\subsubsection*{Points}
\ccRefIdfierPage{CGAL::Circular_arc_point_2<CircularKernel>}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Algebraic kernel and classes}

	\subsubsection*{Kernel}

\ccRefIdfierPage{CGAL::Algebraic_kernel_for_circles_2_2<RT>}

	\subsubsection*{Polynomials} 

\ccRefIdfierPage{CGAL::Polynomial_1_2<RT>}\\
\ccRefIdfierPage{CGAL::Polynomial_for_circles_2_2<FT>}

	\subsubsection*{Roots of polynomials}

\ccRefIdfierPage{CGAL::Root_of_2<RT>}\\
\ccRefIdfierPage{CGAL::Root_for_circles_2_2<FT>}

\ccRefIdfierPage{CGAL::Root_of_traits_2<RT>}

%\begin{ccAdvanced}
%\ccRefIdfierPage{CGAL::Conic_arc_point_2<ConicKernel>}
%\end{ccAdvanced}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Geometric functions}

	\subsubsection*{Predicates}
\ccRefIdfierPage{CGAL::compare_x}\\
\ccRefIdfierPage{CGAL::compare_y}\\
\ccRefIdfierPage{CGAL::compare_xy}

%\ccRefIdfierPage{CGAL::compare_y_at_x}\\
%\ccRefIdfierPage{CGAL::compare_y_to_right}

	\subsubsection*{Constructions}
%\ccRefIdfierPage{CGAL::make_x_monotone}\\
%\ccRefIdfierPage{CGAL::intersect}

\ccRefIdfierPage{CGAL::make_root_of_2}

	\subsubsection*{Accessors} 
\ccRefIdfierPage{CGAL::get_equation}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Traits classes for CGAL Arrangements}

\ccRefIdfierPage{CGAL::Circular_arc_traits<CircularKernel>}\\
\ccRefIdfierPage{CGAL::Line_arc_traits<CircularKernel>}\\
\ccRefIdfierPage{CGAL::Arr_circular_line_arc_traits<CircularKernel>}

%\begin{ccAdvanced}
%\ccRefIdfierPage{CGAL::Conic_arc_traits}
%\end{ccAdvanced}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \section*{Enums}

\bigskip
