Full text: Proceedings, XXth congress (Part 2)

nbul 2004 
position is 
edron); a 
€: and a 
y the two 
haring the 
oining the 
oi cell. 
id the DT 
>, Its dual 
from an 
manage 
constant 
store and 
extracted 
points in 
eeded to 
and then 
used to 
ifies the 
zation. If 
ust three 
or four 
Figure 3 
rahedron 
here the 
2 or 3 
of flips. 
rahedron 
? Inverse 
trahedra. 
a by one 
ahedron 
different 
T or to 
hod we 
earliest 
in two 
  
  
  
Figure 4. Flips 23 and 32. 
Its generalization to three dimensions is straightforward as the 
method uses only the adjacency relationships between the 
triangles. The idea is: starting from a given tetrahedron f, we 
move to one of its neighbours f, if the query point x and /; are on 
the same side of the triangular face shared by / and f,. We 
continue walking from tetrahedron to tetrahedron until /, has no 
such neighbour, which means that /, contains x. The method is 
simple to implement as only one function — one that determines 
if a point is left or right of a plane in 3D — is needed and no 
extra storage is required. It is also very efficient in practice, as 
Mücke et al. (1999) show. 
3.3 Construction Algorithms 
Many different algorithms can be used to construct a 3D VD. 
One solution, as described in Brown (1979), involves firstly 
constructing the convex hull of the set of points in (d + 1) 
dimensions — 4D in our case — and then projecting the result 
one dimension lower to get the Delaunay tetrahedralization. 
Implementations of convex hull algorithms in higher 
dimensions are readily available, e.g. Qhull (Barber et al, 
1996). Another solution is using the DeWall algorithm (Cignoni 
et al, 1998), which is based on the divide-and-conquer 
paradigm. These algorithms might be useful for the construction 
of a DT, but local modifications (insertion of a new point, 
deletion or movement of one) are either slow and complicated, 
or simply impossible. 
Algorithms that allow local modifications are called 
‘incremental insertion algorithms’ and they proceed as follow to 
construct a DT. Starting from a valid DT, each point of a set is 
added one at a time and the tetrahedralization is updated after 
each insertion. To insert a single point x in a DT, the following 
steps are required. First, the tetrahedron that contains x must be 
identified with the point location algorithm described in the 
previous section. Then, all the tetrahedra whose circumspheres 
contain x must be deleted and replaced by new ones. The first 
increment insertion algorithm, valid in any dimensions, was 
developed by Watson (1981). His idea is simple: all the 
tetrahedra that 'conflict' with x are deleted from the DT and then 
the hole thus created is filled by creating edges linking x to 
every vertex of the hole (they prove that the new resulting 
tetrahedra are guaranteed to be Delaunay). Although the 
algorithm is simple to implement, the fact that the 
tetrahedralization is temporarily destroyed can corrupt the 
algorithm. Field (1986) explains the problems that are 
encountered when implementing the method. 
Another incremental insertion algorithm, due to Joe (1991), is 
numerically more stable because a complete tetrahedralization 
is kept during the whole updating process. The conflicting 
tetrahedra are deleted and replaced by new ones by a sequence 
of flips. The first step is the insertion of x in the tetrahedron that 
contains it by using a flip!4. The four new tetrahedra are then 
added to a stack that will control the sequence of flips to 
705 
perform to restore the 'Delaunayness' in the tetrahedralization. 
Each tetrahedron on the stack must be tested against its 
neighbours, if it is not Delaunay then a flip — a flip23 or a 
flip32, depending on the configuration of adjacent tetrahedra — 
will destroy some tetrahedra and replace them by other ones 
(the new ones are then pushed on the stack). The algorithm 
terminates when the stack is empty. The time complexity of this 
algorithm, and of Watson's algorithm, is O(7) for a set of n 
points, not just for the insertion of a single point. This is worst- 
case optimal since a DT of n points can theoretically have up to 
O(n’) tetrahedra. 
3.4 Deletion Algorithms 
The deletion of a single vertex in a Delaunay tetrahedralization 
is often simply referred to as the ‘inverse of the incremental 
insertion algorithm’. Like the insertion operation, it is a local 
operation that involves modifying only some adjacent tetrahedra 
of a DT. Figure 5 illustrates a two-dimensional example where 
the vertex x is deleted from a Delaunay triangulation. Although 
the problem appears to be simple, it is a much more difficult 
task to implement than the insertion of a point, and very few 
algorithms can be found in the literature. 
   
7 S. 7 ^ Ha TL 
Figure 5. Left: x is the vertex to be deleted in a 2D Delaunay 
triangulation. Right: re-triangulation of the polygon. 
The most elegant algorithm, which is valid in any dimensions, is 
by Devillers (2002). In two dimensions, the method involves 
deleting all the triangles incident to the vertex x and re- 
triangulating the hole by using a priority queue of the potential 
triangles that could be used to fill the hole. Devillers' algorithm 
states that the potential triangle having the smallest power — the 
power is a geometric function defined in Aurenhammer (1987) 
— with respect to x is guaranteed to be Delaunay. Because the 
operation is local, the number of edges & incident to a vertex is 
usually used to analyse deletion algorithms. Devillers' method 
has a time complexity of O(k log A) in two dimensions. 
Although possible, the implementation of the algorithm in 3D 
requires many modifications to handle the degenerate cases, 
and, to our knowledge, has not been implemented yet. Because 
the number of tetrahedra present in a Delaunay 
tetrahedralization of m points varies depending on the 
configuration of the points, the time complexity of the method 
in 3D is O(r log &), where ¢ is the number of tetrahedra needed 
to fill the hole. A simpler solution involves keeping a list of all 
potential tetrahedra and testing (Delaunay empty circumsphere 
test) them against each vertex forming the hole. The resulting 
algorithm is slower — a time complexity of O(r &) — and an 
implementation can be found in CGAL (Devillers and Teillaud, 
2003). 
However, these methods temporarily destroy the 
tetrahedralization and some problems can arise. For this reason, 
we have developed a method that uses the flips described in 
Section 3.1 and an algorithm similar to the one implemented in 
CGAL. The methods works fine for most cases and we are 
currently working on making it fully robust for all the 
degenerate cases. 
 
	        
Waiting...

Note to user

Dear user,

In response to current developments in the web technology used by the Goobi viewer, the software no longer supports your browser.

Please use one of the following browsers to display this page correctly.

Thank you.