@! ============================================================================ @! The CGAL Library @! Implementation: Traits Classes for dD Optimisation Algorithms @! ---------------------------------------------------------------------------- @! file : web/Optimisation_d_traits.aw @! author: Sven Schönherr @! ---------------------------------------------------------------------------- @! $CGAL_Chapter: Geometric Optimisation $ @! $CGAL_Package: Optimisation_basic WIP $ @! $Revision$ @! $Date$ @! ============================================================================ @documentclass[twoside]{article} @usepackage[latin1]{inputenc} @usepackage{a4wide2} @usepackage{amsmath} @usepackage{amssymb} @usepackage{cc_manual,cc_manual_index} @article \input{cprog.sty} \setlength{\skip\footins}{3ex} \pagestyle{headings} @! LaTeX macros \newcommand{\remark}[2]{[\textbf{#1:} \emph{#2}]} \newcommand{\linebreakByHand}{\ccTexHtml{\linebreak[4]}{}} \newcommand{ \newlineByHand}{\ccTexHtml{\\}{}} \newcommand{\SaveSpaceByHand}{} %%%%% [2]{\ccTexHtml{#1}{#2}} \renewcommand{\sectionmark}[1]{\markboth{\uppercase{#1}}{}} \newcommand{\subsectionRef}[2]{ \addtocounter{subsection}{1} \addcontentsline{toc}{subsection}{\protect\numberline{\thesubsection}#1: #2} \markright{\thesubsection~~#1: #2}} @! settings for `cc_manual.sty' \ccDefGlobalScope{CGAL::} \renewcommand{\ccRefPageEnd}{\clearpage} \newcommand{\cgalColumnLayout}{% \ccSetThreeColumns{Oriented_side}{}{\hspace*{10cm}} \ccPropagateThreeToTwoColumns} \newcommand{\cgalMinAnnulusLayout}{% \ccSetThreeColumns{}{min_annulus.center()\,}{returns \ccGlobalScope\ccc{ON_BOUNDED_SIDE}, \ccGlobalScope\ccc{ON_BOUNDARY},} \ccPropagateThreeToTwoColumns} \newcommand{\ccRequirements}{\ccHeading{Requirements}} \newcommand{\ccRequire}{\ccCommentHeading{Requirements}} @! ============================================================================ @! Title @! ============================================================================ \thispagestyle{empty} \RCSdef{\rcsRevision}{$Revision$} \RCSdefDate{\rcsDate}{$Date$} \newcommand{\cgalWIP}{{\footnotesize{} (\rcsRevision{} , \rcsDate) }} @t vskip 20 mm @t title titlefont centre "Traits Class Models for" @t vskip 0 mm @t title titlefont centre "dD Optimisation Algorithms*" @t vskip 10 mm @t title smalltitlefont centre "Sven Schönherr" \begin{center} \textbf{ETH Z{\"u}rich} \end{center} @t vskip 10 mm {\small \begin{center} \begin{tabular}{l} \verb+$CGAL_Package: Optimisation_basic WIP+\cgalWIP\verb+$+ \\ \verb+$CGAL_Chapter: Geometric Optimisation $+ \\ \end{tabular} \end{center} } @t vskip 30 mm \renewcommand{\thefootnote}{\fnsymbol{footnote}} \footnotetext[1]{This work was supported by the ESPRIT IV LTR Project No.~28155 (GALIA), and by a grant from the Swiss Federal Office for Education and Sciences for this project.} \renewcommand{\thefootnote}{\arabic{footnote}} @! -------- @! Abstract @! -------- \begin{abstract} We provide traits class models for $d$-dimensional optimisation algorithms using the two-, three-, and $d$-dimensional \cgal~kernel, respectively. \end{abstract} @! -------- @! Contents @! -------- \clearpage \newlength{\defaultparskip} \setlength{\defaultparskip}{\parskip} \setlength{\parskip}{1ex} \tableofcontents \setlength{\parskip}{\defaultparskip} @! ============================================================================ @! Introduction @! ============================================================================ \clearpage \markright{\uppercase{Introduction}} \section{Introduction} We provide traits class models for $d$-dimensional optimisation algorithms using the two-, three-, and $d$-dimensional \cgal~kernel, respectively. \ldots @! ============================================================================ @! Reference Pages @! ============================================================================ \clearpage \section{Reference Pages} \label{sec:reference_pages} \emph{Note:} Below some references are undefined, they refer to sections in the \cgal\ Reference Manual. @p maximum_input_line_length = 82 @! ---------------------------------------------------------------------------- @! Concept: OptimisationDTraits @! ---------------------------------------------------------------------------- \subsectionRef{Concept}{OptimisationDTraits} \input{../doc_tex/basic/Optimisation/Optimisation_ref/OptimisationDTraits.tex} @! ---------------------------------------------------------------------------- @! Class: Optimisation_d_traits_2 @! ---------------------------------------------------------------------------- \subsectionRef{Class}{% CGAL::Optimisation\_d\_traits\_2\texttt{<}K,ET,NT\texttt{>}} \input{../doc_tex/basic/Optimisation/Optimisation_ref/Optimisation_d_traits_2.tex} @! ---------------------------------------------------------------------------- @! Class: Optimisation_d_traits_3 @! ---------------------------------------------------------------------------- \subsectionRef{Class}{% CGAL::Optimisation\_d\_traits\_3\texttt{<}K,ET,NT\texttt{>}} \input{../doc_tex/basic/Optimisation/Optimisation_ref/Optimisation_d_traits_3.tex} @! ---------------------------------------------------------------------------- @! Class: Optimisation_d_traits_d @! ---------------------------------------------------------------------------- \subsectionRef{Class}{% CGAL::Optimisation\_d\_traits\_d\texttt{<}K,ET,NT\texttt{>}} \input{../doc_tex/basic/Optimisation/Optimisation_ref/Optimisation_d_traits_d.tex} @p maximum_input_line_length = 80 @! ============================================================================ @! Traits Class Models @! ============================================================================ \clearpage \section{Traits Class Models} \label{sec:traits_class_models} @! ---------------------------------------------------------------------------- @! The Class Template CGAL::Optimisation_d_traits_2 @! ---------------------------------------------------------------------------- \subsection{The Class Template \ccFont CGAL::Optimisation\_d\_traits\_2\texttt{<}K,ET,NT\texttt{>}} \label{sec:Optimisation_d_traits_2} The first template argument of \ccc{Optimisation_d_traits_2} is expected to be a \cgal\ representation class. The second and third template argument are expected to be number types fulfilling the requirements of a \cgal\ number type. They have default type \ccc{K::RT}. @macro = @begin template < class K_, class ET_ = typename K_::RT, class NT_ = typename K_::RT > class Optimisation_d_traits_2; @end The interface consists of the types and member functions described in Section~\ref{ccRef_CGAL::Optimisation_d_traits_2}.3. @macro = @begin template < class K_, class ET_, class NT_> class Optimisation_d_traits_2 { public: // self typedef K_ K; typedef ET_ ET; typedef NT_ NT; typedef Optimisation_d_traits_2 Self; // types typedef typename K::Point_2 Point_d; typedef typename K::Rep_tag Rep_tag; typedef typename K::RT RT; typedef typename K::FT FT; typedef CGAL::Access_dimension_2 Access_dimension_d; typedef CGAL::Access_coordinates_begin_2 Access_coordinates_begin_d; typedef typename K::Construct_point_2 Construct_point_d; // creation Optimisation_d_traits_2( ) { } Optimisation_d_traits_2( const Optimisation_d_traits_2&) {} // operations Access_dimension_d access_dimension_d_object( ) const { return Access_dimension_d(); } Access_coordinates_begin_d access_coordinates_begin_d_object( ) const { return Access_coordinates_begin_d(); } Construct_point_d construct_point_d_object( ) const { return Construct_point_d(); } }; @end @! ---------------------------------------------------------------------------- @! The Class Template CGAL::Optimisation_d_traits_3 @! ---------------------------------------------------------------------------- \subsection{The Class Template \ccFont CGAL::Optimisation\_d\_traits\_3\texttt{<}K,ET,NT\texttt{>}} \label{sec:Optimisation_d_traits_3} The first template argument of \ccc{Optimisation_d_traits_3} is expected to be a \cgal\ representation class. The second and third template argument are expected to be number types fulfilling the requirements of a \cgal\ number type. They have default type \ccc{K::RT}. @macro = @begin template < class K_, class ET_ = typename K_::RT, class NT_ = typename K_::RT > class Optimisation_d_traits_3; @end The interface consists of the types and member functions described in Section~\ref{ccRef_CGAL::Optimisation_d_traits_3}.4. @macro = @begin template < class K_, class ET_, class NT_> class Optimisation_d_traits_3 { public: // self typedef K_ K; typedef ET_ ET; typedef NT_ NT; typedef Optimisation_d_traits_3 Self; // types typedef typename K::Point_3 Point_d; typedef typename K::Rep_tag Rep_tag; typedef typename K::RT RT; typedef typename K::FT FT; typedef CGAL::Access_dimension_3 Access_dimension_d; typedef CGAL::Access_coordinates_begin_3 Access_coordinates_begin_d; typedef typename K::Construct_point_3 Construct_point_d; // creation Optimisation_d_traits_3( ) { } Optimisation_d_traits_3( const Optimisation_d_traits_3&) {} // operations Access_dimension_d access_dimension_d_object( ) const { return Access_dimension_d(); } Access_coordinates_begin_d access_coordinates_begin_d_object( ) const { return Access_coordinates_begin_d(); } Construct_point_d construct_point_d_object( ) const { return Construct_point_d(); } }; @end @! ---------------------------------------------------------------------------- @! The Class Template CGAL::Optimisation_d_traits_d @! ---------------------------------------------------------------------------- \subsection{The Class Template \ccFont CGAL::Optimisation\_d\_traits\_d\texttt{<}K,ET,NT\texttt{>}} \label{sec:Optimisation_d_traits_d} The first template argument of \ccc{Optimisation_d_traits_d} is expected to be a \cgal\ representation class. The second and third template argument are expected to be number types fulfilling the requirements of a \cgal\ number type. They have default type \ccc{K::RT}. @macro = @begin template < class K_, class ET_ = typename K_::RT, class NT_ = typename K_::RT > class Optimisation_d_traits_d; @end The interface consists of the types and member functions described in Section~\ref{ccRef_CGAL::Optimisation_d_traits_d}.5. @macro = @begin template < class K_, class ET_, class NT_> class Optimisation_d_traits_d { public: // self typedef K_ K; typedef ET_ ET; typedef NT_ NT; typedef Optimisation_d_traits_d Self; // types typedef typename K::Point_d Point_d; typedef typename K::Rep_tag Rep_tag; typedef typename K::RT RT; typedef typename K::FT FT; typedef CGAL::Access_dimension_d Access_dimension_d; typedef CGAL::Access_coordinates_begin_d Access_coordinates_begin_d; typedef CGAL::Construct_point_d Construct_point_d; // creation Optimisation_d_traits_d( ) { } Optimisation_d_traits_d( const Optimisation_d_traits_d&) {} // operations Access_dimension_d access_dimension_d_object( ) const { return Access_dimension_d(); } Access_coordinates_begin_d access_coordinates_begin_d_object( ) const { return Access_coordinates_begin_d(); } Construct_point_d construct_point_d_object( ) const { return Construct_point_d(); } }; @end @! ============================================================================ @! Files @! ============================================================================ \clearpage \section{Files} @i share/namespace.awi @! ---------------------------------------------------------------------------- @! Optimisation_d_traits_2.h @! ---------------------------------------------------------------------------- \subsection{include/CGAL/Optimisation\_d\_traits\_2.h} @file = @begin @( "include/CGAL/Optimisation_d_traits_2.h", "Traits class (2D) for dD optimisation algorithms") #ifndef CGAL_OPTIMISATION_D_TRAITS_2_H #define CGAL_OPTIMISATION_D_TRAITS_2_H // includes #ifndef CGAL_OPTIMISATION_ACCESS_DIMENSION_2_H # include #endif #ifndef CGAL_OPTIMISATION_ACCESS_COORDINATES_BEGIN_2_H # include #endif #ifndef CGAL_OPTIMISATION_CONSTRUCT_POINT_2_H # include #endif @("CGAL") // Class declaration // ================= @ // Class interface // =============== @ @("CGAL") #endif // CGAL_OPTIMISATION_D_TRAITS_2_H @ @end @! ---------------------------------------------------------------------------- @! Optimisation_d_traits_3.h @! ---------------------------------------------------------------------------- \subsection{include/CGAL/Optimisation\_d\_traits\_3.h} @file = @begin @( "include/CGAL/Optimisation_d_traits_3.h", "Traits class (3D) for dD optimisation algorithms") #ifndef CGAL_OPTIMISATION_D_TRAITS_3_H #define CGAL_OPTIMISATION_D_TRAITS_3_H // includes #ifndef CGAL_OPTIMISATION_ACCESS_DIMENSION_3_H # include #endif #ifndef CGAL_OPTIMISATION_ACCESS_COORDINATES_BEGIN_3_H # include #endif #ifndef CGAL_OPTIMISATION_CONSTRUCT_POINT_3_H # include #endif @("CGAL") // Class declaration // ================= @ // Class interface // =============== @ @("CGAL") #endif // CGAL_OPTIMISATION_D_TRAITS_3_H @ @end @! ---------------------------------------------------------------------------- @! Optimisation_d_traits_d.h @! ---------------------------------------------------------------------------- \subsection{include/CGAL/Optimisation\_d\_traits\_d.h} @file = @begin @( "include/CGAL/Optimisation_d_traits_d.h", "Traits class (dD) for dD optimisation algorithms") #ifndef CGAL_OPTIMISATION_D_TRAITS_D_H #define CGAL_OPTIMISATION_D_TRAITS_D_H // includes #ifndef CGAL_OPTIMISATION_ACCESS_DIMENSION_D_H # include #endif #ifndef CGAL_OPTIMISATION_ACCESS_COORDINATES_BEGIN_D_H # include #endif #ifndef CGAL_OPTIMISATION_CONSTRUCT_POINT_D_H # include #endif @("CGAL") // Class declaration // ================= @ // Class interface // =============== @ @("CGAL") #endif // CGAL_OPTIMISATION_D_TRAITS_D_H @ @end @! ---------------------------------------------------------------------------- @! File Header @! ---------------------------------------------------------------------------- \subsection*{File Header} @i share/file_header.awi And here comes the specific file header for the product files of this web file. @macro (2) many = @begin @ @(@1) @( "Optimisation_basic", "Geometric Optimisation", "Optimisation_d_traits", "$Revision$","$Date$", "Sven Schönherr ", "ETH Zürich (Bernd Gärtner )", "@2") @end @! ===== EOF ==================================================================