% ============================================================================= % The CGAL Reference Manual % Chapter: Optimisation % ----------------------------------------------------------------------------- % file : doc_tex/basic/Optimisation/main.tex % author: Bernd Gärtner, Sven Schönherr (sven@inf.fu-berlin.de) % ----------------------------------------------------------------------------- % $Revision$ % $Date$ % ============================================================================= \newcommand{\ccSetThreeColumnsByHand}{\ccTexHtml{\ccSetThreeColumns}{}} \newcommand{\linebreakByHand}{\ccTexHtml{\\}{}} \newcommand{\SaveSpaceByHand}{} %%%% [2]{\ccTexHtml{#1}{#2}} \chapter{Optimisation} \label{Optimisation} \RCSdefDate{\OptRCSDate}{$Date$} \ccChapterRelease{Release: 1.3 \ccTexHtml{\quad}{ , } \OptRCSDate} \ccChapterAuthor{Bernd Gärtner}\ccTexHtml{\par}{
} \ccChapterAuthor{Sven Schönherr} \ccTexHtml{\thispagestyle{empty}}{} \section{Introduction} This chapter describes routines for computing and updating the smallest enclosing circle resp.\ ellipse of a finite point set. Formally, the `smallest enclosing circle' is the boundary of the closed disk of minimum area covering the point set. It is known that this disk is unique. We usually identify the disk with its bounding circle, allowing us to talk about points being on the boundary of the circle, etc. The same holds for the smallest enclosing ellipse. The algorithms work in an incremental manner. They are implemented as semi-dynamic data structures, thus allowing to insert points while maintaining the smallest enclosing circle resp.\ ellipse. \subsubsection*{Traits Class} The class templates are parameterized with a traits class which defines the abstract interface between the optimisation algorithm and the primitives it uses. We provide a traits class implementation that interfaces the optimisation algorithms with the \cgal\ kernel. It is presented in Section~\ref{sec:opt_traits_impl}. In addition, we provide traits class adapters to user supplied point classes, see Section~\ref{sec:opt_traits_adapt}. Section~\ref{sec:opt_traits_req} describes the requirements that must be fulfilled by traits classes for optimisation algorithms. This is at the same time a specification for using the provided traits class implementation as for users who want to supply their own traits class. \subsubsection*{Assertions} The optimisation code uses infix \ccc{OPTIMISATION} in the assertions, e.g.\ defining the compiler flag \ccc{CGAL_OPTIMISATION_NO_PRECONDITIONS} switches precondition checking off, cf.~Section~\ref{assertions}. \clearpage \input{Min_circle_2} \clearpage \input{Min_ellipse_2} \input{traits_implementations} \input{traits_adapters} \input{traits_requirements} % ===== EOF ===================================================================