\begin{ccRefClass}{Circular_kernel_2<LinearKernel,AlgebraicKernelForCircles>}

\ccDefinition

\ccInclude{CGAL/Circular_kernel.h}

\ccIsModel

\ccc{CircularKernel}

\ccParameters

The circular kernel is parameterized by a \ccc{LinearKernel} parameter
(and derives from it), in order to reuse all needed functionalities on
basic linear objects provided by one of the CGAL kernels. It also
allows other implementations of these basic functionalities.

The second parameter, \ccc{AlgebraicKernelForCircles}, is meant to provide the
circular kernel with all the algebraic functionalities required for the
manipulation of algebraic curves. 

\ccInheritsFrom

\ccc{LinearKernel}

\ccTypes

\ccThree{typedef Circular_arc_point_2<Circular-Kernel>}{Root_of_4xxx}{}
\ccThreeToTwo

The circular kernel uses basic number types of the algebraic kernel:
\ccTypedef{typedef AlgebraicKernelForCircles::RT RT;}{Ring number type.}
\ccTypedef{typedef AlgebraicKernelForCircles::FT FT;}{Field number type.}
In fact, the two number types \ccc{AlgebraicKernelForCircles::RT} and
\ccc{LinearKernel::RT} must coincide, as well as
\ccc{AlgebraicKernelForCircles::FT} and \ccc{LinearKernel::FT}.

The following types are available, as well as all the functionality on
them described in the \ccc{CircularKernel} concept. 

\ccTypedef{typedef Line_arc_2<Circular_kernel_2> Line_arc_2;}{}
\ccGlue
\ccTypedef{typedef Circular_arc_2<Circular_kernel_2> Circular_arc_2;}{}
\ccGlue
\ccTypedef{typedef Circular_arc_point_2<Circular_kernel_2> Circular_arc_point_2;}{}

\ccSeeAlso

\ccRefIdfierPage{LinearKernel}\\
\ccRefIdfierPage{AlgebraicKernelForCircles}

\end{ccRefClass}
