\documentclass[letter,twoside,10pt]{article}
\usepackage{tutorial}
\usepackage[OT1]{fontenc}

% ------------------------------------------------------------------------
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{epsfig}
\usepackage{psfrag}
%\usepackage{}
% used to write c++ code/algorithms
\usepackage{listings}
\usepackage{fancyvrb}

%\psdraft

% hyperref stuff
\usepackage{hyperref}
\hypersetup{
  pdftitle={A Tutorial on CGAL Polyhedron
            for Subdivision Algorithms},
  pdfauthor={INRIA Geometrica},
  pdfsubject={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

\lstset{language=C++, basicstyle=\scriptsize, commentstyle=\color{red}, aboveskip=.7cm, belowskip=.5cm, frame=tb}

\input{tutorial.def}

% =========================================================================
\begin{document}

% TITLE
% ------------------------------------------------------------------------
\date{}
\title{{\LARGE {\sffamily\bfseries A Tutorial on CGAL Polyhedron \\
                                   for Subdivision Algorithms}}}

\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{Geometry Factory, Sophia-Antipolis}
\and \small
\sffamily Lutz Kettner\footnote{MPII, Saarbr\"ucken}}
\maketitle

\thispagestyle{empty}

% ABSTRACT
% ------------------------------------------------------------------------
\abstract{
This document is a tutorial on how to get started with the polyhedron
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 first demonstrate two different approaches for
implementing mesh subdivision schemes. \emph{Euler operators} is
applied for $\sqrt{3}$ subdivision and the \emph{modifier callback
mechanism} is applied for the Quad-Triangle subdivision. Both
approaches are based on the build-in functionalities of the CGAL
polyhedron.  We then introduce a \emph{combinatory subdivision
library} (CSL) with increasing level of sophistication and
abstraction. CSL offers a convenient way to design user-customized
subdivision schemes through the definition of rule templates.
Catmull-Clark and Doo-Sabin schemes are used to demonstrate the design
and implementation of CSL. Two companion applications based on OpenGL,
one developed with Windows MFC, and the other developed with Qt,
showcase the subdivision schemes listed above, as well as several
functionalities for interaction and visualization.  }

\vskip 3mm

\noindent {\bf Keywords:}
                 CGAL library,
                 tutorial,
                 halfedge data structure, 
                 polyhedron structure,
                 subdivision surfaces,
                 quad-triangle,
                 $\sqrt{3}$,
                 Loop,
                 Doo-Sabin,
                 Catmull-Clark,
                 OpenGL.

% INTRODUCTION                 
% ------------------------------------------------------------------------
\section{Introduction}
\input intro

% PREREQUISITES
% ------------------------------------------------------------------------
\section{Background and Prerequisite}
\input prereq 

% ------------------------------------------------------------------------
\section{Polyhedron Viewer}
\input polyviewer

% ------------------------------------------------------------------------
\section{Subdivision Surfaces}
\input subdivision

% ------------------------------------------------------------------------
\section{Auxiliary Geometric Algorithms}
\input gc

% ------------------------------------------------------------------------
\section{Application demo}
\input demo

% ------------------------------------------------------------------------
% REFERENCES
\bibliographystyle{alpha}
\bibliography{tutorial}

\end{document}
