A Comparison of Two Fully-Dynamic Delaunay Triangulation Methods

Similar documents
Organizing Spatial Data

1. Meshes. D7013E Lecture 14

A New Progressive Lossy-to-Lossless Coding Method for 2.5-D Triangle Mesh with Arbitrary Connectivity

Chapter 11: Indexing and Hashing

COMPUTING CONSTRAINED DELAUNAY

Chapter 12: Indexing and Hashing. Basic Concepts

Chapter 12: Indexing and Hashing

2-3 Tree. Outline B-TREE. catch(...){ printf( "Assignment::SolveProblem() AAAA!"); } ADD SLIDES ON DISJOINT SETS

Chapter 12: Indexing and Hashing

Insertions and Deletions in Delaunay Triangulations using Guided Point Location. Kevin Buchin TU Eindhoven

REGION BASED SEGEMENTATION

B-Trees. Version of October 2, B-Trees Version of October 2, / 22

Algorithms. Deleting from Red-Black Trees B-Trees

Intro to DB CHAPTER 12 INDEXING & HASHING

CS127: B-Trees. B-Trees

Database System Concepts, 6 th Ed. Silberschatz, Korth and Sudarshan See for conditions on re-use

CS 532: 3D Computer Vision 14 th Set of Notes

Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan See for conditions on re-use

CS 465 Program 4: Modeller

Systems Infrastructure for Data Science. Web Science Group Uni Freiburg WS 2014/15

Chapter 11: Indexing and Hashing

CS535 Fall Department of Computer Science Purdue University

Chapter 11: Indexing and Hashing

Trees. Q: Why study trees? A: Many advance ADTs are implemented using tree-based data structures.

Chapter 12 Advanced Data Structures

Delaunay Triangulation

More B-trees, Hash Tables, etc. CS157B Chris Pollett Feb 21, 2005.

CS301 - Data Structures Glossary By

Chapter 11: Indexing and Hashing

Notes in Computational Geometry Voronoi Diagrams

Multidimensional Indexes [14]

V Advanced Data Structures

Data Structures and Algorithms (DSA) Course 9 Lists / Graphs / Trees. Iulian Năstac

Physical Level of Databases: B+-Trees

Point Location in Delaunay Triangulations

Mesh Generation. Quadtrees. Geometric Algorithms. Lecture 9: Quadtrees

Extensible Point Location Algorithm

Chapter 11: Indexing and Hashing" Chapter 11: Indexing and Hashing"

Quadtrees and Meshing

V Advanced Data Structures

CMSC 425: Lecture 10 Geometric Data Structures for Games: Index Structures Tuesday, Feb 26, 2013

Collision Detection. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

