Hierarchical triangulations: Dobkin/Kirpatrick Hierarchies

Resources:

  1. O'Rourke (``Computational Geometry in C''), section 7.5
  2. D. Dobkin and D. Kirpatrick, ``Fast detection of polyhedral intersections', Journal of Algorithms, 6, 381-192, 1995.
  3. D. Dobkin and D. Kirpatrick, ``Determining the separation of preprocessed polyhedra -- a unified approach'', ICALP-90, LNCS 443, 400-413, Springer Verlag, Berlin, 1990.

Why?

What:

Now remove independent sets of nodes, to build the triangulation at the next level up in the tree:

The only problem is that the new regions at this level are not neccessarily valid triangulations, although the previous level was.  We must retriangulate:


Repeat this node removal and triangulation until there is only one large triangle at the top.  Here is one possible next step for this triangulation, hierarchy, which does not require retriangulation after removing the node:

Linking into a hierarchy

How do we link these levels?  Quad/kd trees etc. are straightforward, because the mapping from a parent region to a child region is one-to-many.  But it is possible, because of the retriangulation step, to make a triangulation hierarchy so that a child triangle at one level has more than one parent triangle at the next level whose areas overlap the child's areas.:
 
Each parent triangle has multiple children triangles in the previous level of the hierarchy.
At the same time, each child triangle can have multiple parent triangles -- compare this to quadtrees or kd-trees, where each child has only one parent.
 

 

We link the levels through the node that was removed. When we retriangulate the region after removing a node V, connect each new ``parent'' face to that node V whose removal caused the face to be created.

At each level, faces that remain from the last level are simply connected through to the same face in that level.

For each level, every node is also connected to its adjacent faces. Thus, since parent nodes are connected to the vertex V whose removal from the previous level caused the parent to be created, each parent is connected to a (non-disjoint) set of children triangles via V's adjacency links at the previous level.

 

Analysis:

Constructing: It was proved by Edelsbrunner that we can remove at least n/18 of the vertices when we remove an independent set(if we pick the right ones to remove!) of vertices from a polytope graph (e.g. the Delaunay triagulation in 2D or 3D). Thus we are guaranteed a tree with O(log N) depth. Also, because of the constant fraction reduction at each step, we can construct the hierarchy in O(N) time and space.

Uses:


[Start] [Back]

Douglas De Couto
decouto@graphics.lcs.mit.edu

Joshua Napoli
napoli@mit.edu

Last modified: Tue Mar 17 09:49:26 1998