\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={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 \lstset{language=C++, basicstyle=\scriptsize} \input{tutorial.def} % ========================================================================= \begin{document} % TITLE % ------------------------------------------------------------------------ \date{} \title{{\LARGE {\sffamily\bfseries Algorithms on Meshes with CGAL Polyhedron}}} % pierre: other suggestions for the title? % Mesh Processing with CGAL Polyhedron % Algorithms on Meshes with CGAL Polyhedron % Getting started with CGAL Polyhedron % ? \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} \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 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{Polyhedron Data Structure: Rendering and Manipulation} % rendering controls of the polyhedron (wire-frame, surface, normals>generation) \subsection{Rendering} %\input ?? % user manipulations of the polyhedron (arc ball?) \subsection{Manipulation} %\input ?? % ------------------------------------------------------------------------ \section{Design and Implemenation of Subdivisions} \subsection{Subdivision Surfaces} \input subdivision % connectivity ops: specific polyhedron algorithms (sqrt3 subdivisions) \subsection{$\sqrt{3}$-Subdivision using Euler Operators} %\input sqrt3 % ------------------------------------------------------------------------ % inc builder: specific polyhedron algorithms (qt subdivisions) \subsection{Quad-triangle Subdivision using Incremental Builder} \label{sec:subdivision_builder} %\input qt % ------------------------------------------------------------------------ % templated rules: a generic framework for subdivisions \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}