Chapter 12: Indexing and Hashing (Cnt(

Material You Need to Know

Notes on Binary Dumbbell Trees

Preferred directions for resolving the non-uniqueness of Delaunay triangulations

Tree-Structured Indexes

Outline of the presentation

Delaunay Triangulations

Towards Load Balanced Distributed Transactional Memory

The Adaptive Radix Tree

Delaunay Triangulations. Presented by Glenn Eguchi Computational Geometry October 11, 2001

Binary Trees. Height 1

R-Trees. Accessing Spatial Data

CS 350 Algorithms and Complexity

K-structure, Separating Chain, Gap Tree, and Layered DAG

CSCI2100B Data Structures Trees

Ray Tracing Acceleration Data Structures

Remember. 376a. Database Design. Also. B + tree reminders. Algorithms for B + trees. Remember

10/23/12. Outline. Part 6. Trees (3) Example: A B-tree of degree 5. B-tree of degree m. Inserting 55. Inserting 55. B-Trees External Methods

Chapter 17 Indexing Structures for Files and Physical Database Design

Happy Endings for Flip Graphs. David Eppstein Univ. of California, Irvine Computer Science Department

Database index structures

On the data structures and algorithms for contact detection in granular media (DEM) V. Ogarko, May 2010, P2C course

UNIT III BALANCED SEARCH TREES AND INDEXING

Wolfgang Mulzer Institut für Informatik. Planar Delaunay Triangulations and Proximity Structures

A Comparison of Sequential Delaunay Triangulation Algorithms

Solid Modeling. Thomas Funkhouser Princeton University C0S 426, Fall Represent solid interiors of objects

DDS Dynamic Search Trees

Striped Grid Files: An Alternative for Highdimensional

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday

Trees can be used to store entire records from a database, serving as an in-memory representation of the collection of records in a file.

Copyright 1998 by Addison-Wesley Publishing Company 147. Chapter 15. Stacks and Queues

CS Fall 2010 B-trees Carola Wenk

Multi-way Search Trees. (Multi-way Search Trees) Data Structures and Programming Spring / 25

Heaps. 2/13/2006 Heaps 1

An AVL tree with N nodes is an excellent data. The Big-Oh analysis shows that most operations finish within O(log N) time

CPSC / Sonny Chan - University of Calgary. Collision Detection II

CS 270 Algorithms. Oliver Kullmann. Binary search. Lists. Background: Pointers. Trees. Implementing rooted trees. Tutorial

B+ TREES Examples. B Trees are dynamic. That is, the height of the tree grows and contracts as records are added and deleted.

Storage hierarchy. Textbook: chapters 11, 12, and 13

CS 310 B-trees, Page 1. Motives. Large-scale databases are stored in disks/hard drives.

Simulation in Computer Graphics Space Subdivision. Matthias Teschner

Determining Differences between Two Sets of Polygons

Foundations of Multidimensional and Metric Data Structures

Lecture 3 February 9, 2010

CMPS 2200 Fall 2017 B-trees Carola Wenk

Polygon Triangulation. (slides partially by Daniel Vlasic )

Red-Black, Splay and Huffman Trees

Integer Programming ISE 418. Lecture 7. Dr. Ted Ralphs

Recursion Problems. Warm Ups. Enumeration 1 / 7

B-Trees. Disk Storage. What is a multiway tree? What is a B-tree? Why B-trees? Insertion in a B-tree. Deletion in a B-tree

Geometric Modeling. Mesh Decimation. Mesh Decimation. Applications. Copyright 2010 Gotsman, Pauly Page 1. Oversampled 3D scan data

Cpt S 223 Fall Cpt S 223. School of EECS, WSU

Question Bank Subject: Advanced Data Structures Class: SE Computer

Multi-way Search Trees! M-Way Search! M-Way Search Trees Representation!

Surface Simplification Using Quadric Error Metrics

Course Review. Cpt S 223 Fall 2009

CS133 Computational Geometry

Collision Detection based on Spatial Partitioning

Transcription:

A Comparison of Two Fully-Dynamic Delaunay Triangulation Methods Michael D Adams Department of Electrical and Computer Engineering University of Victoria Victoria, BC, V8W 3P6, Canada Web: http://wwweceuvicca/ mdadams E-mail: mdadams@eceuvicca August 2009 Michael D Adams (University of Victoria) CCCG 2009 August 2009 1

Outline 1 Background 2 Proposed Methods 3 Experimental Results 4 Conclusions Michael D Adams (University of Victoria) CCCG 2009 August 2009 2

Motivation: Mesh-Based Image Representations for image compression, growing interest in image representations based on arbitrary sampling (ie, sampling at arbitrary subset of points from lattice) select small subset of sample points; construct Delaunay triangulation (DT) of subset of sample points and form interpolant over each face of resulting DT 300 250 200 150 100 50 0 70 60 300 200 100 0 70 50 60 (a) (d) 40 30 20 10 0 0 (e) 10 20 (b) 30 40 50 60 70 50 40 30 20 10 0 0 (c) (a) The original image and its (b) corresponding surface; (c) a mesh approximation of the image surface, (d) its corresponding image-domain triangulation, and (e) the image reconstructed from the mesh Michael D Adams (University of Victoria) CCCG 2009 August 2009 3 10 20 30 40 50 60 70

Motivation (Continued) since images usually sampled on (truncated) lattice, means is needed for choosing good subset of sample points to use for representation purposes solution to sample-point selection problem typically requires use of fully-dynamic DT method fully dynamic: incremental insertion and deletion of points, where distribution of points not known in advance, can change over time, and can be highly nonuniform although many DT methods proposed to date, relatively few suitable for use in fully-dynamic situations (eg, some methods require all points known in advance, such as divide-and-conquer approaches) Michael D Adams (University of Victoria) CCCG 2009 August 2009 4

General Approach to DT points to be triangulated assumed to fall on integer lattice (ie, have integer coordinates), although proposed methods trivially extend to any lattice triangulation domain D square with power-of-two dimensions based on incremental algorithm described by Guibas and Stolfi: L Guibas and J Stolfi Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams ACM Transactions on Graphics, 4(2):74 123, Apr 1985 to ensure unique DT produced, preferred-directions technique of Dyken and Floater employed: C Dyken and M S Floater Preferred directions for resolving the non-uniqueness of Delaunay triangulations Computational Geometry Theory and Applications, 34:96 101, 2006 proposed methods differ only in point-location strategy Michael D Adams (University of Victoria) CCCG 2009 August 2009 5

DT Primitives three basic primitives: insertvertex, findvertex, deletevertex insertvertex inserts new vertex into triangulation 1 locates candidate starting point for oriented walk using point-location strategy 2 performs oriented walk to find face containing new vertex 3 inserts new vertex into point-location structure 4 updates DT by performing edge flips to restore Delaunay property 5 sets active vertex to newly inserted vertex findvertex locates vertex already in triangulation 1 located specified vertex using point-location structure, possibily in conjunction with oriented walk 2 sets active vertex to located vertex deletevertex deletes vertex (that has already been located) from triangulation 1 updated DT by removing vertex and performing edge flips to restore Delaunay property 2 deletes vertex from point-location structure 3 sets active vertex to any vertex that shared edge with deleted vertex depending on circumstances, may be necessary to use findvertex and deletevertex in order to delete vertex Michael D Adams (University of Victoria) CCCG 2009 August 2009 6

Bucket Method based on BucketInc method from Su and Drysdale: P Su and R L S Drysdale A comparison of sequential Delaunay triangulation algorithms Computational Geometry Theory and Applications, 7(5 6):361 385, Apr 1997 triangulation domain partitioned using uniform square grid into square regions called buckets s s s s s s point location structure consists of 2-D bucket array, with on entry per bucket each entry in bucket array is doubly-linked list of vertices falling in bucket adding/removing vertex from bucket array done in straightforward manner by inserting/removing node from appropriate list each list node has pointer to corresponding vertex object in DT and vice versa Michael D Adams (University of Victoria) CCCG 2009 August 2009 7

Bucket Method (Continued) average number η of vertices per bucket required to satisfy c η < 4c, where c is fixed parameter of method if preceding condition violated (due to vertex insertion/deletion), bucket grid spacing halved or doubled (as appropriate) in each dimension, changing η by factor of 4 when grid spacing decreased (during vertex insertion): 1 allocate new larger bucket array 2 move each vertex from vertex list in old bucket array to correct list in new bucket array when grid spacing increased (during vertex deletion): 1 allocate new smaller bucket array 2 merge groups of old buckets (in groups of four) into new larger buckets by splicing vertex lists of old buckets into new vertex lists since bucket may contain large number of points, findvertex employs oriented walk starting from first vertex in bucket s vertex list point location: outward spiral search for nonempty bucket starting from bucket containing point when nonempty bucket found, first vertex in vertex list used as search result Michael D Adams (University of Victoria) CCCG 2009 August 2009 8

Tree Method assume triangulation domain D of form {0,1,2 S 1} 2, S N triangulation domain D hierarchically partitioned, using quadtree, into square regions called cells root cell of quadtree chosen as D remainder of cells in quadtree determined by recursively splitting root cell cell splitting: cell split at midpoint in each of x and y directions to produce four child cells D point-location data structure is tree associated with quadtree partitioning Michael D Adams (University of Victoria) CCCG 2009 August 2009 9

Tree Example Vertices Corresponding Tree y 7 6 5 4 3 2 1 0 v 2 v 6 v 5 v 4 v 0 v 1 0 1 2 3 4 5 6 7 x v 0 v 5 v 4 v 6 each node in tree associated with cell in quadtree partitioning having same relative position with respect to root each node in tree contains pointer to DT vertex contained in node s cell (as well as pointer to node s parent and pointers to node s four children) for leaf node, cell always contains exactly one vertex for nonleaf node, cell always contains more than one vertex one-to-one correspondence between leaf nodes and DT vertices tree can have at most S + 1 levels Michael D Adams (University of Victoria) CCCG 2009 August 2009 10

Point-Location Part of insertvertex (Complex Case) y 7 v 2 6 5 4 3 2 insert vertex v = (6,6) v 4 v 1 0 v 0 v 1 0 1 2 3 4 5 6 7 x 1 initial state 2 find node q furthest from root whose cell contains v q 3 move q downwards in tree until v not in cell of q 4 add node n corresponding to v as sibling of q q v n q Michael D Adams (University of Victoria) CCCG 2009 August 2009 11

Point-Location Part of deletevertex (Complex Case) y delete vertex v 7 v 2 6 5 4 3 2 v 4 v 1 0 v 0 v 1 0 1 2 3 4 5 6 7 x 1 initial state v 2 record parent p of node n corresponding to v p v n 3 delete n; record only child c of p 4 move c upwards in tree 5 ensure no nodes on path from c to root reference n p c c c Michael D Adams (University of Victoria) CCCG 2009 August 2009 12

Experimental Results compare bucket method for c = 2 and c = 025 and tree method identical software framework used to compare methods, only point-location code changed simple benchmark application: 1 all points inserted into triangulation via insertvertex 2 all vertices located using findvertex 3 all of the vertices deleted using deletevertex provide results for two datasets: 1 planets: 140025 points, nonuniformly distributed, domain size 1500 1867 2 uniform: 104861 points, uniformly distributed, domain size 2048 2048 planets dataset (rotated) Michael D Adams (University of Victoria) CCCG 2009 August 2009 13

Results for planets and uniform datasets Comparison of triangulation methods for planets dataset Quantity Tree Bucket(2) Bucket(025) avg insertvertex time (us) 81534 88709 80983 avg deletevertex time (us) 79919 93084 91362 avg findvertex time (us) 07221 23008 15119 DT structure size (MB) 4608 4306 4406 point-location structure size (MB) 495 193 293 avg orientation tests/insertvertex 5356 1033 5972 including point-location structure Comparison of triangulation methods for uniform dataset Quantity Tree Bucket(2) Bucket(025) avg insertvertex time (us) 81359 77663 79021 avg deletevertex time (us) 77102 88306 89916 avg findvertex time (us) 07246 16782 11145 DT structure size (MB) 3484 3210 3398 point-location structure size (MB) 406 132 320 avg orientation tests/insertvertex 5498 6621 5252 including point-location structure Michael D Adams (University of Victoria) CCCG 2009 August 2009 14

Summary of Results considering both uniform and nonuniform cases, for insertvertex, tree method from 3% slower to 9% faster than bucket method for nonuniform case, tree method comparable to bucket(025) (within 1%) and significantly faster than bucket(2) scheme (by about 9%) for deletevertex, tree method consistently faster (by about 14% to 16%) for findvertex, tree method faster (by about 50% to 200%) performance of bucket method depends fairly heavily on choice of c parameter for even more highly nonuniform point distributions (like some in Su and Drysdale paper), tree method performs even better relative to bucket method Michael D Adams (University of Victoria) CCCG 2009 August 2009 15

Conclusions proposed two fully-dynamic DT methods (bucket and tree methods) neither method superior to other in all cases tree method has some advantages that make its use attractive in some applications unlike bucket method, tree method performs well for wide variety of point distributions without need for any special input parameters use of tree method advantageous in situations where point distribution highly unpredictable as future work, would be worthwhile to compare tree method to other schemes such as Delaunay hierarchy used in CGAL: O Devillers The Delaunay hierarchy International Journal of Foundations of Computer Science, 13(2):163 180, 2002 Michael D Adams (University of Victoria) CCCG 2009 August 2009 16

Michael D Adams (University of Victoria) CCCG 2009 August 2009 17

Supplemental Slides Michael D Adams (University of Victoria) CCCG 2009 August 2009 18

Point-Location Part of insertvertex (Simple Case) y 7 v 2 6 5 4 3 2 insert vertex v = (1,3) v v 4 1 0 v 0 v 1 0 1 2 3 4 5 6 7 x 1 initial state 2 find node q furthest from root whose cell contains v q 3 add new node n for vertex v as child of q q v 0 v 5 v 4 n Michael D Adams (University of Victoria) CCCG 2009 August 2009 19

Point-Location Part of deletevertex (Simple Case) y delete vertex v 7 v 2 6 5 4 3 2 v v 4 1 0 v 0 v 1 0 1 2 3 4 5 6 7 x 1 initial state v 0 v v 4 2 record parent p of node n corresponding to v p v 0 v v 4 n 3 delete n 4 ensure nodes along path from p to root do not reference n p p Michael D Adams (University of Victoria) CCCG 2009 August 2009 20