cgal/Packages/Tutorial/tutorial/Polyhedron/doc/tutorial.tex

133 lines
4.1 KiB
TeX

\documentclass[letter,twoside,10pt]{article}
\usepackage{tutorial}
\usepackage[OT1]{fontenc}
\input{tutorial.def}
% ------------------------------------------------------------------------
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{epsfig}
\usepackage{psfrag}
%\psdraft
% hyperref stuff
\usepackage{hyperref}
\hypersetup{
pdftitle={Getting started with CGAL Polyhedron},
pdfauthor={INRIA Geometrica},
pdfsubject={A tutorial for CGAL},
pdfkeywords={},
pdfpagemode=UseThumbs,
baseurl={http://www.cgal.org},
colorlinks=true,
linkcolor=black,
anchorcolor=black,
citecolor=black,
filecolor=black,
menucolor=black,
pagecolor=black,
urlcolor=blue,
bookmarksopen=false,}
% end hyperref stuff
% =========================================================================
\begin{document}
% TITLE
% ------------------------------------------------------------------------
\date{}
\title{{\LARGE {\sffamily\bfseries Getting started with CGAL
Polyhedron}}\\ the example of subdivision surfaces}
\author{\small
\sffamily Le-Jeng Shiue\footnote{SurfLab, University of Florida}
\and \small
\sffamily Pierre Alliez\footnote{GEOMETRICA, INRIA Sophia-Antipolis}
\and \small
\sffamily Radu Ursu\footnote{GEOMETRICA, INRIA Sophia-Antipolis}}
\maketitle
\thispagestyle{empty}
% ABSTRACT
% ------------------------------------------------------------------------
\abstract{This document is a tutorial on how to get
started with the halfedge data structure provided by CGAL, the
Computational Geometry Algorithm Library. Assuming the reader to be
familiar with the C++ template mechanisms and the key concepts of the
STL (Standard Template Library), we describe three different
approaches with increasing level of sophistication for implementing
mesh subdivision schemes. The simplest approach uses simple Euler
operators to implement the $\sqrt{3}$ subdivision scheme applicable to
triangle meshes. A second approach overloads the incremental builder
already provided by CGAL to implement the quad-triangle subdivision
scheme applicable to polygon meshes. The third approach is generic and
offers a convenient way to design its own subdivision scheme through
the definition of rule templates. Catmull-Clark, Loop and Doo-Sabin
schemes are illustrated using the latter approach. Two companion
applications, one developed on Windows with MS .NET, MFC and OpenGL,
and the other developed for both Linux and Windows with Qt and OpenGL,
implement the subdivision schemes listed above, as well as several
functionalities for interaction, visualization and raster/vectorial
output.}
\vskip 3mm
\noindent {\bf Keywords:}
CGAL library,
tutorial,
halfedge data structure,
polygon surface mesh,
subdivision surfaces,
quad-triangle,
$\sqrt{3}$,
Loop,
Doo-Sabin,
Catmull-Clark,
OpenGL.
% INTRODUCTION
% ------------------------------------------------------------------------
\section{Introduction}
\input intro
% PREREQUISITES
% ------------------------------------------------------------------------
\section{Prerequisites}
\input prereq
% ------------------------------------------------------------------------
\section{Polyhedron Data Structure: Fundamentals}
\input polyhedron
% ------------------------------------------------------------------------
\section{Design and Implemenation of Subdivisions}
% Connec Operators
\subsection{$\sqrt{3}$-Subdivision using Euler Operators}
\input sqrt3
% Inc Builder
\subsection{Quad-triangle Subdivision using Incremental Builder}
\label{sec:subdivision_builder}
\input qt
% Templated subdivision rules
\subsection{Subdivision using a rule template}
\label{sec:subdivision_rule}
\input subtempl
% APPLICATION DEMO
% ------------------------------------------------------------------------
\section{Application demo}
\input demo
% ------------------------------------------------------------------------
% REFERENCES
\bibliographystyle{alpha}
\bibliography{tutorial}
\end{document}