cs0302031/llncs.tex
1: % Relaxed Scheduling paper
2: % First version by Herbert and Alper, August 2002.
3: 
4: \documentclass[runningheads]{llncs}
5: \usepackage{epsfig}
6: %\usepackage[acmtitlespace,nocopyright]{acmnew}
7: %\usepackage{times}
8: \usepackage{amsmath}
9: \usepackage{amssymb}
10: 
11: \newcommand{\denselist}{\itemsep 0pt\parsep=1pt\partopsep 0pt}
12: \newcommand{\mm}[1] {\ifmmode{#1}\else{\mbox{\(#1\)}}\fi}
13: \newcommand{\spc} {\makebox[1em]{ }}
14: \newcommand{\ceiling}[1] {{\left\lceil  #1 \right\rceil}}
15: \newcommand{\floor}[1] {{\left\lfloor #1 \right\rfloor}}
16: \newcommand{\scalprod}[2] {{\langle #1 , #2 \rangle}}
17: 
18: %\newcommand{\proof}{\noindent{\sc Proof.~}}
19: \newcommand{\eop}{\hbox{}\nobreak\hfill\quad\usebox{\smallProofsym}\bigskip}  %
20: \newsavebox{\smallProofsym}                            % smallproofsymbol
21: \savebox{\smallProofsym}                               %
22: {                                                      %
23: \begin{picture}(6,6)                                   %
24: \put(0,0){\framebox(6,6){}}                            %
25: \put(0,2){\framebox(4,4){}}                            %
26: \end{picture}                                          %
27: }                                                      %
28: 
29: %%% This makes the legend font small
30: %\makeatletter
31: %\long\def\@makecaption#1#2{%
32: %  \vskip\abovecaptionskip
33: %  \sbox\@tempboxa{\small #1: #2}%
34: %  \ifdim \wd\@tempboxa >\hsize
35: %    \small #1: #2\par
36: %  \else
37: %    \global \@minipagefalse
38: %    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
39: %  \fi
40: %  \vskip\belowcaptionskip}
41: %\makeatother
42: 
43: \newcommand{\Rspace}        {\mm{{\mathbb R}}}
44: \newcommand{\Fset}          {\mm{\cal F}}
45: \newcommand{\grad}[1]       {\mm{\rm grad\,}{#1}}
46: \newcommand{\Eps}           {\mm{\varepsilon}}
47: 
48: \newcommand{\capsp}         {{\; \cap \;}}
49: \newcommand{\cupsp}         {{\; \cup \;}}
50: \newcommand{\norm}[1]       {\mm{\|{#1}\|}}
51: \newcommand{\dist}[2]       {\mm{\|{#1}-{#2}\|}}
52: \newcommand{\wdist}[1]      {\mm{f_{#1}}}
53: \newcommand{\aff}[1]        {\mm{\rm aff\,}{#1}}
54: \newcommand{\conv}[1]       {\mm{\rm conv\,}{#1}}
55: \newcommand{\skin}[1]       {\mm{\rm skin\,}{#1}}
56: \newcommand{\body}[1]       {\mm{\rm body\,}{#1}}
57: \newcommand{\env}[1]        {\mm{\rm env\,}{#1}}
58: \newcommand{\diff}          {\mm{\rm d}}
59: 
60: \newcommand{\Remark}[1]     {{\sf [#1]}}
61: 
62: \newif\ifpdf\ifx\pdfoutput\undefined\pdffalse\else\pdfoutput=1\pdftrue\fi
63: \newcommand{\pdfgraphics}{\ifpdf\DeclareGraphicsExtensions{.pdf,.jpg}\else\fi}
64:  
65: \mainmatter         
66: 
67: \title{Relaxed Scheduling in\\ Dynamic Skin Triangulation
68: 	\thanks{Research of the two authors is supported by
69: 		NSF under grant CCR-00-86013.}}
70: 
71: %\titlerunning{Lecture Notes in Computer Science}
72: 
73: \author{
74: %%Ho-Lun Cheng\thanks{Department of Computer Science, National
75: %%            University of Singapore, Singapore.},
76:    Herbert Edelsbrunner \inst{1}
77:     \and
78:    Alper \"{U}ng\"{o}r \inst{2}
79: }
80: 
81: \institute{
82:     Department of Computer Science,
83:     Duke University, Durham, NC 27708, and  Raindrop Geomagic,
84:     Research Triangle Park, NC 27709,\\
85:     \email{edels@cs.duke.edu} \vspace{.07in}
86:   \and
87:     Department of Computer Science,
88:     Duke University, Durham, NC 27708,\\
89:     \email{ungor@cs.duke.edu}
90: }
91: 
92: \begin{document}
93: \pdfgraphics
94: 
95: \maketitle
96: 
97: \begin{abstract}
98: {\rm
99:   We introduce relaxed scheduling as a paradigm for
100:   mesh maintenance and demonstrate its applicability to
101:   triangulating a skin surface in $\Rspace^3$.
102: }
103: \end{abstract}
104: 
105: \vspace{0.1in}
106: {\small
107:  \noindent{\bf Keywords.}
108:   Computational geometry, adaptive meshing, deformation, scheduling.
109: }
110: 
111: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
112: \section{Introduction}
113: \label{sec1}
114: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
115: 
116: In this paper, we describe a relaxed scheduling paradigm for operations
117: that maintain the mesh of a deforming surface.
118: We prove the correctness of this paradigm for skin surfaces.
119: 
120: \paragraph{Background.}
121: In 1999, Edelsbrunner \cite{Ede99} showed how a finite collection of spheres
122: or weighted points can be used to construct a $C^1$-continuous surface
123: in $\Rspace^3$.
124: It is referred to as the \emph{skin} or the \emph{skin surface} of the collection.
125: If the spheres represent the atoms of a molecule then the appearance of that
126: surface is similar to the molecular surface used in
127: structural biology \cite{Con83,LeRi71}.
128: The two differ in a number of details, one being that the former uses
129: hyperboloids to blend between sphere patches while the latter uses tori.
130: The skin surface is not $C^2$-continuous,
131: but its maximum normal curvature, $\kappa$, is continuous.
132: This property is exploited by Cheng {\em et al.}\ \cite{CDES01}, who describe
133: an algorithm that constructs a triangular mesh representing the skin surface.
134: In this mesh, the sizes of edges and triangles are inversely proportional
135: to the maximum normal curvature.
136: %
137: The main idea of the algorithm is to maintain the mesh while gradually growing
138: the skin surface to the desired shape,
139: as illustrated in Figure \ref{fig:deformation}.
140: \begin{figure}[hbt]
141: \vspace*{0.1in}
142:  \centering
143:   \centerline{
144:      \includegraphics[height=1.6in]{Figs/surfaceA} \hspace{.15in}
145:      \includegraphics[height=1.6in]{Figs/surfaceB} }
146:  \caption{The mesh is maintained as the surface on the left grows
147:           into that on the right}
148:  \label{fig:deformation}
149: \end{figure}
150: The algorithm thus reduces the construction to a sequence of restructuring operations.
151: There are \emph{edge flips}, which maintain the mesh as the restricted Delaunay
152: triangulation of its vertices,
153: \emph{edge contractions} and \emph{vertex insertions},
154: which maintain a sampling whose local density is proportional to the maximum normal curvature,
155: and \emph{metamorphoses}, which adjust the mesh connectivity to
156: reflect changes in the surface topology.
157: %
158: Some of these operations are easier to schedule than others,
159: and the most difficult ones are the edge contractions and vertex insertions.
160: They depend on how the sampled points move with the surface as it deforms.
161: The quality of the mesh is guaranteed by maintaining size constraints
162: for all edges and triangles.
163: When an edge gets too short we contract it, and when a triangle gets too large
164: we insert a point near its circumcenter.
165: Both events can be recognized by finding roots of fairly involved functions.
166: Scheduling edge contractions and vertex insertions thus becomes a bottleneck,
167: both in terms of the robustness and the running time of the algorithm.
168: 
169: \paragraph{Result.}
170: In this paper, we study how fast edges and triangles vary their size,
171: and we use that knowledge to schedule these elements in a relaxed fashion.
172: In other words, we do not determine when exactly an element violates
173: its size constraint, but we catch it before the violation happens.
174: Of course, the danger is now that we either update perfectly well-shaped
175: elements or we waste time by checking elements unnecessarily often.
176: To avoid the former, we introduce intervals or gray zones in which
177: the shapes of the elements are neither good nor unacceptably bad.
178: To avoid unnecessarily frequent checking, we prove lower bounds on how long an
179: element stays in the gray zone before its shape becomes unacceptably bad.
180: These bounds are different for edges and for triangles.
181: %
182: Consider first an edge $uv$.
183: Let $R = \dist{u}{v} / 2$ be its half-length and
184: $\varrho = 1 / \max \{\kappa(u), \kappa(v)\}$ the smaller radius of curvature
185: at its endpoints.
186: We use judiciously chosen constants $C$, $Q_0$ and $Q_1$ and call the edge
187: $$
188:   \left . \begin{array}{l}
189:     \mbox{\it acceptable}  \\  \mbox{\it borderline}  \\  \mbox{\it unacceptable}
190:   \end{array} \right \}
191:   \mbox{\rm ~~~~if~~~~}
192:   \left \{ \begin{array}{l}
193:     C/Q_0   <       R/\varrho             , \\
194:     C/Q_1   <       R/\varrho  \leq  C/Q_0  , \\
195:        ~~~~~~~~~~~\,  R/\varrho  \leq  C/Q_1 .
196:   \end{array} \right .
197: $$
198: The middle interval is what we called the gray zone above.
199: Assuming $uv$ is acceptable, we prove it will not become unacceptable within
200: a time interval of duration $\Delta t = (2 \theta - \theta^2) \varrho^2$, where
201: \begin{eqnarray*}
202:   \theta ~=~ \frac{R Q_1 - C \varrho}{R Q_1 + C \varrho} .
203: \end{eqnarray*}
204: In the worst case, $R$ is barely larger than $C \varrho / Q_0$, so we have
205: $\theta > (Q_1 - Q_0) / (Q_1 + Q_0)$ as a worst case bound.
206: We will see that $C = 0.06$, $Q_0 = 1.6$ and $Q_1 = 2.3$ are feasible choices for
207: the constants, and that for these we get $\theta > 0.179 \ldots$ and
208: $\Delta t / \varrho^2 > 0.326 \ldots$.
209: %
210: Consider next a triangle $uvw$.
211: Let $R$ be the radius of its circumcircle, and
212: $\varrho = 1 / \max \{ \kappa(u), \kappa(v), \kappa(w) \}$ the smallest
213: radius of curvature at its vertices.
214: We call $uvw$
215: $$
216:   \left . \begin{array}{l}
217:     \mbox{\it acceptable}  \\  \mbox{\it borderline}  \\  \mbox{\it unacceptable}
218:   \end{array} \right \}
219:   \mbox{\rm ~~~~if~~~~}
220:   \left \{ \begin{array}{l}
221:     ~~~~~~~~~~  R/\varrho    <   C Q_0 ,  \\
222:     C Q_0    \leq   R/\varrho    <   CQ_1 ,   \\
223:     C Q_1    \leq   R/\varrho .
224:   \end{array} \right .
225: $$
226: Assuming $uvw$ is acceptable, we prove it will not become unacceptable within
227: a time interval of duration $\Delta t = (2 \theta - \theta^2) \varrho^2$, where
228: \begin{eqnarray*}
229:   \theta  ~=~ 1 - \sqrt[4]{R / (C Q_1 \varrho)} .
230: \end{eqnarray*} 
231: In the worst case, $R$ is barely smaller than $C Q_0 \varrho$, so we have
232: $\theta > 1 - \sqrt[4]{Q_0 / Q_1}$. 
233: For the above values of $C$, $Q_0$ and $Q_1$, this gives
234: $\theta > 0.086\ldots$ and $\Delta t / \varrho^2 > 0.165\ldots$.
235: It seems that triangles can get out of shape about twice as fast as edges,
236: but we do not know whether this is really the case because our bounds are not tight.
237: 
238: \paragraph{Outline.}
239: Section \ref{sec2} reviews skin surfaces and the dynamic triangulation algorithm.
240: Section \ref{sec3} introduces relaxed scheduling as a paradigm to keep track of
241: moving or deforming data.
242: Section \ref{sec4} analyzes the local distortion within the mesh
243: and derives the formulas needed for the relaxed scheduling paradigm.
244: Section \ref{sec5} concludes the paper.
245: 
246: 
247: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
248: \section{Preliminaries}
249: \label{sec2}
250: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
251: 
252: In this section, we introduce the necessary background from \cite{Ede99},
253: where skin surfaces were originally defined, and from \cite{CDES01},
254: where the meshing algorithm for deforming skin surfaces was described.
255: 
256: \paragraph{Skin surfaces.}
257: We write $S_i = (z_i, r_i)$ for the sphere with center $z_i \in \Rspace^3$
258: and radius $r_i$ and think of it as the zero-set of the weighted square
259: distance function $\wdist{i}: \Rspace^3 \rightarrow \Rspace$ defined by
260: $\wdist{i} (x) = \dist{x}{z_i}^2 - r_i^2$.
261: The square radius is a real number and the radius is either a
262: non-negative real or a non-negative multiple of the imaginary unit.
263: We know how to add functions and how to multiply them by scalars.
264: For example, if we have a finite collection of spheres $S_i$ and
265: scalars $\sum \gamma_i = 1$ then
266: $\sum \gamma_i \wdist{i}$ is again a weighted square distance function,
267: and we denote by $S = \sum \gamma_i S_i$ the sphere that defines it.
268: The \emph{convex hull} of the $S_i$ is the set of such spheres obtained
269: using only non-negative scalars:
270: \begin{eqnarray*}
271:   \Fset ~=~   \left\{ \sum \gamma_i S_i  \mid
272:                       \sum \gamma_i = 1 \mbox{\rm ~and~}
273:                       \gamma_i \geq 0, \forall i \right\} .
274: \end{eqnarray*}
275: We also shrink spheres and write $\sqrt{S} = (z, r/\sqrt{2})$,
276: which is the zero-set of $2 \wdist{} - \wdist{} (z)$.
277: The \emph{skin surface} defined by the $S_i$
278: is then the envelope of the spheres in the convex hull, all scaled down by
279: a factor $1/\sqrt{2}$, and we write this as $F  =  \env{\sqrt{\Fset}}$.
280: Equivalently, it is the zero-set of the point-wise minimum over all functions
281: $2 \wdist{} - \wdist{} (z)$, over all $S \in \Fset$,
282: where $\wdist{}$ is the weighted square distance function defined by $S$.
283: At first glance, this might seem like an unwieldy surface, but we can
284: completely describe it as a collection of quadratic patches obtained by
285: decomposing the surface with what we call the mixed complex.
286: Its cells are Minkowski sums of Voronoi vertices, edges, polygons and
287: polyhedra with their dually corresponding
288: Delaunay tetrahedra, triangles, edges and vertices,
289: all scaled down by a factor $1/2$.
290: Instead of formally describing this construction, we illustrate it with a
291: two-dimensional example in Figure \ref{fig:mixed}.
292: \begin{figure}[hbt]
293:   \vspace*{0.1in}
294:   \centering
295:   \centerline{\includegraphics[height=2.0in]{Figs/mixed}}
296:   \caption{The mixed complex decomposes the skin curve and the area it bounds}
297:   \label{fig:mixed}
298: \end{figure}
299: Depending on the dimension of the contributing Delaunay simplex,
300: we have four types of mixed cells.
301: Because of symmetry, we have only two types of surface patches, namely pieces
302: of spheres and of hyperboloids of revolution, which we frequently put in
303: Standard Form:
304: \begin{eqnarray}
305:   \xi_1^2 + \xi_2^2 + \xi_3^2 ~&=&~ R^2 ,  \label{eqn:standardsphere} \\ 
306:   \xi_1^2 + \xi_2^2 - \xi_3^2 ~&=&~ \pm R^2 , \label{eqn:standardhyperboloid}
307: \end{eqnarray}
308: where the plus sign gives the one-sheeted hyperboloid and the minus sign
309: gives the two-sheeted hyperboloid.
310: 
311: 
312: \paragraph{Meshing.}
313: The meshing algorithm triangulates the skin surface using edges and triangles
314: whose sizes adapt to the local curvature. Let us be more specific.
315: At any point $x \in F$, let $\kappa (x)$ be the maximum normal curvature at $x$.
316: In contrast to other notions of curvature, $\kappa$ is continuous over
317: the skin surface and thus amenable to controlling the local size of the mesh.
318: Call $\varrho (x) = 1/ \kappa (x)$ the \emph{local length scale} at $x$.
319: The vertices of the mesh are points on the surface.
320: For an edge $uv$, let $R_{uv} = \dist{u}{v} /2$ be half its length,
321: and for a triangle $uvw$, let $R_{uvw}$ be the radius of its circumcircle.
322: The algorithm obeys the Lower and Upper Size Bounds that require
323: edges not be too short and triangles not be too large:
324: \begin{description}\denselist
325:   \item[{\rm [L]}] $R_{uv} / \varrho_{uv} ~>~ C/Q$ for every
326:                    edge $uv$, and
327:   \item[{\rm [U]}] $R_{uvw} / \varrho_{uvw} ~<~ CQ$ for every triangle $uvw$,
328: \end{description}
329: where $\varrho_{uv}$ is the larger of $\varrho (u)$ and $\varrho (v)$,
330: $\varrho_{uvw}$ is the minimum of $\varrho (u)$, $\varrho (v)$ and $\varrho (w)$,
331: and $C$ and $Q$ are judiciously chosen positive constants.
332: 
333: The particular algorithm we consider in this paper is dynamic,
334: in the sense that it maintains the mesh while the surface deforms.
335: We can use this algorithm to construct a mesh by starting with the empty surface
336: and growing it into the desired shape.
337: This is precisely the scenario in which our results apply.
338: To model the growth process, we use a time parameter and
339: let $S_i (t) = (z_i, \sqrt{r_i^2 + t})$ be the $i$-th sphere
340: at time $t \in \Rspace$.
341: We start at $t = - \infty$, at which time all radii are imaginary
342: and the surface is empty, and we end at $t = 0$,
343: at which time the surface has the desired shape.
344: This particular growth model is amenable to efficient computation because
345: it does not affect the mixed complex, which stays the same at all times.
346: Each patch of the surface sweeps out its mixed cell.
347: At any moment, we have a collection of points sampled on the surface,
348: and the mesh is the restricted Delaunay triangulation of these points,
349: as defined in \cite{Che93,EdSh97}.
350: Given the surface and the points, this triangulation is unique.
351: As the surface deforms, we move the points with it and update the mesh
352: as required.
353: From global and less frequent to local and more frequent these operations are:
354: \begin{enumerate}\denselist
355:  \item topology changes that affect the local and global connectivity
356:        of the surface and the mesh,
357:  \item edge contractions and vertex insertions that locally remove or add
358:        points to coarsen or refine the mesh, and
359:  \item edge flips that locally adjust the mesh without affecting the
360:        point distribution or the surface topology.
361: \end{enumerate}
362: For the particular growth model introduced above, the topology changes
363: are easily predicted using the filtration of alpha complexes as described
364: in \cite{EdMu94}.
365: To predict where and when we need to coarsen or refine the mesh is more
366: difficult and depends on how the points move to follow
367: the deforming surface.
368: This is the topic of this paper and will be discussed in detail in
369: the subsequent sections.
370: Finally, edge flips are relatively robust operations, which can be
371: performed in a lazy manner, without any sophisticated scheduling mechanism.
372: 
373: \paragraph{Point motion.}
374: To describe the motion of the points sampled on the skin surface,
375: it is convenient to consider the trajectory of the surface over time.
376: Note that the $i$-th sphere at time $t$ is $S_i (t) = f_i^{-1} (t)$.
377: Similarly, the convex combination defined by coefficients $\gamma_i$
378: at time $t$ is $S(t) = f^{-1} (t)$, where $f = \sum \gamma_i f_i$.
379: We can represent the skin surface in the same manner by introducing
380: the function $g: \Rspace^3 \rightarrow \Rspace$ defined as the point-wise
381: minimum of the functions representing the shrunken spheres.
382: More formally,
383: $g(x) = \min \{ 2 f(x) - f(z) \}$, where the minimum is taken over all
384: spheres $S \in \Fset$ and $z$ is the center of $S$.
385: The skin surface at time $t$ is then $F(t) = g^{-1} (t)$,
386: so it is appropriate to call the graph of $g$ the \emph{trajectory} of
387: the skin surface.
388: %
389: We see that growing the surface in time is equivalent to sweeping out its
390: trajectory with a three-dimensional space that moves through time.
391: It is natural to let the points sampled on $F(t)$ move normal to the surface.
392: For a point $x = [\xi_1, \xi_2, \xi_3]^T$ on a sphere or hyperboloid
393: in Standard Form $\xi_1^2 + \xi_2^2 \pm \xi_3^2 = \pm R^2$,
394: the gradient is $\nabla g_x = 2  [\xi_1, \xi_2, \pm \xi_3]^T$.
395: The point $x$ moves in the direction of the gradient with a speed that is
396: inversely proportional to the length.
397: In other words, the velocity vector at a point $x$ is
398: \begin{eqnarray*}
399:   \dot{x} ~=~  \frac{\diff x}{\diff t}
400:           ~=~  \frac{\nabla g_x}{\norm{\nabla g_x}^2}
401:           ~=~  \frac{\nabla g_x}{4 \norm{x}^2} .
402: \end{eqnarray*}
403: The speed of $x$ is therefore $\norm{\dot{x}} = 1 / (2 \norm{x})$.
404: The implementation of the relaxed scheduling paradigm crucially depends on the
405: properties of this motion.
406: %
407: We use the remainder of this section to describe a symmetry property of the
408: velocity vectors that is instrumental in the analysis of the motion.
409: Consider two mixed cells that share a common face.
410: The Standard Forms of the two corresponding surface patches differ by
411: a single sign, and so do the gradients.
412: If we reflect points in one cell across the plane of the common face into
413: the other cell then we preserve the velocity vector, as illustrated in
414: Figure \ref{fig:reflection}.
415: \begin{figure}[hbt]
416:  \vspace*{0.1in}
417:  \centering
418:  \centerline{\includegraphics[height=1.9in]{Figs/reflection}}
419:  \caption{Velocity vectors of a shrinking circle on the left and
420:           of a hyperbola on the right.
421:           The right portion of the edge $uv$ is reflected across
422:           face shared by the two mixed cells}
423:  \label{fig:reflection}
424: \end{figure}
425: We use this observation about adjacent mixed cells to relate the
426: velocity vectors of points in possibly non-adjacent cells.
427: Consider points $u$ and $v$ and let $x_1, x_2, \ldots, x_k$
428: be the intersection points with faces of mixed cells encountered as we
429: travel along the edge from $u$ to $v$.
430: Starting at $i = k$, we work backward and reflect the portion of
431: the edge beyond $x_i$ across the face that contains $x_i$.
432: In the general case, this portion is a polygonal path that leads from $x_i$
433: to the possibly multiply reflected image $\overline{v}$ of $v$.
434: After $k$ reflections we have a polygonal path from $u$ to the final $\overline{v}$.
435: The length of the path is equal to the length of the initial edge,
436: and hence $\dist{u}{\overline{v}} \leq \dist{u}{v}$.
437: We note that $\overline{v}$ does not necessarily lie in the mixed cell of $u$,
438: but its velocity vector --- which is the same as that of $v$ --- is consistent
439: with the family of spheres or hyperboloids that sweeps out that mixed cell.
440: In other words, the motion of $u$ and $\overline{v}$ is determined by
441: the same quadratic function.
442:  
443: 
444: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
445: \section{Relaxed Scheduling}
446: \label{sec3}
447: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
448: 
449: In this section, we introduce relaxed scheduling as a paradigm for maintaining
450: moving or deforming data.
451: It is designed to cope with situations in which the precise moment for an
452: update is either not known or too expensive to compute.
453: 
454: \paragraph{Correctness constraints.}
455: In the context of maintaining the triangle mesh of a skin surface,
456: we use relaxed scheduling to determine when to contract an edge and
457: when to insert a new vertex.
458: Since determining when the size of an edge or triangle stops to be acceptable
459: is expensive, we introduce a gray zone between acceptability and unacceptability
460: and update an element when we catch it inside that gray zone.
461: That this course of action is even conceivable is based on the correctness
462: proof of the dynamic skin triangulation algorithm for a range of its
463: controlling parameters.
464: The first three conditions defining that range refer to $\Eps$, $C$ and $Q$.
465: We have seen the latter two before in the formulation of the two
466: Size Bounds [L] and [U]:
467: $C$ controls how well the mesh approximates the surface, and $Q$ controls the
468: quality of the mesh.
469: Both are related to $\Eps$, which quantifies the sampling density.
470: \begin{description}
471:  \item[{\rm (I)}]   We require $0 < \Eps \leq \Eps_0$,
472:                     where $\Eps_0 = 0.279\ldots$ is a root of
473:                     $2 \cos ( \arcsin \frac{2 \Eps}{1 - \Eps} + \arcsin \Eps )
474:                           - \frac{2 \Eps}{1 - \Eps} = 0$.
475:  \item[{\rm (II)}]  $Q^2 - 4CQ > 2$.
476:  \item[{\rm (III)}] $\frac{\delta^2}{1+\delta^2} - \frac{\delta^2}{4} > C^2 Q^2$,
477:                     where $\delta = \Eps - \frac{2C(\Eps+1)}{Q+2C}$.
478: \end{description}
479: It is computationally efficient to select the loosest possible bound
480: for the sampling density: $\Eps = \Eps_0$.
481: Then we get $\delta = 0.166 \ldots$ and, as noted in \cite{CDES01},
482: we may choose $C = 0.08$ and $Q = 1.65$ to satisfy Conditions (I) to (III).
483: Alternatively, we may lower $C$ to $0.06$ and are then free to pick $Q$ anywhere
484: inside the interval from $1.6$ to $2.3$.
485: The two choices of parameters are marked by a hollow dot and a white bar
486: in Figure \ref{fig:chart}.
487: %
488: The last two conditions refer to $h$, $\ell$ and $m$.
489: All three parameters control how metamorphoses that add or remove a handle
490: are implemented.
491: Since the curvature blows up at the point and time of a topology change,
492: we use a special and relatively coarse sampling inside spherical neighborhoods of
493: such points.
494: Assuming a unit radius of such neighborhoods, we turn the special sampling
495: strategy on and off when the skin surface enters and leaves the smaller spherical
496: neighborhood of radius $h < 1.0$.
497: If the skin enters as a two-sheeted hyperboloid we triangulate it using two
498: $\ell$-sided pyramids inside the unit sphere neighborhood.
499: If it enters as a one-sheeted hyperboloid we triangulate it as an $m$-sided
500: drum with a waist.
501: \begin{figure}[hbt]
502:  \vspace*{0.1in}
503:  \centering
504:  \centerline{\includegraphics[height=1.1in]{Figs/DV}}
505:  \caption{The triangulation of a two-sheeted and a one-sheeted hyperboloid 
506:           inside a unit neighborhood sphere around their apices}
507:  \label{fig:DV}
508: \end{figure}
509: The conditions are stated in terms of the edges $ab$, $bc$ and $wx$ and the
510: triangles $abc$ and $vwx$, as defined in Figure \ref{fig:DV}.
511: Their sizes can all be expressed in terms of $h$, $\ell$ and $m$,
512: and we refer to \cite[Section 10]{CDES01} for the formulas.
513: \begin{description}\denselist
514:  \item[{\rm (IV)}]  $R_{ab}, R_{bc}, R_{wx} > C/Q$.
515:  \item[{\rm (V)}]   $R_{abc}, R_{vwx} < \min \{ Q, 2/Q \} Ch$.
516: \end{description}
517: 
518: \paragraph{Quality buffer.}
519: The key technical insight about the dynamic skin triangulation algorithm is that
520: we can find constants $\Eps$, $C$, $h$, $\ell$, $m$ and $Q_0 < Q_1$
521: such that Conditions (I) to (V) are satisfied for all $Q \in [Q_0, Q_1]$.
522: This is illustrated in Figure \ref{fig:chart},
523: which shows the feasible region of points $(C, Q)$ assuming fixed values
524: for $\Eps$, $h$, $\ell$ and $m$.
525: \begin{figure}[hbt]
526:   \vspace*{0.1in}
527:   \centering
528:   \centerline{\includegraphics[height=2.3in]{Figs/cond2345}}
529:   \caption{The shaded feasible region of parameter pairs $(C, Q)$
530:            for $\Eps = \Eps_0$, $h=0.993$, $\ell=6$ and $m=80$.
531:            For $C = 0.06$ this region contains the interval $Q \in [1.6, 2.3]$.
532:            The bounding curves are labeled by the corresponding constraints.
533:            Redundant constraints are not shown}
534:   \label{fig:chart}
535: \end{figure}
536: Instead of fixing $Q$ and contracting an edge when its size-scale ratio reaches
537: $C/Q$, we suggest to contract the edge any time its ratio is in the interval
538: $(C/Q_1, C/Q_0]$.
539: After the ratio enters this interval at $C/Q_0$ it can either leave again at $C/Q_0$
540: or it can get contracted, but it is not allowed to reach $C/Q_1$.
541: Vertex insertions are treated symmetrically.
542: Specifically, a triangle is removed by adding a vertex near its circumcenter,
543: and this can happen at any moment its size-scale ratio is in $[CQ_0, CQ_1)$.
544: The ratio can enter and leave the interval at $CQ_0$, but it is not allowed
545: to reach $CQ_1$.
546: We call $(C/Q_1, C/Q_0]$ and $[CQ_0, CQ_1)$ the \emph{lower} and
547: \emph{upper size buffers}.
548: The quality of the mesh is guaranteed because all edges and triangles satisfy
549: the two Size Bounds [L] and [U] for $Q = Q_1$.
550: Symmetrically, the correctness of the triangulation is guaranteed because
551: edge contractions and vertex insertions are executed only if the same bounds
552: are violated for $Q = Q_0$.
553: 
554: \paragraph{Early warning.}
555: Recall that an edge is borderline iff its size-scale ratio is contained in the
556: lower size buffer, and it becomes unacceptable at the moment it reaches $C/Q_1$.
557: Similarly, a triangle is borderline iff its size-scale ratio is contained in the
558: upper size buffer, and it becomes unacceptable at the moment it reaches $CQ_1$.
559: The relaxed scheduling paradigm depends on an early warning algorithm that reports
560: an element before it becomes unacceptable.
561: That algorithm might err and produce false positives, but it may not let any
562: element slip by and become unacceptable.
563: False positives cost time but do not cause any harm, while unacceptable elements
564: compromise the correctness of the meshing algorithm.
565: In Figure \ref{fig:buffers}, false positives are marked by hollow dots and deletions
566: are marked by filled black dots.
567: \begin{figure}[hbt]
568:   \vspace*{0.1in}
569:   \centering
570:   \centerline{\includegraphics[height=2.3in]{Figs/buffers}}
571:   \caption{The two buffers are shaded and the two curves are possible
572:            developments of size-scale ratios for an edge (dashed)
573:            and a triangle (dotted).
574:            The dots indicate moments at which the elements are tested
575:            and finally removed}
576:   \label{fig:buffers}
577: \end{figure}
578: All false positive tests of edges are represented by dots above the lower
579: size buffer.
580: To get a correct early warning algorithm we just need to test each edge
581: often enough so that its size-scale ratio cannot cross the entire lower size buffer
582: between two contiguous tests.
583: The symmetric rule applies to triangles.
584: Bounds on the amount of time it takes to cross the size buffers will be
585: given in Section \ref{sec4}.
586: 
587: Note that we have selected the parameters to obtain a fairly long
588: interval $[Q_0, Q_1]$.
589: It is not clear whether or not this is a good idea or whether a shorter interval
590: would lead to a more efficient algorithm.
591: An argument \emph{for} a long interval is that the implied large size buffers
592: let us get by with less frequent and therefore fewer tests.
593: An argument \emph{against} a long interval is that large size buffers are more
594: likely to cause the deletion of elements that are on their way to better
595: health but did not recover fast enough and get caught before they could
596: leave the buffers.
597: It might be useful to optimize the length of the intervals through
598: experimentations after implementing the relaxed schedule as part of the
599: skin triangulation algorithm.
600: 
601: 
602: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
603: \section{Analysis}
604: \label{sec4}
605: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
606: 
607: In this section, we derive lower bounds on the amount of time it takes
608: for an edge or triangle to change its size by more than some threshold value.
609: From these we will derive lower bounds on the time
610: it takes an element to pass through the entire size buffer.
611: We begin by studying the motion of a single point.
612: 
613: \paragraph{Traveling point.}
614: We recall that the speed of a point $u$ on the skin surface is
615: $\norm{\dot{u}} = 1/(2\norm{u})$,
616: assuming we write the patch that contains it in Standard Form.
617: The distance traveled by $u$ in a small time interval is therefore maximized if
618: it heads straight toward the origin, which for example happens if
619: $u$ lies on a shrinking sphere.
620: Starting the motion at point $u_0$, which is the point $u$
621: at time $t_0$, we get
622: \begin{eqnarray}
623:   \norm{u}  ~=~  \sqrt{ \norm{u_0}^2 - (t - t_0) } ,
624:   \label{eqn:norm}
625: \end{eqnarray}
626: for the point $u$ at time $t$.
627: This implies $t - t_0 = \norm{u_0}^2 - \norm{u}^2$,
628: so we see that $u$ reaches the origin at time $t = t_0 + \norm{u_0}^2$.
629: More generally, we reach the point $u_1 = (1-\theta) u_0$ between $u_0$
630: and the origin at time
631: $t_1  =  t_0 + \norm{u_0}^2 - \norm{u_1}^2 =  t_0 + (2 \theta - \theta^2) \norm{u_0}^2$.
632: Since the above analysis assumes the fastest way $u$ can possibly travel,
633: this implies that within an interval of duration $\Delta t = t_1 - t_0$,
634: the point $u_0$ cannot travel further than a distance
635: $\theta \varrho (u_0)$.
636: We use $\theta$ as a convenient intermediate quantity that gives us
637: indirect access to the important quantity, which is $\Delta t$.
638: 
639: Recall from the Curvature Variation Lemma of \cite{CDES01}
640: that the difference in length scale between two points is at most
641: the Euclidean distance.
642: If that distance is $\dist{u_0}{u_1} \leq \theta \varrho (u_0)$
643: then the length scale at $u_1$ is between $1-\theta$ and $1+\theta$
644: times the length scale at $u_0$.
645: It follows that if we travel for a duration
646: $\Delta t = (2 \theta - \theta^2) \varrho^2 (u_0)$,
647: we can change the length scale only by a factor
648: \begin{eqnarray}
649:   1 - \theta  ~\leq~  \frac{\varrho (u_1)}{\varrho (u_0)}
650:                ~<~  1 + \theta .
651:   \label{eqn:length_scale}
652: \end{eqnarray}
653: The lower bound is tight, and the upper bound cannot be reached because
654: the distance $\theta \varrho^2 (u_0)$ from $u_0$ can only be achieved
655: if the length scale shrinks.
656: %
657: We will also be interested in the integral of $1 / (2 \norm{u}^2)$,
658: which is again maximized if $u$ moves straight toward the origin:
659: \begin{eqnarray*}
660:  \int_{t_0}^{t_1} \frac{\diff t}{2 \norm{u}^2}
661:       ~&\leq&~  \int_{t_0}^{t_1} \frac{\diff t}{2 \norm{u_0}^2 - (2t - 2t_0)}    \\
662:       &=&~  (- \frac{1}{2}) \ln \frac{\norm{u_0}^2 - (t_1 - t_0)} {\norm{u_0}^2}  \\
663:       &=&~  \ln \frac{\norm{u_0}}{\norm{u_1}} .
664: \end{eqnarray*}
665: Denoting the above integral by $X$ and choosing
666: $t_1 - t_0 = (2 \theta - \theta^2) \norm{u_0}^2$, as before, we have
667: \begin{eqnarray}
668:   e^X  ~\leq~    \frac{\norm{u_0}}{\norm{u_1}}
669:         ~=~   \frac{\varrho(u_0)}{\varrho(u_1)}
670:         ~\leq~ \frac{1}{1-\theta} .
671:   \label{eqn:exponential}
672: \end{eqnarray}
673: 
674: \paragraph{Edge length variation.}
675: Consider two points $u$ and $v$ on the skin surface
676: during a time interval $[t_0, t_1]$.
677: We assume that both points follow their trajectories undisturbed
678: by any mesh maintenance operations.
679: Let $u_0$ and $u_1$ be the point $u$ at times $t_0$ and $t_1$
680: and, similarly, let $v_0$ and $v_1$ be the point $v$ at these two moments.
681: We prove that if the time interval is short relative to the
682: length scale of the points then the distance between them cannot
683: shrink or grow by much.
684: \begin{description}
685:  \item[{\sc Length Lemma.}]
686:   Let $\varrho_0 = \min \{ \varrho (u_0), \varrho (v_0) \}$ and
687:   $\Delta t = t_1 - t_0 = (2 \theta - \theta^2) \varrho_0^2$,
688:   for some $0 \leq \theta \leq 1$.
689:   Then
690:   \begin{eqnarray*}
691:    1 - \theta  ~\leq~  \frac{ \dist{u_1}{v_1} }{ \dist{u_0}{v_0} }
692:                ~<~  \frac{1}{1-\theta} .
693:   \end{eqnarray*}
694: \end{description}
695: \proof
696:  The derivative of the distance between points $u$ and $v$ with respect to time is
697:  \begin{eqnarray}
698:   \frac{\diff \dist{u}{v}}{\diff t}
699:     ~&=&~  \frac{\diff \dist{u}{v}}{\diff u} \frac{\diff u}{\diff t}
700:        + \frac{\diff \dist{u}{v}}{\diff v} \frac{\diff v}{\diff t} \nonumber \\
701:     ~&=&~  \frac{(u-v)^T}{\dist{u}{v}} (\dot{u} - \dot{v}) .
702:     \label{eqn:derivative}
703:  \end{eqnarray}
704:  For example if $u$ and $v$ lie on a common sphere patch then
705:  $\varrho = \varrho (u) = \varrho (v)$,
706:  $\dot{u} = {\pm u} / (2 \varrho^2)$ and $\dot{v} = {\pm v} / (2 \varrho^2)$,
707:  which implies
708:  \begin{eqnarray*}
709:   \frac{\diff \dist{u}{v}}{\diff t}
710:     ~=~  \pm \frac{(u-v)^T}{\dist{u}{v}} \frac{(u-v)}{2 \varrho^2}
711:    ~=~ \pm \frac{\dist{u}{v}}{2 \varrho^2} .
712:  \end{eqnarray*}
713:  We prove below that in the general case, the distance derivative stays
714:  between these two extremes:
715:  \begin{eqnarray}
716:   - \frac{\dist{u}{v}}{2 \varrho^2}
717:      ~\leq~  \frac{\diff \dist{u}{v}}{\diff t}
718:      ~\leq~ \frac{\dist{u}{v}}{2 \varrho^2} ,
719:   \label{eqn:length-bounds}
720:  \end{eqnarray}
721:  where $\varrho = \min \{ \varrho (u), \varrho (v) \}$.
722:  To get the final result from (\ref{eqn:derivative}),
723:  we divide by $\dist{u}{v}$, multiply by $\diff t$,
724:  and use $\diff \ln x = \diff x / x$ to get
725:  \begin{eqnarray*}
726:   - \frac{\diff t}{2 \varrho^2}  ~\leq~  \diff (\ln \dist{u}{v})
727:        ~\leq~  \frac{\diff t}{2 \varrho^2} .
728:  \end{eqnarray*}
729:  Next we integrate over $[t_0, t_1]$ and exponentiate to eliminate
730:  the natural logarithm:
731:  \begin{eqnarray*}
732:   {e^{-X}} ~\leq~  \frac{\dist{u_1}{v_1}}{\dist{u_0}{v_0}}
733:            ~\leq~  e^X .
734:  \end{eqnarray*}
735:  The claimed pair of inequalities follows from (\ref{eqn:exponential})
736:  and the observation that the upper bound for $X$ cannot be realized
737:  when the distance derivative is positive.
738:  To prove (\ref{eqn:length-bounds}) for general points $u$ and $v$,
739:  it suffices to show that the length of $\dot{u} - \dot{v}$
740:  is at most $\dist{u}{v} /(2 \varrho^2)$.
741:  We have seen that this is true if $u$ and $v$ belong to a common sphere patch.
742:  It is also true if $u$ and $v$ belong to a common hyperboloid patch
743:  because
744:  \begin{eqnarray*}
745:    \dist{\dot{u}}{\dot{v}}
746:     ~=~  \| {\frac{u'}{2 \varrho^2 (u)}} - {\frac{v'}{2 \varrho^2 (v)}} \|
747:     ~\leq~  \frac{\dist{u}{v}}{2 \varrho^2} ,
748:  \end{eqnarray*}
749:  where the primed and unprimed vectors are the same, except that they have a
750:  different sign in the third coordinate.
751:  We need a slightly more elaborate argument if $u$ and $v$ do not
752:  belong to the same mixed cell.
753:  We then reflect $v$ across the faces of mixed cells that intersect
754:  the edge $uv$.
755:  As described in Section \ref{sec2}, such a sequence of reflections
756:  does not affect the velocity vector.
757:  The distance between $u$ and the image $\overline{v}$ of $v$ under the composition
758:  of reflections is at most that between $u$ and $v$.
759:  Hence,
760:  \begin{eqnarray*}
761:    \dist{\dot{u}}{\dot{v}}  ~=~  \dist{\dot{u}}{\dot{\overline{v}}}
762:       ~\leq~  \norm{ \frac{u-v}{2 \varrho^2} } ,
763:  \end{eqnarray*}
764:  as required.
765: \eop
766: 
767: The lower bound in the Length Lemma is tight and realized
768: by points $u$ and $v$ on a common sphere patch.
769: 
770: 
771: \paragraph{Shrinking edge.}
772: Consider an edge $uv$, whose half-length at time $t_0$ is $R_0$.
773: As before, let $u_0$ and $v_0$ be the points $u$ and $v$ at
774: time $t_0$.
775: Let $\varrho_0 = \min \{ \varrho (u_0), \varrho (v_0) \}$.
776: We follow the two points during the time interval $[t_0, t_1]$,
777: whose duration is
778: $\Delta t = t_1 - t_0 = (2 \theta - \theta^2) \varrho_0^2$.
779: The Length Lemma implies that at time $t_1$,
780: the length of the edge satisfies
781: \begin{eqnarray}
782:   \frac{\dist{u_1}{v_1}}{\dist{u_0}{v_0}} 
783:     ~=~  \frac{R_1}{R_0}  ~\geq~  1 - \theta .
784:   \label{eqn:low_bnd_edge_shrink}
785: \end{eqnarray}
786: Our goal is to choose $\theta$ such that the edge at time $t_1$
787: is guaranteed to satisfy the Lower Size Bound for $Q = Q_1$.
788: Using $R_1 \geq (1-\theta) R_0$ from (\ref{eqn:low_bnd_edge_shrink}) and
789: $\varrho_1 < (1+\theta) \varrho_0$ from (\ref{eqn:length_scale}),
790: we note that $R_1 / \varrho_1 > C/Q_1$ is implied by
791: $(1-\theta) R_0 / (1+\theta) \geq C \varrho_0 / Q_1$.
792: In other words,
793: \begin{eqnarray}
794:   \theta ~=~ \frac{R_0 Q_1 - C \varrho_0}{R_0 Q_1 + C \varrho_0}
795:   \label{eqn:theta}
796: \end{eqnarray}
797: is sufficiently small.
798: The corresponding time interval during which we can be sure
799: that the edge $uv$ does not become unacceptably short has duration
800: $\Delta t = (2 \theta -\theta^2) \varrho_0^2$.
801: To get a better feeling for what these results mean, let us
802: write the half-length of $u_0 v_0$ as a multiple of the lower bound in [L]
803: for $Q = Q_0$:  $R_0 = A C \varrho_0 / Q_0$ with $A > 1.0$.
804: We then get $\theta = ({A Q_1 - Q_0})/({A Q_1 + Q_0})$ and
805: $\Delta t$ from $\theta$ as before.
806: Table \ref{tab:edge_constants} shows the values of $\theta$
807: and $\Delta t$ for a few values of $A$.
808: \begin{table}[hbt]
809:  \centering
810:  \caption{For edges, the values of $\theta$ and $\Delta t$ 
811:           for $Q_0 = 1.6$, $Q_1 = 2.3$ 
812:           and a few typical values of $A$}
813:  \label{tab:edge_constants}
814:  \begin{tabular}{|r||r|r|} \hline
815:    \multicolumn{1}{|c||}{$A$} 
816:          & \multicolumn{1}{c|}{$\theta$}
817:                             &  \multicolumn{1}{c|}{$\Delta t/\varrho_0^2$}  \\ \hline \hline
818:    $1.0$ &  $0.179\ldots$   &           $0.326\ldots$  \\ 
819:    $1.5$ &  $0.366\ldots$   &           $0.598\ldots$  \\
820:    $2.0$ &  $0.483\ldots$   &           $0.733\ldots$  \\
821:    $2.5$ &  $0.564\ldots$   &           $0.810\ldots$  \\
822:    $3.0$ &  $0.623\ldots$   &           $0.858\ldots$  \\
823:    $3.5$ &  $0.668\ldots$   &           $0.890\ldots$  \\
824:    $4.0$ &  $0.703\ldots$   &           $0.912\ldots$  \\ \hline
825:  \end{tabular}
826: \end{table}
827: %%The coefficient $A$ cannot get much larger than $4.0$ because such a long
828: %%edge forces a large triangle that is likely to violate the
829: %%Upper Size Bound [U].
830: 
831: \paragraph{Height variation.}
832: Consider a triangle $uvw$ during a time interval $[t_0, t_1]$.
833: We assume that all three points follow their trajectories undisturbed
834: by any mesh maintenance operations.
835: Each vertex has a distance to the line spanned by the other two vertices,
836: and the \emph{height} $H$ of $uvw$ is the smallest of the three distances.
837: If $uv$ is the longest edge then $H = \dist{w}{w'}$,
838: where $w'$ is the orthogonal projection of $w$ onto $uv$.
839: We prove if the time interval is short relative to the length
840: scale at the points then the height cannot shrink or grow by much.
841: To state the claim we use indices 0 and 1 for points and heights
842: at times $t_0$ and $t_1$.
843: \begin{description}
844:  \item[{\sc Height Lemma.}]
845:   Let $\varrho_0 = \min \{ \varrho (u_0), \varrho (v_0), \varrho (w_0) \}$ and
846:   $\Delta t = t_1 - t_0 = (2 \theta - \theta^2) \varrho_0^2$,
847:   for some $0 \leq \theta \leq 1$.
848:   Then
849:   \begin{eqnarray*}
850:     1 - \theta  ~\leq~  \frac{H_1}{H_0} ~<~ \frac{1}{1-\theta} .
851:   \end{eqnarray*}
852: \end{description}
853: \proof
854:  We prove that (\ref{eqn:length-bounds}) is also true if we
855:  substitute the height $H$ for the length of the edge $uv$:
856:  \begin{eqnarray}
857:   - \frac{H}{2 \varrho^2}  ~\leq~  \frac{\diff H}{\diff t}
858:        ~\leq~  \frac{H}{2 \varrho^2} ,
859:   \label{eqn:height-bounds}
860:  \end{eqnarray}
861:  where $\varrho = \min \{ \varrho (u), \varrho (v), \varrho (w) \}$.
862:  The claimed pair of inequalities follows as explained in the
863:  proof of the Length Lemma.
864:  To see (\ref{eqn:height-bounds}) note first that the height of the
865:  triangle is always determined by a vertex and a point on the opposite
866:  edge, eg.\ $H = \dist{w}{w'}$.
867:  Let $w' = (1-\lambda) u + \lambda v$.
868:  If $u$ and $v$ belong to the same mixed cell then
869:  $\nabla g_{w'} = (1-\lambda) \nabla g_u + \lambda \nabla g_v$
870:  because the gradient varies linearly.
871:  Along a moving line segment $uv$ the velocity vectors
872:  vary linearly, hence $\dot{w}' = (1-\lambda) \dot{u} + \lambda \dot{v}$.
873:  Since the gradients and the velocity vectors at $u$ and $v$
874:  point in the same directions, they do the same at $w'$.
875:  The length of the velocity vector at $w'$ is at most that of the
876:  longer velocity vector at $u$ and $v$.
877:  %%%  and therefore $\norm{\dot{w}'} \leq \dist{u}{v} / \varrho^2$.
878:  If $w$ belongs to the same mixed cell as $w'$, this implies
879:  \begin{eqnarray*}
880:   \dist{\dot{w}}{\dot{w}'}  ~\leq~  \frac{\norm{w-w'}}{2 \varrho^2}
881:                             ~=~   \frac{H}{2 \varrho^2} ,
882:  \end{eqnarray*}
883:  from which (\ref{eqn:height-bounds}) follows.
884:  If $u$, $v$ and $w$ do not belong to the same mixed cell then we
885:  perform reflections, as in the proof of the Length Lemma,
886:  and get (\ref{eqn:height-bounds}) because reflections do
887:  not affect velocity vectors.
888: \eop
889: 
890: In the following, we only need the lower bound in the Height Lemma,
891: which is tight and is realized points $u$, $v$ and $w$ on a common
892: sphere patch.
893: 
894: \paragraph{Expanding triangle.}
895: We use both the Length Lemma and the Height Lemma to derive a lower bound
896: on the length of time during which a triangle that initially satisfied the
897: Upper Size Bound [U] for $Q = Q_0$ is guaranteed to satisfy the same for $Q = Q_1$.
898: We begin by establishing a relation between the circumradius $R = R_{uvw}$
899: of a triangle $uvw$ and its height and edge lengths.
900: Referring to Figure \ref{fig:radius_height}, we let $z$ denote the center of
901: the circumcircle.
902: Assuming $uv$ is the longest of the three edges, the height is
903: $H = \dist{w}{w'}$ and $v$ and $z$ lie on the same side of the line
904: passing through $u$ and $w$.
905: Let $z'$ be the midpoint of $uw$ and note that the angle at $z$
906: is twice that at $v$:
907: $\angle uzw = 2 \angle z'zw = 2 \angle uvw$.
908: This implies that the triangles $ww'v$ and $wz'z$ are similar,
909: and therefore $\dist{z'}{w} / R = H / \dist{v}{w}$.
910: It follows that the circumradius of $uvw$ is
911: \begin{eqnarray*}
912:   R  ~=~  \frac{\dist{u}{w} \ \dist{v}{w}}{2 H} .
913: \end{eqnarray*}
914: There are three ways to write twice the area as the product of an edge length
915: and the distance of the third vertex from the line of that edge:
916: $\dist{u}{v} \ H = \dist{u}{w} \ \dist{v}{v'} = \dist{v}{w} \ \dist{u}{u'}$.
917: Hence, the circumradius is also
918: \begin{eqnarray*}
919:   R  ~=~  \frac{\dist{u}{v} \ \dist{u}{w}}{2 \dist{u}{u'}}
920:     ~=~ \frac{\dist{u}{v} \ \dist{v}{w}}{2 \dist{v}{v'}} .
921: \end{eqnarray*}
922: \begin{figure}[hbt]
923:   \vspace*{0.1in}
924:   \centering
925:   \centerline{\includegraphics[height=1.8in]{Figs/radius_height}}
926:   \caption{The triangle $uvw$ is similar to $wz'z$, which implies a relation
927:            between the height $H$ and the circumradius $R$}
928:   \label{fig:radius_height}
929: \end{figure}
930: For the remainder of this section, we use indices 0 and 1 for points, heights
931: and radii at times $t_0$ and $t_1$.
932: The above equations for the circumradius imply
933: \begin{eqnarray*}
934:   \frac{R_1}{R_0}  ~=~
935:      \frac{\dist{u_1}{w_1}}{\dist{u_0}{w_0}}
936:      \frac{\dist{v_1}{w_1}}{\dist{v_0}{w_0}}
937:      \frac{\dist{w_0}{w'_0}}{\dist{w_1}{w'_1}} .
938: \end{eqnarray*}
939: Assuming $H_0 = \dist{w_0}{w_0'}$ is the height at time $t_0$,
940: we have $H_1 \leq \dist{w_1}{w_1'}$ at time $t_1$.
941: We can therefore use the Length Lemma to bound the first two ratios
942: and the Height Lemma to bound the third to get
943: \begin{eqnarray}
944:   \frac{R_1}{R_0}  ~<~  \frac{1}{(1-\theta)^3} .
945:   \label{eqn:radius-bound}
946: \end{eqnarray}
947: We now choose $\theta$ such that a triangle that satisfies [U] for $Q = Q_0$
948: at time $t_0$ is guaranteed to satisfy [U] for $Q = Q_{1}$ at time $t_1$.
949: Using $R_1 < R_0 / (1-\theta)^3$ from (\ref{eqn:radius-bound}) and
950: $(1-\theta) \varrho_0 \leq \varrho_1$ from (\ref{eqn:length_scale}), we note
951: that $R_1 / \varrho_1 < C Q_1$ is implied by
952: $R_0 / (1-\theta)^4 \leq C Q_1 \varrho_0$.
953: In other words,
954: \begin{eqnarray}
955:   \theta  ~=~  1 - \sqrt[4]{R_0 / (C Q_1 \varrho_0)}
956:   \label{eqn:triangle-theta}
957: \end{eqnarray} 
958: is sufficiently small.
959: It is convenient to write the circumradius of the triangle $u_0 v_0 w_0$
960: as a fraction of the upper bound in [U]:
961: $R_0 = C Q_0 \varrho_0 / A$ with $A > 1.0$.
962: Then, $\theta = 1 - \sqrt[4]{Q_0 / (A Q_1)}$.
963: Table \ref{tab:triangle_constants} shows the values of $\theta$
964: and $\Delta t$ for a few values of $A$.
965: \begin{table}[hbt]
966:  \centering
967:  \caption{For triangles, the values of $\theta$ and $\Delta t$ for
968:          $Q_0 = 1.6$, $Q_1 = 2.3$ and a few typical values of $A$}
969:  \label{tab:triangle_constants}
970:  \begin{tabular}{|r||r|r|} \hline
971:    \multicolumn{1}{|c||}{$A$} 
972:          & \multicolumn{1}{c|}{$\theta$}
973:                             &  \multicolumn{1}{c|}{$\Delta t/\varrho_0^2$}  \\ \hline \hline
974:    $1.0$ &  $0.086\ldots$   &           $0.165\ldots$  \\ 
975:    $1.5$ &  $0.174\ldots$   &           $0.319\ldots$  \\
976:    $2.0$ &  $0.232\ldots$   &           $0.410\ldots$  \\
977:    $2.5$ &  $0.273\ldots$   &           $0.472\ldots$  \\
978:    $3.0$ &  $0.306\ldots$   &           $0.518\ldots$  \\
979:    $3.5$ &  $0.332\ldots$   &           $0.554\ldots$  \\
980:    $4.0$ &  $0.354\ldots$   &           $0.583\ldots$  \\ \hline
981:  \end{tabular}
982: \end{table}
983: 
984: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
985: \section{Discussion}
986: \label{sec5}
987: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
988: 
989: The main contribution of this paper is the introduction of relaxed scheduling
990: as a paradigm for maintaining moving or deforming data,
991: and the demonstrations of its applicability to scheduling edge contractions
992: and vertex insertions maintaining skin surfaces.
993: 
994: \paragraph{Algorithm design.}
995: We view the dynamic skin triangulation algorithm, of which relaxed scheduling
996: is now a part, as an interesting exercise in rational algorithm design.
997: What are the limits for proving meshing algorithms correct?
998: This design exercise gives us a glimpse on how complicated meshing problems can be.
999: Perhaps more importantly, it illustrates what it might take to prove other
1000: meshing algorithms correct.
1001: We especially highlight the role of constant parameters in the algorithm
1002: and how they control the algorithm as well as the constructed mesh.
1003: In our example, the important parameters are $C$,
1004: which controls how closely the mesh approximates the surface,
1005: and $Q$, which controls the quality of the mesh.
1006: The effort of proving the various pieces of the algorithm correct
1007: has lead to inequalities for these parameters.
1008: In other words, we have identified a feasible region which is necessary
1009: for our proofs and sufficient for the correctness of the algorithm.
1010: The detailed knowledge of this feasible region has inspired the idea
1011: of relaxed scheduling, and it was necessary to formulate it in detail
1012: and to prove its correctness.
1013: %
1014: Many meshing algorithms are based on parameters that are fine-tuned
1015: in the experimental phase of software design.
1016: We suggest that in the absence of detailed knowledge of limits,
1017: fine-tuning is a necessary activity that gropes for a place in the
1018: feasible region where correctness is implied.
1019: Of course, it might happen that this region is empty, but this is
1020: usually difficult to determine.
1021: 
1022: \paragraph{Future work.}
1023: It is not our intention to criticize work in mesh generation for the
1024: lack of correctness proofs.
1025: Indeed, it would be more appropriate to criticize our own work for the
1026: lack of generality.
1027: Although we laid out a complete algorithm for maintaining the mesh
1028: of a deforming surface, we are a far cry from being able to prove its
1029: correctness for any surface other than the skin surface
1030: introduced in \cite{Ede99}.
1031: We have also not been able to extend the algorithm beyond the
1032: deformations implied by growing the spheres that define the surface.
1033: For example, it would be desirable to maintain the mesh for deformations
1034: used for morphing as described in \cite{CEF01}.
1035: Generalizing the algorithm to include this application and proving
1036: it correct may be within reach.
1037: 
1038: Another worthwhile task is the implementation of relaxed scheduling
1039: as part of the dynamic skin algorithm.
1040: Are our lower bounds for the necessary $\Delta t$ sufficient to eliminate
1041: edge contractions and vertex insertions as a bottleneck of the algorithm?
1042: Can these lower bounds be improved in any significant manner?
1043: Can we improve the performance by fine-tuning the parameters, in particular
1044: $Q_0$ and $Q_1$, while staying within the proved feasible region?
1045: 
1046: 
1047: %%%%%%%%%%%%%%%%%%%%%%%%%%%
1048: \section*{Acknowledgments}
1049: %%%%%%%%%%%%%%%%%%%%%%%%%%%
1050: The authors thank Robert Bryant for helpful discussions concerning the
1051: proof of the Length Lemma.
1052: 
1053: 
1054: %%%%%%%%%%%%%%%%%%%%%%%%%%%
1055: \begin{thebibliography}{[MT1]}
1056: %%%%%%%%%%%%%%%%%%%%%%%%%%%
1057: 
1058: {\small
1059: 
1060: \bibitem{CDES01}
1061: {\sc H.-L.\ Cheng, T.\ K.\ Dey, H.\ Edelsbrunner and J.\ Sullivan.}
1062: Dynamic skin triangulation.
1063: \emph{Discrete Comput.\ Geom.} {\bf 25} (2001), 525--568.
1064: 
1065: \bibitem{Con83}
1066: {\sc M.\ L.\ Connolly.}
1067: Analytic molecular surface calculation.
1068: \emph{J.\ Appl.\ Crystallogr.} {\bf 6} (1983), 548--558.
1069: 
1070: \bibitem{CEF01}
1071: {\sc H.-L.\ Cheng, H.\ Edelsbrunner and P.\ Fu.}
1072: Shape space from deformation.
1073: \emph{Comput.\ Geom.\ Theory Appl.} {\bf 19} (2001), 191--204.
1074: 
1075: \bibitem{Che93}
1076: {\sc L.\ P.\ Chew}.
1077: Guaranteed-quality mesh generation for curved surfaces.
1078: {\em In} Proc.\ 9th Ann.\ Sympos.\ Comput.\ Geom., 1993, 274--280.
1079: 
1080: %%\bibitem{Cre84}
1081: %%{\sc T.\ E.\ Creighton.}
1082: %%\emph{Proteins.  Structures and Molecular Principles.}
1083: %%Freeman, New York, 1984.
1084: 
1085: \bibitem{Ede99}
1086: {\sc H.\ Edelsbrunner.}
1087: Deformable smooth surface design.
1088: \emph{Discrete Comput.\ Geom.} {\bf 21} (1999), 87--115.
1089: 
1090: \bibitem{EdMu94}
1091: {\sc H.\ Edelsbrunner and E.\ P.\ M\"{u}cke.}
1092: Three-di\-men\-sion\-al alpha shapes.
1093: \emph{ACM Trans.\ Graphics\/} {\bf 13} (1994), 43--72.
1094: 
1095: \bibitem{EdSh97}
1096: {\sc H.\ Edelsbrunner and N.\ R.\ Shah.}
1097: Triangulating topological spaces.
1098: \emph{Internat.\ J.\ Comput.\ Geom.\ Appl.} {\bf 7} (1997), 365--378.
1099: 
1100: \bibitem{LeRi71}
1101: {\sc B.\ Lee and F.\ M.\ Richards.}
1102: The interpretation of protein structures: estimation of
1103:   static accessibility.
1104: \emph{J.\ Mol.\ Biol.} {\bf 55} (1971), 379--400.
1105: 
1106: }
1107: 
1108: \end{thebibliography}
1109: 
1110: 
1111: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1112: %% \clearpage
1113: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1114: %%\paragraph{Things to do or think about.}
1115: %%\begin{itemize}\denselist
1116: %%\end{itemize}
1117: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1118: 
1119: 
1120: %\newpage
1121: \section*{Appendix}
1122: 
1123: \vspace*{-.2in}
1124: 
1125: \begin{table}[hbt]
1126:   \centering
1127:   \caption{Notation for important geometric concepts,
1128:            functions, variables, and constants}
1129:   \label{tab:Notation}
1130:   \begin{tabular}{ll}
1131:     $\wdist{i} : \Rspace^3 \rightarrow \Rspace$
1132:                          &  weighted (square) distance function      \\
1133:     $S_i = (z_i, r_i)$   &  zero-set of $\wdist{i}$;                 
1134:                           sphere with center $z_i$ and radius $r_i$\\
1135:     $\Fset$              &  convex hull of spheres $S_i$             \\
1136:     $F = \env{\sqrt{\Fset}}$ &  skin surface                         \\
1137:     $\kappa, \varrho = 1/\kappa$
1138:                          &  maximum curvature, length scale          \\
1139:     $Q_0 \leq Q \leq Q_1$&  constant controlling quality             \\
1140:     $\Eps, C, h, \ell, m$&  additional constants                     \\
1141:                          &                                           \\
1142:     $g: \Rspace^3 \rightarrow \Rspace$
1143:                          &  point-wise min of the $2f-f(z)$          \\
1144:     $F(t) = g^{-1}(t)$   &  skin surface at time $t$                 \\
1145:     $t, \theta$          &  time parameter, relative travel distance    \\
1146:     $[t_0, t_1]$         &  time interval                            \\
1147:     $\Delta t = t_1-t_0$ &  duration                                 \\
1148:     $u, u', \overline{u}$ & point, projection, reflection            \\
1149:     $\nabla g_u, \dot{u}$ & gradient, velocity vector                \\
1150:     $uv, uvw, H, R$      &  edge, triangle, height, radius
1151:   \end{tabular}
1152: \end{table}
1153: 
1154: 
1155: \end{document}
1156: