mirror of https://github.com/CGAL/cgal
167 lines
5.1 KiB
TeX
167 lines
5.1 KiB
TeX
\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}
|