Contents Chapter 1. Introduction by Morten Dæhlen 1 Chapter 2. Triangulation Preliminaries 2.1. Notation and Terminology 2.2. Properties of Triangulations 2.3. A Simple Triangulation Algorithm 2.4. Exercises 3 3 5 7 10 Chapter 3. Graphs and Data Structures 3.1. Graph Theoretic Concepts 3.2. Generalized Maps (G-maps) 3.3. Data Structures for Triangulations 3.4. A Minimal Triangle Based Data Structure 3.5. Triangle-Based Data Structure with Neighbours 3.6. Vertex-Based Data Structure with Neighbours 3.7. Half-Edge Data Structure 3.8. Dart-Based Data Structure 3.9. Notes on Object-Oriented Design and Implementation 3.10. Exercises 11 11 12 16 18 18 20 21 23 24 25 Chapter 4. Delaunay Triangulations and Voronoi Diagrams 4.1. Optimal Triangulations 4.2. Voronoi diagrams 4.3. Delaunay Triangulation Obtained from the Voronoi Diagram 4.4. The Circle Criterion 4.5. Equivalence of the Delaunay Criteria for Strictly Convex Quadrilaterals 4.6. Computing the Circumcircle Test 4.7. The Local Optimization Procedure (LOP) 4.8. Global Properties of the Delaunay Triangulation 4.9. Exercises 27 27 30 32 34 35 38 40 41 45 Chapter 5. Algorithms for Delaunay Triangulation 5.1. A Simple Algorithm Based on Previous Results 5.2. Radial Sweep 5.3. A Step-by-Step Approach for Making Delaunay Triangles 5.4. Incremental Algorithms 5.5. Inserting a Point into a Delaunay Triangulation 5.6. Point Insertion and Edge Swapping 5.7. Running Time of Incremental Algorithms 5.8. Point Location in a Triangulation 47 47 48 48 50 51 52 58 59 iii iv CONTENTS 5.9. Divide-and-Conquer 5.10. Exercises 61 63 Chapter 6. Data Dependent Triangulations 6.1. Motivation 6.2. Optimal Triangulations Revisited 6.3. The General Concept 6.4. Data Dependent Swapping Criteria 6.5. On Implementation of the LOP 6.6. Modified Local Optimization Schemes (MLOP) 6.7. Simulated Annealing 6.8. Exercises 65 65 66 68 70 73 74 74 78 Chapter 7. Constrained Delaunay Triangulation 7.1. Delaunay Triangulation of a Planar Straight-Line Graph 7.2. Generalization of Delaunay Triangulation 7.3. Algorithms for Constrained Delaunay Triangulation 7.4. Inserting an Edge into a CDT 7.5. Edge Insertion and Swapping 7.6. Inserting a Point into a CDT 7.7. Exercises 81 81 83 85 86 88 93 94 Chapter 8. Delaunay Refinement Mesh Generation1 8.1. Introduction 8.2. General Requirements for Meshes 8.3. Node Insertion 8.4. Splitting Encroached Segments 8.5. The Delaunay Refinement Algorithm 8.6. Minimum Edge Length and Termination 8.7. Corner-Lopping for Handling Small Input Angles 8.8. Spatial Grading 8.9. Exercises 95 95 97 98 101 104 107 112 114 114 Chapter 9. Programming Triangulations: The Triangulation Template Library (TTL) 9.1. Implementing The Half-Edge Data Structure 9.2. The Overall Design and the Adaptation Layer 9.3. Topological Queries and the Dart Class 9.4. Some Iterator Classes 9.5. Geometric Queries and the Traits Class 9.6. Geometric and Topological Modifiers 9.7. Generic Delaunay Triangulation 9.8. Conclusion 9.9. Exercises 117 118 120 122 126 127 131 133 141 142 Chapter 10. Least Squares Approximation of Scattered Data over Triangulations 143 1 Some of the illustrations in this issue of the chapter are taken from papers published in journals. It is explicitly mentioned in the figures’ captions when this is done. Other illustrations are in progress for later issues. CONTENTS 10.1. 10.2. 10.3. 10.4. 10.5. 10.6. 10.7. 10.8. Another formulation of surface triangulations Approximation on triangulations of subsets of data Existence and Uniqueness Sparsity and Symmetry Penalized Least Squares Smoothing Terms for Penalized Least Squares Approximation over General Triangulatons Exercises Bibliography v 143 144 146 147 148 149 155 157 161