mirror of https://github.com/CGAL/cgal
89 lines
3.8 KiB
TeX
89 lines
3.8 KiB
TeX
% =============================================================================
|
|
% The CGAL Developers' Manual
|
|
% Chapter: Introduction
|
|
% -----------------------------------------------------------------------------
|
|
% file : intro.tex
|
|
% authors: Susan Hert <hert@mpi-sb.mpg.de> &
|
|
% Stefan Schirra <stschirr@mpi-sb.mpg.de>
|
|
% -----------------------------------------------------------------------------
|
|
% $Revision$
|
|
% $Date$
|
|
% =============================================================================
|
|
|
|
\chapter{Introduction}
|
|
\label{chap:intro}
|
|
\ccChapterRelease{Chapter Version: 1.0} \\
|
|
\ccChapterAuthor{Susan Hert ({\tt hert@mpi-sb.mpg.de})
|
|
\& Stefan Schirra ({\tt stschirr@mpi-sb.mpg.de})
|
|
}
|
|
|
|
Welcome to the wonderful world of programming computational geometry in
|
|
\begin{ccTexOnly}
|
|
\begin{center}
|
|
{\IpeScale{20}\Ipe{cgal.ipe}}\\
|
|
\end{center}
|
|
\end{ccTexOnly}
|
|
|
|
\begin{ccHtmlOnly}
|
|
<CENTER>
|
|
<IMG BORDER=0 SRC="images/cgal_small.gif" ALIGN=center ALT="Computational Geometry Algorithms Library"><BR>
|
|
</CENTER>
|
|
\end{ccHtmlOnly}
|
|
\centerline{{\sc Computational Geometry Algorithms Library}}
|
|
|
|
|
|
\begin{quote}
|
|
{\em The goal of \cgal\ is to make available to users in industry and academia
|
|
the most important efficient solutions to basic geometric problems
|
|
developed in the area of computational geometry in a \CC\ software library.}
|
|
\end{quote}
|
|
|
|
Work on \cgal\ is supported by {\sc esprit iv} projects 21957 (CGAL) and
|
|
28155 (GALIA).
|
|
|
|
\section{Manual organization}
|
|
\label{sec:manual_org}
|
|
|
|
This manual is meant to be a resource for developers who wish to contribute
|
|
to the \cgal\ library either by designing new packages or maintaining
|
|
or enhancing existing ones. The manual is organized roughly in the order in
|
|
which a developer will need the information in order to produce a package
|
|
for the library. We begin in this chapter with a description
|
|
of the design goals of \cgal\ and the overall design, which should be kept
|
|
in mind during all stages of development. The remaining chapters describe
|
|
in more concrete terms the requirements and recommendations for documentation,
|
|
code writing, and testing that are derived from these goals. We also describe
|
|
a number of tools that have been developed to help in the development process
|
|
and give pointers to other sources of information.
|
|
|
|
In Chapter~\ref{chap:specification}, a description of how the specification for
|
|
a package should be documented is provided along with information about
|
|
the tools available to help produce the documentation.
|
|
Chapter~\ref{chap:directory_structure} describes the directory structure required
|
|
for a package and Chapter~\ref{chap:tools} describes a set of tools that
|
|
may be used to create or modify various files required within this directory
|
|
structure. Chapters~\ref{chap:code_format} through~\ref{chap:robustness}
|
|
discuss issues related to the writing of code that is in keeping with
|
|
the goals of \cgal. Chapter~\ref{chap:portability} describes issues
|
|
related to the configuration of \cgal and
|
|
discusses portability issues for various platforms. Chapter~\ref{chap:testing}
|
|
describes the requirements for the test suite for a package and
|
|
Chapter~\ref{chap:debugging} consists of various hints for debugging.
|
|
The \cgal\
|
|
Java demo server is described in Chapter~\ref{chap:java_demos}. Information
|
|
about how to submit a package's specification to the editorial board
|
|
for approval and the implementation (and documentation) for inclusion in
|
|
internal releases is presented in Chapter~\ref{chap:submission}.
|
|
Chapter~\ref{chap:cvs} discusses the CVS server where developers should
|
|
place packages that are to remain a part of the library but currently have
|
|
no maintainers. Chapters~\ref{chap:addresses} and Chapter~\ref{chap:info}
|
|
provide information about mailing lists and other information
|
|
resources developers might find useful.
|
|
|
|
\input{philosophy}
|
|
|
|
\input{overall_design}
|
|
|
|
|
|
|