Three-Dimensional Shape Representation via Shock Flows - CiteSeerX

4 downloads 4847 Views 8MB Size Report
Recommended to the Graduate Council. Date . ... research and development in Geographical Information Systems. In 1998 he .... computer graphics, bio-medical engineering, architectural simulators, many of the new fields of ap- plications of ...
Three-Dimensional Shape Representation via Shock Flows by

Fr´ed´eric Fol-Leymarie B.Eng., Polytechnic School of Montreal, Canada, 1986 M.Eng., McGill University, Montreal, Canada, 1990

A dissertation submitted in partial fulfillment of the requirements for the Degree of Doctor of Philosophy in the Division of Engineering at Brown University

PROVIDENCE, RHODE ISLAND, U.S.A.

May 2003

c Copyright 2003 by Frederic F. Leymarie

iii

This dissertation by Fr´ed´eric Fol-Leymarie is accepted in its present form by the Division of Engineering as satisfying the dissertation requirements for the degree of Doctor of Philosophy

Date ........................

............................................................ Professor Benjamin B. Kimia, Director Division of Engineering

Recommended to the Graduate Council

Date ........................

............................................................ Professor David B. Mumford, Reader Division of Applied Mathematics

Date ........................

............................................................ Professor Franco P. Preparata, Reader Department of Computer Science

Approved by the Graduate Council

Date ........................

............................................................ Karen Newman, Ph.D. Dean of the Graduate School

iv

Vitae Fr´ed´eric Fol-Leymarie graduated from the Polytechnic School of Montreal in 1986 with a degree in electrical engineering, honors in aeronautics. In 1990 he finished a thesis at McGill University on bio-medical imaging, toward a Master’s of engineering degree, with Professor Martin Levine and Peter Noble as advisors. In 1991 he was at the Mathematical Morphology Center in Fontainebleau, France, as a visiting scientist. During the 1992-1994 period he was with the Center for Intelligent Machines at McGill. In mid-1994 he was hired by Thomson-CSF in Paris as a project manager for research and development in Geographical Information Systems. In 1998 he started his doctoral studies at Brown University.

v

Acknowledgments My PhD studies were supported in part from the USA NSF/KDI grant #BCS-9980091, in the form of a research-assistantship, and also by a PhD fellowship from IBM (one year, in 1999-2000). Without the support of my family and friends, none of this work would have been possible. Without the drive and direction provided by my advisor, Benjamin Kimia, little would have been possible as well. I am in debt to my thesis committee for their patience, as I struggled to finish the manuscript, and for their interest in my work.

Contents 1

2



Introduction 1.1 A Graph Structure for the 3D Medial Axis ( ) and Shape 1.2 Computational Approaches and the Shock Scaffold . . . . . 1.3 Main Contributions . . . . . . . . . . . . . . . . . . . . . . 1.4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

1 1 4 11 13

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

15 16 20 23 23

The Shock Scaffold 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Contact Spheres and Shock Points . . . . . . . . . . . . . . . . . 3.3 Shock Scaffold — Graph Definitions . . . . . . . . . . . . . . . 3.3.1 Explicit representation of shock sheet nodes . . . . . . . . 3.4 Other Definitions: Generators, Shock Geometry . . . . . . . . . . 3.4.1 Geometric Inputs as Generators . . . . . . . . . . . . . . 3.4.2 Geometry of Shocks: Static and Dynamic Representations 3.5 Scaffold for Unorganized Point Clouds . . . . . . . . . . . . . . : Planes and Midpoints . . . . . . . . . 3.5.1 Shock Sheets: 3.5.2 Shock Curves: : Lines and Triangle Circumcenters . . 3.5.3 Shock Vertices: : Tetrahedra Circumcenters . . . . . . 3.6 The shock scaffold and the Voronoi diagram of 3D point clouds . 3.6.1 Bounds on the shock scaffold elements . . . . . . . . . . 3.6.2 Convergence toward the of a surface . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

26 26 28 33 35 37 37 38 40 40 41 43 47 50 50

Lagrangian Computations for Unorganized Point Clouds 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Visibility Constraints, Clustering and Initial Shocks . . . . . . . . . . 4.2.1 Optimizing the Search: Layering and Generator Transmission 4.2.2 Initial set of and shocks . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

55 55 61 70 72



3



Background on Medial Axis based Shape Representations 2.1 Historical Developments and Applications of the 2.2 Computation of the Representation . . . . . . . . 2.2.1 Discrete versus Analytic Representations . . . 2.3 Curve-based Representations . . . . . . . . . . .



    



4

  

 

vi

. . . .

. . . .

. . . .

vii

4.3 4.4 4.5 5

Validation Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A Coarse Adaptive Bucketing Algorithm for Clustering . . . . . . . . . . . . . . Flow through Sheets and Curves to retrieve the Scaffold . . . . . . . . . . . . . .

Eulerian Computations for Unorganized Point Clouds 5.1 Beams and Local Propagations . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.2 Discretizing Huygens’ and Fermat’s Principles: Beams & Paths . 5.2 A Cellular Automatonfor 3D Uniform Wave Propagation . . . . . . . .  5.2.1 Initialization : Generators as sources of the propagation — Huygens’ step .  . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.2 Initialization  : Setting-up 1D beams . . . . . . . . . . . . . . 5.2.3 Initialization ): Setting-up 2D beams . . . . . . . . . . . . . .   : Setting-up 3D beams . . . . . . . . 5.2.4 Final initialization step 5.2.5 Main propagation loop . . . . . . . . . . . . . . . . . . . . . . . 5.2.6 Numerical complexity . . . . . . . . . . . . . . . . . . . . . . . 5.2.7 Exactness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.8 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Mixed Eulerian-Lagrangian Propagation . . . . . . . . . . . . . . . . . . 5.3.1 From Voxels to Chambers . . . . . . . . . . . . . . . . . . . . . 5.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .



6

7





. . . . . . . . . . . . . . . . . . . . Discrete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72 74 78 86 91 91 94 99 100 101 101 102 103 103 104 108 108 110 111

Scaffold Segregation and Surface Recovery 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Recent Surface Meshing Methods . . . . . . . . . . . . . . . . . . . . . . . 6.3 Surface Recovery via Shock Scaffold Segregation . . . . . . . . . . . . . . . 6.3.1 Sorting shock curves by ranking their associated triangular interpolant 6.3.2 Threshold selection . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.3 Removal of non-surface interpolants . . . . . . . . . . . . . . . . . 6.3.4 Recovery of coarse-scale shock curves from  

. . . . . . . . . . 6.3.5 Experimental Results . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

113 113 119 122 124 125 125 128 130

Extensions: Scaffold of Unorganized Polygonal Clouds 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Shock Sheets: Quadrics . . . . . . . . . . . . . . . . . 7.3 Shock Curves: Quartics . . . . . . . . . . . . . . . . . 7.4 Shock Vertices: Octics . . . . . . . . . . . . . . . . . . 7.5 Nodes of the Shock Scaffold: Sources, Relays and Sinks . . . . . . . . . 7.5.1 Nodes for Shock Sheets: 7.5.2 Nodes for Shock Curves: . . . . . . . . . . . . . . . . . . . 7.5.3 Nodes for Shock Vertices: 7.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . .

140 140 142 152 162 164 164 166 167 168

       

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

viii

8

Conclusion 169 8.1 Other Future Developments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

A Adaptive boxes for Bucketing A.1 Adaptive slicing along each axis . . . . . . . . . . . . . A.2 Queries . . . . . . . . . . . . . . . . . . . . . . . . . . A.2.1 Query of type 1: Bucket membership of a shock A.2.2 Query of type 2: Ball cover . . . . . . . . . . . A.3 Pseudocode . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

171 172 172 173 173 174

B Dynamics of creation of shock sheets for polygonal generators

176

Bibliography

182

Chapter 1

Introduction 1.1 A Graph Structure for the 3D Medial Axis (



) and Shape

*P1: The important role of shape in a range of tasks. A representation, i.e., a theory and model, is needed.

Understanding shape is fundamental to a number of tasks in pattern analysis and machine intelligence. For example, the recognition of objects and their function is often made possible via certain shape attributes: “the armchair,” the “flat bed,” the “cup’s handle.” On the other hand, object sculpting and modeling has been made more efficient by the development of shape descriptors, e.g., to convey the “flow of lines” of a drapery, the “wavy patterns” of a hair. Animations require shape structures upon which forces and feedback can be exercised. From molecules to galaxies, we need to probe the form of collections and aggregates of more fundamental elements. Machine tooling, computer graphics, bio-medical engineering, architectural simulators, many of the new fields of applications of computerized technologies require interaction with objects via some representation of their shape. *P2: From traditional shape models to the medial axis.

Traditional shape models, such as embodied in voxel or triangle-based rendering engines, have been successful until now, mainly in giving useful visualization functionalities. In order to provide for greater interactivity and data management capabilities, as well as to make recognition possible, other more sophisticated shape models, such as implicit polynomials [29], generalized cylinders [26], superquadrics and splines [242], have been proposed and studied over the years since the in) or skeleton representation of Blum [34] fancy of pattern analysis. Of these, the medial axis ( has been promulgated as a generic representation for describing shapes from the highly regular and inorganic, such as those crafted by humans or found in crystal aggregates, to the more irregular and organic, such as produced by nature: bodies, cells, leaves, arteries, etc. More specifically, the has shown great potential in object recognition, in solid modeling for designing and manipulating shapes, in organizing a cloud of points into surfaces, for volumetric mesh generation, in path planning, numerical tool machining, animation, etc. (Chapter 2 gives more background). On the one hand, the is based on a spatial layout which is thin and tends to lie midway inside or outside the object’s outline, with a branching structure related to the topology of the object, forming a “stick figure.” On the other hand, the encodes the time of formation of each point, by carrying along relative width properties via a radius function.











1

2



Figure 1.1: (a) Adapted from [34, Fig. 29. p. 252]: An example of an anthropomorphic figure and a sketch of its (2D) medial axis ( ) representation. Flows indicating directions of increasing radii values are indicated by arrows. Initial flows pointing in two opposite directions are indicated by a diamond shape; these map to necks of the shape. Note how tips of branches relate to convex extrema of the boundary, for the interior part of the , and concave extrema, for the exterior part. (b) and (c) A preview of the shock scaffold, a structure organizing the in a useful manner, for the 3D shape of a human male body scanned with a Cyberware Inc. system resulting in 21500 3D points (shown as white dots). This preview of the shock scaffold is shown in terms of medial surfaces and a network of axial curves (in pink) where these intersect. Flow along the medial surfaces, i.e., how the radius function varies is indicated by color variations. (b) is the interior part of the computed shock scaffold, while (c) is the exterior (with respect to the scanned surface of the body; a recovered surface interpolant is shown in Figure 1.6.(c)).





3

 The main reasons why Blum’s

*P3: Why is the



interesting?

representation has been viewed with great promise as a universal model for shape are: (i) a medial representation is an intuitive one to represent elongated objects, such as anthropomorphic forms which are built upon a real skeletal frame (Figure 1.1); (ii) Blum’s can also encode the “blobbyness” of a shape, that is, the varying width of forms, by its radius function; (iii) important contour features, such as curvature extrema and ridges, are made explicit by the branch “tips” [150, 259]; (iv) both the interior and exterior regions of space are described and segmented as a function of their relative closeness to the object’s outline; 1 (v) a partitioning of shape is made possible by combining width and elongation properties, where, e.g., different branches relate to different object parts [37, 145]; (vi) a hierarchy of scales is also “built-in” via this combination of spatial and time-like properties, i.e., smaller features can be distinrepresentation is complete, i.e., guished from larger ones and ranked accordingly [37]; (vii) the unless one starts pruning its branch structure, all of the object is represented, from the small bumps along the boundary to the large engulfings of its main parts — completeness ensures that an exact addresses the issue of dimensional reduction, reconstruction is always possible [93]; (viii) the i.e., it maps the entire object and the space it occupies into a thin set and has the potential for high data compression and information concentration, a property explored in particular in the domain of Computer-Aided Design (CAD) [188]. 2 These features of the address many of the desirable characteristics a model of shape ought to have, for example they meet many of Mumford’s proposed criteria [172]: data structure, compression and reconstruction, multi-scale hierarchy, qualitative and quantitative descriptions.













*P4: From the traditional



to a graph structure made explicit.

However, other important characteristics are needed for a shape model including [172]: robustness against perturbations, partial occlusions and articulated movements, choice of a metric for matching applications, categorization sensitivity — i.e., low cost matching within a class of similar objects, such as trees, versus high cost matching across classes, e.g., trees versus airplanes — and mixed template-feature analysis — i.e., a model permitting to unite a top-down matching of shape templates with a bottom-up extraction of shape features. To be able to exploit the full potential of the in 3D, and address all of these requirements, we propose to organize the in an explicit graph structure, i.e., in terms of nodes and their connectivity via a network of links. A graph is beneficial in particular to address the data structure, robustness and metric choice issues as was essential in 2D for robust recognition [209]. Another main contribution of this thesis is to provide efficient , a theme we discuss next. methods and algorithms to compute this graph and underlying









1 I.e., each point in space (or part of the “ground” in Blum’s nomenclatura [34]) is associated to a point of the boundary . Thus, at closest distance. Points which are simultaneously closest to two or more bondary points are part of the not only points of medialness or symmetry in space are characterize, but all of space is labelled — this is made clearer when thinking of a process to compute the such as the grassfire transform or wave propagation (Ch.2 and Ch.5). We recognize in this that the is a close cousin of the Voronoi diagram (Ch.3). 2 E.g., 3D solids can be converted into connected sets of points, curves and surfaces together with the associated radius function, i.e., distance from the boundaries [188, p.300].





4

1.2 Computational Approaches and the Shock Scaffold

 Methods developed to extract

*P5: Past approaches to 3D



computations.

symmetries in 3D, can be organized into six main approaches. (i) Within the scope of Mathematical Morphology, one uses thinning to iteratively peel off discrete layers of objects until one is left with an approximate loci [214]. (ii) In Digital Image Processing, one attempts to perform ridge following on distance maps [160]. (iii-iv) In Computational Vision two main approaches have been followed: Partial Differential Equations (PDE’s) modeling wave propagation are numerically simulated to perform grassfire-like transforms in the spirit of Blum’s first model [34], where background space is lit-up by fires initiated at boundary loci, and loci [126, 145]; influenced by the fields of AI and Percepwhere quenching wavefronts denote tion theory, a second theme has been to seek families of primitive shapes which can be retro-fit to the data and for which known medial representations are directly available [261]. (v-vi) In Computational Geometry and Computer-Aided Geometric Design (CAGD), two main approaches are also taken. In the first approach, Voronoi diagrams of either point samplings for arbitrary shapes, 3 or of [74, 5]. The simple polyhedral meshes for solids have been studied as approximations to the second approach focuses on full bisector computations, followed by trimming operations to define generalized descriptions of the [197, 81, 114].











*P6: Combining the pros of these approaches.

The ideal algorithm for the recovery of the 3D should combine the advantages of these approaches, while avoiding their limitations. Specifically, we seek a method which on the one hand features the exactness of bisector computations and Voronoi diagrams [188, Ch.11], but when stripped of some of their computational limitations, and on the other hand features the flow-based nature of Blum’s grassfire [34, 148], which underlies thinning, distance transforms, and surface evolutions, but without their connectivity, added dimension, and post-processing issues. A key insight which unifies these approaches in this work and in the earlier 2D version [241, 237, 239, 238, 235] is that the full bisector need not be considered if a flow-based approach is adopted. Specifically, if the initial sources of flow are completely classified, one may only compute the essential part of the bisectors which initiate from these and ignore all others completely, leading to substantial savings. This also immediately leads to an oriented graph structure which captures local connectivity and exact results.

 Algorithms for 3D

*P7: Reducing the dimensionality of the 3D



: Towards the Scaffold.



computation have typically focused on deriving the geometric locus of skeletal surfaces, thus not making explicit the local connectivity in the interior of each sheet as well as in the joints, where three or more sheets come together. Also, while the as a transformation from object to symmetry coordinates is useful in itself, it does not address the issue of data reduction, since it is not a priori clear how to summarize the 2D sheets into a lower dimensional structure. While the interesting notion of curve skeletons has been proposed earlier (e.g., [46, 247]; see also 2.3 for a short survey), this is not for free–form shapes of arbitrary complexity. A curve-based skeleton is adapted for tubular shapes only, and requires some non-trivial knowledge to be incorporated when trying to represent other classes of objects. E.g., this a priori



3



Point samplings can be organized or not, i.e., the connectivity of the points on the sampled object’s surface is either used or is unknown.

5

(a)

(b)

(c)

(d)

(e)

Figure 1.2: Five types of contact (here shown in 2D projections) with an object’s boundary (in green) that maximal spheres can have in 3D, where the order of contact is indicated by small line segments [95]. (a) Double tangency contact: the sphere center is part of an sheet. (b) Triple tangency: the curve at the intersection of 3 sheets. (c) Quadruple tangency: sphere center is part of an the sphere center is an vertex at the intersection of 4 curves (or 6 sheets). (d) Higher curve at the boundary of order contact at the surface boundary: the sphere center is part of an sheet. (e) Combination of higher order contact like in (d) with regular contact at another an point; the maximal sphere of contact at that point has its center being the boundary of an curve and corresponds to the second type of vertices.









 









information often takes the form of human interactions to select special features along the surface of an object; features which are then taken as endpoints for the curve skeleton construction [248]. A key goal of this thesis is to address such issues by defining the notion of a shock scaffold, a graph structure upon which the remaining parts of the can be constructed in a robust manner.





*P8: Towards the shock scaffold: Typology of points and flows.

The shock scaffold is built upon a typology for all points by classifying these with respect to two complementary aspects of their (differential) geometry. First, a classification based on maximal spheres of contact produces five types, as was reported by Giblin and Kimia in [95]. 4 Specifically, one type corresponds to the interior of sheets, two types correspond to curves, at the boundaries and intersections of sheets, and two types correspond to vertices, at the boundaries and intersections of curves (Figure 1.2). Second, this classification can be augmented with the notion of flow along sheets and curves, and through vertices, as was studied in 2D in [134], and recently studied in 3D by Giblin and Kimia [96]. The flow is simply induced by the gradient of the (and the contact spheres). While most points of the are radius function associated to the regular under this flow — i.e., their gradient varies smoothly — for a finite, discrete set (i.e., a set of measure zero) the flow is singular (Figure 1.3): either the flow is initial (a peak or fountain), it goes through a relay (a saddle) or it terminates (a pit or sink). The result is then that regular points are somewhat redundant, since the singular points dictate the boundary conditions of the flow; i.e., one can recover the points of regular flow with a knowledge of the boundaries of the flow along

















4



A contact sphere essentially touches (osculates) the boundary of the object in one or more distinct loci. We say it is maximal if no other contact sphere can be entirely inside it. The center of such spheres identically maps to points.

6

(a)

 



(b)

structures. (a) For sheets, the flow is generally initiated Figure 1.3: Types of flows along at a single point, and the sheet is grown outward and radially from that point. (b) At the top are curves, i.e., regular, initial and final. At the bottom are shown shown the typical flows along the typical sets of inward and outward flows (along curves) at vertices where the number of inward flows is indicated.





sheets and curves.

 The set of singular points of the flow along the

*P9: The shock scaffold: A graph representation of the



.

is then taken as defining the nodes of a graph data structure [149]. These nodes are implicitly interconnected by following the flow along associated sheets and curves and give rise to a directed graph, which we have called the shock scaffold by analogy with the singularities of waves called shocks and because of its 3D nature resembling the scaffoldings used to erect buildings. The shock scaffold essentially is a reduced-dimension summary of the . It also allows us to ignore or approximate the medial surface patch geometry, or even the medial curve geometry, while retaining the connectivity among nodes and links which proportionally contain the most significant aspects of the (Figure 1.4).





*P10: Computing the shock scaffold: The Lagrangian method.



The design of efficient computational schemes for obtaining this reduced is the second main theme of this work. This first method we study is called “Lagrangian,” in analogy to the approach used in 2D [235], as it does not require a fixed (Eulerian) grid as most traditional flowbased algorithms, e.g., those based on thinning the object. This Lagrangian method, presented in Chapter 4, first identifies sources of the flow along the . Then the algorithm “jumps” ahead implicitly intersecting sheets through a pairing of their sources, to identify sources of the flow for curves. We repeat this process with the curves by implicitly intersecting them through a pairing of their sources to identify vertices. Some of the sources of flow for curves and some of the vertices turn out to be “saddles,” i.e., loci where the entrant flows collide and are re-initiated, in different directions, much alike a 3D billiard game. We then keep tracking these new flows seeking new intercepts (pairings) until all flows terminate at sinks. The method is generic for any initial shape geometry, whether described by a cloud of points as studied in Chapter 3, or as a collection of











7

(a)

(b)

(c)

(d)

(e)

(f)

Figure 1.4: The shock scaffold of a rectangular box sampled by 7326 points (a) is depicted in (b) and (c). The flow along sheets is shown using the color spectrum, where blue means close to the boundary, and red means as far as possible. In (c) the geometry for the interior of the shock sheets is left implicit, and axial curves at the intercepts of shock sheets are shown in pink, while ridge curves at the boundaries of shock sheets are shown in blue. This synthetic example serves as a prototype of many real shapes, such as the pot sherd in (d) which can be thought of as a deformed rectangular box with additional surface perturbations (approximatively 40.000 point samples here). The shock scaffold of this sherd is shown in (e) with the flow along sheets color-coded similarly to (b) where the missing colors of the spectrum correspond to the symmetries away from the concave part of the pot sherd (not shown here); white dots indicate input data. In (f) only the axial curves (pink) and ridge curves (blue) of the shock scaffold in (e) are retained.

8

G2

G2

2 1

2 1

A −2

A −2 2 1

G1

A −2

2 1

G1

G3

3 1

A −2

G3

3 1

A −2

A −2

(b) Lagrangian propagation

(b) Eulerian propagation



Figure 1.5: Lagrangian versus Eulerian methods of computing the shock scaffold. (a) In the La, are paired to create grangian method, input elements or generators, here denoted by the symbol , and the latter are paired to create initial shocks for initial shocks for sheets, denoted by curves, denoted by . An iterative process of pairing detected sheets and curves then permits to construct the scaffold nodes and their connectivity. Shock sheets and curves need not be traced explicitly in this approach (indicated by dashed green lines). (b) In the Eulerian method, input elements are located with respect to a fixed grid. A discrete propagation from each input, , is then performed on the grid. The grid nodes closest to each input are then labeled accordingly (here indicated by a color). Elementary cells of the grid where two or more labels arrive at the “same time” are used to compute shocks. Note that here the trace of the shock sheets and curves will be traced explicitly by computing intercepts with the grid as was done in 2D in [235].

  

  



surface patches as described in Chapter 7. Experimentally, we have observed that this Lagrangian method is nearly linear in computational complexity for unorganized input points in 3D, i.e., it “degrades” quasi-linearly as the number of sample points of the object under scrutiny augments.



*P11: Computing the shock scaffold: The Eulerian method.

We also explore the use of a fixed Eulerian grid to compute the shock scaffold. Our past experience with 2D problems has shown that Lagrangian and Eulerian methods are efficient under different conditions and are complementary in nature [235] (Figure 1.5). A similar situation is expected in 3D. In the Eulerian approach the focus is shifted from shocks generated by direct pairing of object samples to shocks discovered by the collision of waves propagated in a tessellated space which takes the form of a rigid uniformly connected grid. While in the Lagrangian method the initial pairing of samples is “blind” to the spatial layout and thus there is unavoidably some level of wasted efforts in unnecessarily checking certain pairs, in the Eulerian approach this problem is bypassed since the explicit search is performed through the embedding space. Essentially, the propagation carries only those samples to the grid node where a pairing must occur, thus explicitly limiting the number of false pairings. However, the waste is now in propagating in those portions of space that do not lead to shocks. There is thus a natural tradeoff between the computational complexity of the Lagrangian method which is dependent on the number of sources and the computational complexity

9

of the Eulerian approach which is essentially dependent on the number of grid nodes, or cells, used to tessellate space. Certain practical scenarios are then favorable to the Eulerian approach, while others are better treated with the Lagrangian one. Essentially, if there are large sections of space (and thus large number of tessellating cells) which are empty of data, then the Lagrangian method is to be favored. *P12: The shock scaffold of unorganized point clouds.

A large part of our attention in this thesis is devoted to the important case of unorganized point clouds. These are arbitrary sets of points in 3D space for which no connectivity information is known a priori, i.e., each point is “unaware” of which other points are nearby. Point clouds are important to consider because of their genericity in applications: any objects can always be sampled by points. Furthermore, many data collection methods, such as active sensing via laser scanners, produce such point samplings. Making no assumption on connectivity amongst points, is useful for two main reasons. First, because it represents the most general setting, i.e., with no restriction or assumption made about the data. Second, although data may be provided with some connectivity information, e.g., in the form of a mesh or interpolant, such information is often unreliable and incomplete, i.e., some of the links between points are incorrect, and other needed links are missing, thus creating holes in the mesh. *P13: Segregation of the shock scaffold: Surface meshes and large scale



features.

The shock scaffold of a point cloud is usually a fairly complicated graph structure, showing a “hairy pattern” whose density is linked to the density of the sampling process. When the samples are known to lie on a surface, e.g., when sampling the boundary of the object under scrutiny, it becomes interesting to try to identify which part of the shock scaffold corresponds to the surface. We propose in this thesis a practical paradigm of surface recovery from the shock scaffold, based on curves whose associated point samples give a surface interpolant (Chapter 6). ranking selected curve is generated from three associated input points, the interpolant associated to Since each this curve is defined as the triangle through the three points. Once the surface is recovered, the shock scaffold is explicitly segregated into two sub-graphs, one which is linked to the sampled surface, while the other provides a much simplified graph lying on either side of the recovered surface. This latter sub-graph is then connected into larger surface and curve structures, resulting in an approximation of large sheets and curves lying deeper inside and out of the originally sampled object (Figure 1.6).









*P14: The shock scaffold of unorganized polygonal clouds.

There are cases where some of the local connectivity and geometry is known around each point, for example, as in surface meshes arising mainly in the fields of computer graphics and CAD where objects are usually generated via graphical modeling tools. In order to generalize the scope of our model, it becomes necessary to look also at shock scaffolds produced from surface patches, rather than simply points. We consider unorganized polygonal clouds as the prototype of this more general input class (Chapter 7). Polygons are the simplest surface element and it is relatively easy to specify the shock scaffold geometries for them. We consider sets of polygons which are not connected to each other a priori. In analogy to the case of unorganized points, this choice not only allows us to develop a complete theory and set of associated algorithms, but it also permits us to deal with defects often occurring in available databases, such as holes in the connectivity meshes. *P15: The next generation of scaffold computations: Transitions and other surface elements.

10

Gi

Gi

Gj

(a)

Gj

(b)

(c)



Figure 1.6: (a) A slice through an elongated object with the trace of its idealized underlying surface shown as thick (green) curves. Input points have been sampled on both “sides” and . Shock sheets are not shown in this sketch, where only the 2D projection of shock curves are displayed, . Identification of which creates a typical “hairy” pattern for the shock scaffold and associated these shock curves in the vicinity of the surface permit to segregate the original shock scaffold in two parts. This is illustrated in (b) where the part related to the surface has been converted into a piecewise linear interpolant for the input points, shown here as broken line segments (in blue). The remaining part of the shock scaffold is also shown, thereby revealing an approximant to the of the idealized surface. A retrieval of an exact trace requires symmetry transforms, which has been performed in 2D by Tek and Kimia [235, 240] and has stimulated our own work in 3D. (c) Recovered surface interpolant for the male body of Figure 1.1 (21500 point samples as white dots).







11



 

The sensitivity of the representation to perturbations makes it challenging to use the directly for applications such as modeling, animations or recognition. Similarly, the sampling of a surface by points can be seen as a perturbation which introduces additional structure to the while deforming existing ones. We address in part this important issue by taking advantage of our built-in hierarchy in the shock scaffold representation, when segregating it in two parts, one arising from the original surface and the other from the sampling process. Yet, this is not sufficient if we want to address the important aspects of robustness under perturbations and larger deformations, as well as achieve recognition capabilities via matching and categorization. An important step to address these issues, is to understand the types of transitions that may occur in the graph structure of the [94, 240]. The entire class of possible transitions in 3D for the has recently been reported by Giblin and Kimia in [96] and we will present here some early simulations of these using our numerical methods (Chapter 6), which will potentially render our proposed shock scaffold representation of 3D shapes practical for a larger set of applications.





1.3 Main Contributions This section summarizes the main contributions of the thesis.



1. The notion of the shock scaffold, a directed graph representing the essential 3D shape information , but makes (Chapter 3). The shock scaffold embodies all the information present in the explicit a graph structure, where the redundant information still present in the original formulation is identified and can be either represented (to preserve exactness) or altogether , the shock scaffold is generic: all removed (for approximations). As is the case of the shapes can be represented.





2. Detailed analysis for the case where the samples are unorganized point clouds (Chapters 3, 4, 5, 6). We consider in detail the case of unorganized point samples which can be used to describe any 3D objects. The fact that points are “unorganized,” i.e., with no a priori connectivity information, permits us to develop a method of processing points which suffers no limitation in applications. This lead us to design a new efficient Lagrangian algorithm (i.e., grid-less, in Chapter 4) to compute the shock scaffold of unorganized point clouds. This method is built upon geometric “visibility” constraints combined with a coarse clustering technique permitting to process such points efficiently. Within the scope of this method, a number of “sub”-contributions are made, as listed below. 2.1 Discovery of a “visibility constraint” to search space and identify shock sources (Chapter 4). Once a shock pair between two inputs is established — i.e., at the creation of a shock source for an sheet — a pair of half-planes are defined, ruling out an entire half-space, one per input, from further search for valid pairing (Figure 4.3). To the best of our knowledge, this is a new visibility constraint between point samples in the Euclidean space, which seems not to have been reported in the specialized literature. 5



5

We have searched through a large amount of papers from the fields of CAD, CAGD, Graphics and Computational Geometry. Still, the topic of efficiently searching through space is so vast that it is possible that such a visibility constraint, as we call it, may have been previously reported elsewhere in some form.

12

2.2 Discovery of a number of associated relations, i.e., visibility at the level of clusters and use of virtual points leading to a multi-resolution algorithm, making search through space even more efficient (Chapter 4). If an a priori clustering of the input elements is available, then the visibility constraint principle is best to use first within each cluster. Indeed, by virtue of being members of the same cluster, points are closer to each other, and the benefit of visibility constraints being cumulative is then fully exploited (Figure 4.3.(b) and (c)). But, notice that clusters themselves can play the role of “meta” input elements, thus leading to a multi-resolution algorithm (Figure 4.4.(a)). Furthermore, at the cluster level, it is sufficient to consider very few points defining a convex hull for the cluster, and compute visibility constraints only for these to rule-out other remote clusters and their content. In fact, these few points need not being real samples at all, hence we call them “virtual” (Figure 4.4.(b)). 2.3 Design of an efficient coarse clustering method (Chapter 4) giving a paving of space. In support of the above relations based on applying visibility constraints at the level of clusters, we design a 3D “coarse” clustering technique. It is “coarse” as it does not attempt to order samples within a cluster, but only identifies cluster membership. Each cluster takes the shape of a 3D tile, and the collection of all tiles covers entirely the domain of space in which we perform computations. Furthermore, the intersection of any two tiles is the null set, thus defining a “paving” of space. This technique is based on the well-known ideas of bucketing, and we specialize it for our application. 3. Design of an efficient Eulerian simulation of 3D wave propagation (Chapter 5). We also design an efficient Eulerian (i.e., grid-based) algorithm to simulate the propagation of information in 3D space. This algorithm relies on a carefully designed set of neighborhoods used to optimize discrete propagations while preserving the exactness of the final results, as a generalization of the method in 2D [235]. That is, although we limit propagation to take place on a discrete grid, we are still able to retrieve all the necessary information to compute exactly the shock scaffold at sub-voxel loci. 4. Development of a practical approach to the segregation of the shock scaffold of point samples in two sub-graphs, one of which is intimately related to the surface of the object under scrutiny (Chapter 6). This permits to greatly simplify the remaining shock scaffold structure which at larger scales, i.e., it allows us to explicitly idenoffers good approximations to the tify larger features. This approach also offers an interesting new algorithm to construct surface interpolants for arbitrarily complex point clouds, an important practical and research problem in today’s fields of Computational Geometry, Graphics and CAD.







5. Formal relationships between the shock scaffold, the and the Voronoi diagram of point clouds in 3D are established. It is further shown that the “Voronoi graph” made of Voronoi vertices and edges is a sub-graph of the shock scaffold (Chapter 3). 6. Detailed analysis for the case where the samples are unorganized polygonal clouds (Chapter 7). While the case of point samples is of great practical use, in particular with respect to today’s scanning technology, it is also important to consider the more general case where inputs are

13

Ch.1 Introduction Ch.2 Background Ch.3 Shock Scaffold

Ch.4 Lagrangian propagation Ch.5 Eulerian propagation Ch.6 Scaffold segregation Ch.7 Extension to Polygons

Ch.8 Conclusions

Figure 1.7: Recommended flow of reading. On the left hand side, the “core” thesis, i.e., the sequence of essential chapters, is described, while the “auxiliary” chapters, which may only be of interest to a narrower group of readers, are indicated on the right hand side. surface patches, to explore and demonstrate the genericity of our approach. Polygons are regarded as the “prototype” for further developments, since other surface models should only generate more complicated situations, but no significant change in the algorithmic complexity.

1.4 Overview We now provide an overview of the thesis which comprises eight chapters. These chapters were organized in a “multiscale” fashion to facilitate partial readings of the thesis and different levels of depth (Figure 1.7). At the coarsest level of reading, the introduction gives an overview of the thesis and its contributions. Beyond this, two independent tracks can be followed. First, the “core” of the thesis, comprised of Chapter 1, 3, 4, 6, and 8 can be read. Specifically, Chapter 3 defines the shock scaffold, and then specializes it to the case of point samples and show its relationship to the Voronoi diagram; Chapter 4 is on the Lagrangian method to compute the shock scaffold of unorganized point clouds; Chapter 6 is on the definition and application of “segregation” of the shock scaffold to ’s large scale features; and, Chapter 8 retrieve a surface interpolant and a close approximation to offers some concluding remarks. The remaining chapters of the thesis elaborate and complete the core part. Chapter 2 offers a brief overview of the previous work related to the , with an emphasis on the 3D case. Chapter 5 describes the Eulerian algorithm, where we simulate information propagation on a 3D grid, and offers an alternative to the Lagrangian method. Finally, Chapter 7 studies the extension to the case of unorganized polygonal clouds. Each chapter of the thesis provides an introduction and overview such that on a first pass, it might





14

be a good idea to simply read the introduction to each chapter without focusing on the technical details that follow it. Furthermore, we have followed an unorthodox convention by including short headers for most paragraphs of these introductions. These summarize the content of each paragraph and can be read in a quick first pass to get a general feeling for the chapter’s content.

Chapter 2

Background on Medial Axis based Shape Representations Medial axis representations of shape make explicit points in space which are equi-distant to the object’s boundary. Variants of these representations have appeared for different applications, for example the medial axis1 in biological shape and visual sciences [34, 128], trimmed bisectors and the Voronoi diagram in computational geometry [198, 16, 180], and central and symmetry sets in singularity theory [55]. ) was introduced in the early 1960’s by Blum chiefly to describe biological The medial axis ( shapes [31, 32, 33, 34]. It was defined in two equivalent ways: (i) a set-based definition as the closure2 of the loci of centers of maximal balls; 3 (ii) a process-based definition as the closure of the loci of meeting wavefronts initiated at the object’s boundary or at samples of that boundary. 4 The symmetry set (  ) [55] and bisectors [189] are the loci of points equidistant from the shape and bring out additional types of symmetries. In contrast to the which is often defined for closed boundaries, the   is generally defined for clouds of points, independent curve segments,  etc. [239, 235]. The Voronoi diagram ( ) is a partition of space such that each point of space is associated to its closest neighbor on the object’s boundary; 5 the can then be cast as the  boundary of the (see Chapter 3 for details). The of 3D shapes consists of sheets of symmetry and their intercept at curves and nodes. For example, the of a rectangular solid is typically a set of thirteen or more connected planar patches (Figure 2.1). For tubular shapes, however, the basic symmetry representation is a curve











1

Also called medial axis transform (MAT), symmetry axis transform (SAT), skeleton, grassfire transform, axial symmetries, etc. 2 By “closure” we mean the set plus its limit points, also called “boundary” points. 3 I.e., balls osculating the boundary in one or more places and empty of other boundary segments; see Chapter 3 for details. 4 This is a simulation of geometric wave propagation in space, where the object’s boundary is seen as an emitting source, and where waves are not allowed to interpenetrate. This process is often portrayed in 2D as a grassfire [59, 145], where fire is initiated in a planar uniform unburnt grassfield along an outline tracing the object’s boundary. Where firefronts quench is an locus. 5 The origins of the  go back (at least) to Descartes [180] and Gauss [16]. Until fairly recently (circa the 1970’s) mainly the  of point distributions in the plane was studied in applications.



15

16

(a)

(b)

(c)



Figure 2.1: Prismatic box uniformly sampled in (a) with 8264 points and its computed representation in (b) where color encodes distance from the inputs (blue is close, red is far). (c) Recovered coarse-scale axial-like (in pink) and ridge-like (in blue) curves (see Chapter 6 for details).



rather than a sheet, as is the case for cylinders [26]. These shapes are degenerate in that slight perturbations will lead to medial sheets, but the idea of a medial curve for tubular–like shapes remains attractive (see 2.3 below). This chapter is organized as follows. In section 2.1 we consider the historical developments and applications of the in different fields. In section 2.2 computational schemes are considered. In section 2.3 the background on curve skeletons is revised. Publications which offer excellent surveys ; [215, Ch.11-13] covering continuous on the topic are: [34], covering in depth the infancy of the and digital properties from the point of view of mathematical morphology; [233] covering most since Blum’s work, with an emphasis on 2D and 3D “Voronoi computational approaches to the  skeletons,” i.e., approximations to the based on subsets of the , and applications to medical  imaging; [16, 17, 180] covering most aspects relevant to the ; [220] covering properties of the of objects with closed boundaries in 2D and 3D; [196] on Laguerre geometry, cyclography and its relation to the ; [188, pp.299–306] which puts the emphasis on the use of the in Computer Aided Design (CAD).















2.1 Historical Developments and Applications of the



In Computer Vision and Pattern Analysis, the high degree of variability of shapes arising from object completion, occlusion, and other visual transforms, calls for a representation which makes explicit a hierarchical representation of structures of the object [235]. graphs represent such an overall structure in an ordered way, which can then be correlated with that of variation of the object’s outline [126]. Chronologically, the most important work is that of Harry Blum et al. in the 1960’s and 1970’s [31, 32, 33, 34, 35, 37]; especially his 1973 long paper [34], is the basis for all later work — there are many ideas in this paper which still need to be exploited and the bibliography on older mathematical work is superb. As examples of variations on this theme, in the 1980’s, Brady and Asada explored an alternative medial representation called Smoothed Local Symmetries (SLS) based on mid-chord loci,6 rather than centers of maximal balls [50], while Leyton explored midarc loci for characterizing dynamic growths and called the resulting set Process-Inferring Symmetry Analysis (PISA) [151, 152].



6

Mid-chord loci is mentioned by Blum [34] who calls these “symmetric chord coordinates.”

17

(a)

(b)

Figure 2.2: Examples of the 2D Blum transform where time of propagation is plotted as a height function resulting in a “distance surface” (a) From [34, Fig.11]: the distance surface is smooth everywhere except at its ridges. The projection of these ridges on the plane gives the trace . (b) From [145, Fig.4]: Inverted distance surface for a rectangular outline (thick black of the curve) with some perturbations. An active contour is attached at the a priori identified curvature extrema ( ’s) and is allowed to descend along the surface and coalesce at surface ridges.











Nackman and Pizer set the tone for work on the 3D in the early 1980’s, [174, 173, 175, 176]; they derive interesting formulas relating curvatures of the boundary and the sheets; they also defines the Critical Point Configuration Graph, an application of the classic work of Cayley and Maxwell on hills and dales of terrains [61, 163], to describe and summarize the interior of sheets, which is relevant to our own work (see Chapter 3). The work of Leyton et al. in the late 1980’s [150, 151, 152, 259] also emphasizes the link between boundary, through curvature extrema, and symmetries in 2D and 3D; Leyton further builds a formal grammar for studying deforming and growing 2D shapes [151]. In a recent book Leyton relates memory and geometry, in particular when mediated via axial symmetries [153]. Levine and I, in the late 1980’s, combined the concepts of Leyton on the duality of curvature extrema and symmetries together with the representation of the grassfire as a higher-dimensional height function set called “distance surface” [136, 100] (see Figure 2.2), to build a skeletal graph [145]. We also introduced the notion of a dynamic skeleton to trace the deformations of continuously deforming biological shapes, such as live cells [146]. Kimia, Zucker et al. in the late 1980’s and in the 1990’s [129, 126, 130, 132, 131, 133, 134, 225] noticed the equivalence between the shocks arising from wave propagation and Blum’s grassfire, and initiated a new trend in 2D shape representation where special points, i.e., singularities of the flow of waves, play the central role. This work has been pushed further by Kimia et al. to propose new and efficient solutions to shape understanding problems in the recent years, in particular for 2D shape recovery and matching, as well as for the efficient indexing in large shape databases on the basis of shock graphs [218, 238, 211]. In Mathematics, concepts related to medial symmetries, including the , and have been a major field of study mainly within the realm of geometry, and more recently within the scope

  





18 of singularity theory.7 The earliest developments can likely be traced back to the Ancient Greeks, e.g., in the work of Archimedes on caustics of light rays, where wavefronts coalesce. Descartes  in 1644 used the concept of the to study the spread of matter in the Solar System [180]. This concept was latter refined in a series of seminal papers by Dirichlet, Voronoi and Delone published between 1850 and 1932, who studied the distributions of points in space and how polyhedral or polytopic partitions are obtained by minimizing positive definite quadric forms, such as the Euclidean distance between points [180]. Bouligand in the early 1930’s initiated the study of the shape of a closed set, , by using nearest point mappings from to the exterior embedding space, or “background” [49]. The set of points in this background having multiple nearest points on is considered important to study the geometry of — this is the in disguise, here of the exterior of a shape delimited by . This concept was further explored by Motzkin who considered the loci of centers of circles osculating at more than one point the set , also from the exterior, to characterize the convexity of [170, 169]. In the early 1960’s, Kotelly [136], working with the team led by Mott-Smith and Calabi et al. at the US Air Force Cambridge Research Laboratories (AFCRL), produced a mathematical model for Blum’s grassfire transform by embedding it in a space with one extra dimension for distance, ), plotted as a height function, hence introducing the or time (i.e., the radius function of the concept of a distance surface (see Figure 2.2). Distance surface were also being studied in the same period by Goodman [100, 99] who looked at the properties of parallels to an initial set. 8 A similar description of the geometry of shapes also appears in the earlier work of Muller on cyclographic maps [171, 113]. Cyclography can be cast in the more general geometry of spheres of Laguerre; see the papers of Pottman et al. for recent studies and applications [195, 190]. Initial studies on the characterization of the skeletal graph by the radius function, as well as 2D shape segmentation and reconstruction theorems were also achieved by the AFCRL team by the late 1960’s [59, 58]. Some of these results influenced the seminal paper by Blum [34] as well as his last [37] journal paper on the subject.9 Wolter in his doctoral thesis and subsequent work, studied the as the cut-set of distance mappings on Riemannian manifolds; from the point of view of topology, he casts the as a strong deformation retract of the boundary of an object, which gives a nice proof that the is path connected if the original object is, and is invertible [254, 220]. Recently, Wolter et al. have extended this theory to the computation of medial curves embedded on 3D surfaces [205, 137, 255]. is the work on singularity Related to this work on the mathematical foundations of the theory, i.e., the study of singularities of mappings of sets from one space to another, which has blossomed since the 1970’s. Of the immense bibliography on this vast subject, it is enough for our purpose to consider the three principal teams working in the area. The “Russian team” of Arnold et al. has established the formalism linking wave propagation, caustics and their singularities [10, 11, 12]; of particular importance to us is the recent work of Bogaevsky on singularities of shock waves in 3D [39, 40, 41]. The “British team” of Bruce and Giblin et al. has focused their attention













7

Singularity theory relates optical caustics with simple Lie algebras and regular polyhedra theory, hyperbolic PDE wave fronts to knot theory and the theory of the shape of solids to commutative algebra. 8 Distance surfaces have also been named Voronoi surfaces in recent years [118, 180]. 9 Blum had the intent of extending his work to the 3D case, as can be sensed from his early papers, and this is further emphasized by his last known presentation before he passed away [36].

19



on the relations existing between these singularities, full symmetry sets and their specialization as symmetries [54, 56, 55, 93, 94, 95, 96]. The “Dutch team” of Siersma et al. has recently  started studying the relationships existing between the , “conflict sets” (i.e., bisectors) and the Morse theory of distance functions [228, 227, 230]. 10 In Computational Geometry, Computer Aided Geometric Design (CAGD), and Robotics, the implicitly defines object offsets, which are required in numerical tool machining applications for milling, tuning, punching and drilling [109]. In addition, it has been used for surface meshing [3], finite element analysis [188], dimensional reduction and detail suppression [219, 200, 201], as well as shape morphing [28], motion planning [253, 107, 116] and haptic exploration of surfaces [181, 182]. The main focus in these domains has been to develop combinatorial approaches on the  basis of the and dual Delaunay tessellation. The most basic underlying data-structure takes the  of a set of points can always be obtained via an up-lifting form of the convex hull [198, 180]. The on a certain hyper-paraboloid by adding one extra dimension to the embedding space [180, 17]. A convex hull computation in this higher-dimensional space followed by a back-projection in the   . By removing the sub-structure of the directly related to the input original space gives the points or to the underlying contour or surface, if known, an approximation of the of the outline  is obtained [179, 178]. The degree to which the of a discrete set converges to the of its corresponding continuous set was well studied in 2D, e.g. in [208, 52, 51]. In 3D the behavior of  the is not as nice when density augments as nodes in the diagram can stay arbitrarily close to the underlying surface [244, 3, 4]. In Chapter 3 we consider in more details these issues of convergence. Another line of work is that of Hoffmann et al. from the late 1980’s and into the 1990’s who studied the use of cyclographic maps (or distance surfaces) and shocks of wavefronts (of the eikonal equation of optics [231]) in the context of solid geometric models [113, 81, 114, 246, 115]. Cyclography has been combined recently with the Pythagorean hodograph property which requires that offsets of parametric curves are again parametric curves [190, 64, 167]. Extensions to general surfaces remain largely unexplored, although some results have been reported recently on the simpler case of canal surfaces (i.e., for generalized cylinders) [190, 65]. The applications of algebraic geometry to CAGD, including offsets and intersections of curves and surfaces [111, 112], is proving very relevant to advances in 3D computations [188, p.305] (see also Chapter 7). For example, the bisector computation, where one needs to compute the bisecting curves or surfaces of a given set of primitive inputs, such as points, lines, and quadrics, is an active area of research. Here the emphasis is put on the rational parameterization of curves and surfaces, similarly to hodography [85, 189]. Another recent area of work in CAGD is to use the or some equivalent skeletal representation as a tool for shape interrogation, reconstruction, modification and design, and even as a basic element for building intuitive new interfaces for CAD systems [8, 27, 255]. Using a 3D skeleton as the underlying shape representation gives the designer greater capacity to impose in unison geometric and topological constraints on a shape model, to attach functional representations to different parts of the model, and to specify non-uniform material distribution via offsets [243]. to implicitly represent the distance of a point to In Computer Graphics, the ability of the a (complex polygonal) shape is useful in dynamic path modification for rendering, collision pre-













10



This is directly related to what Nackman and Pizer had started to explore by looking at the critical points of the [174]. Blum [34] touches on the subject. distance maps associated to the

20



vention, tolerance verification, visibility computation, accurate motion dynamics and 3D path planning, and self-intersection detection. In addition, the has been used for articulated animation [183, 234, 251], decimation, morphing [140, 141, 248], as well as complex shape reconstruction, for shapes such as trees and plants [223], biological forms [30], branching forms in general [88], and for interactive modeling of free-form objects [6]. Also, the has been used to study surface meshing, when producing polygonal mesh from unorganized or partially connected clouds of samples [3, 4] (see Chapter 6 for more details). In Computational Chemistry, Molecular Design and Crystallography, the can be used to construct a molecular graph, which represents the network of chemical bonds or the crystallographic structure, based on the quantum theory for atoms [18]. For example, the 3D skeletonization of electron density maps is one of the most popular method used to automate the tracing of the molecular chains linking different atomic centers [103, 104, 120, 154]. In drug design, the should be a suitable substrate for building molecular surfaces [62] and volumes, modeling receptor sites, docking of ligands inside protein cavities [143], contracting geometric invariance among molecules exhibiting similar activity, all key geometric problems in this field [67, 44, 155, 187, 89]. is being used in a growing number of applications, In Medical Imaging and Biology, the including the characterization of the morphometry of bones [212], the registration of Computerized Tomography (CT) and Magnetic Resonance (MR) datasets [177, 156], anatomical model matching [233], path planning for virtual endoscopy [264, 185], the tracking of live cell pseudopode dynamics [146], the study of growth and morphogenesis [76], the study of 3D distribution of chromosomes [207]. Medial representations based on the to model boundaries in 2D and 3D medical images is being explored by Pizer et al. [193, 260]. Such medial structures are found helpful in image segmentation tasks to drive deformable templates permiting to characterize anisotropic growth mechanisms [194]. There are other important domains of application, such as fragment matching for the reconstruction of pots from sherds in digital archaeology by using ridges and main axial symmetries recovered from the [147]. Consider also the analysis of perceptual force fields in paintings [9] or gardens [245], and so on, but a more comprehensive review of all applications of the is beyond the scope of this section.















2.2 Computation of the





Representation

Despite the initial appeal of the , its computation has faced three major challenges in dealing with the inherent instabilities of a symmetry-based representation, the computational efficiency and storage bottlenecks, and in using the in real applications. First, while the is generally stable with deformations of 3D shapes, certain types of deformations pass through skeletal transitions where a new branch is created or where the graph topology changes [96] (see also Chapter 6). The most well-known example is the creation of a spurious branch with the introduction of a small protrusion. Implicit and explicit regularization methods have aimed at removing these branches, but these can also lead to disconnected skeletons and the removal of significant branches [240]. Second, the efficient retrieval of the 3D is a particularly significant issue due to the volume









21

of data involved. For example, the human body dataset of Figure ?? contains nearly 22,000 points which represents a moderate size for this type of laser scanned data. Similarly, anatomic structures  in volumetric medial images with discrete dimensions involve large datasets. A large dataset not only constrains the time required for its processing, but also leads to concerns about storage requirement of the computation method in the run-time as well as for storing the itself. Third, while in some applications it is sufficient to represent the as a collection of points, in others its graph structure is explicitly required. Discrete techniques face challenges in recovering the graph structure either during the detection process or after the geometric trace of the is obtained as a point set. In the following paragraphs, existing approaches to the recovery of the are categorized into six classes.11 Approaches which reduce the 3D to a curve representation will then be separately considered as a specialized case.













Thinning This is a process which iteratively peels-off layer after layer from a compact connected object, while preserving the topology of the shape [138, 159]. Most techniques, such as defined and implemented in the realm of mathematical morphology [214, 215, 125, 123, 124], are discrete in nature, and require a segmented, compact, and connected object. Numerous connectivity criteria exist leading to variability in results. In 2D, multiresolution discrete schemes have been proposed [80], in particular using pyramid-based algorithms [47]. The equivalence between the mathematical morphology framework and PDE’s and wave propagation in the continuous domain was established in the early 1990’s [7, 53], an efficient and accurate algorithm for the 2D case was then developed [237], and Kimia and I recently presented a first step toward a complete algorithm in 3D [148] (the latter is presented in details in Chapter 5). Ridge Following on Distance Maps This is a computation of distance maps, establishing the proximity relationships between object boundary elements, followed by local extrema extraction and linking [160, 202, 264, 46]. The computation often relies on approximate metrics, such as the so-called pseudo-Euclidean and chamfer distance transforms [144], which can lead to variations under rigid transformations. The extraction of symmetry loci relies on a second step of ridge following, which leads to difficulties in maintaining correct topological properties. A recent approach involves checking for the violation of conservation of energy, defined as the divergence of the distance vector field induced by a distance map [48]. As Levine and I demonstrated [144], the most efficient algorithms for the computation of Euclidean distance maps on a grid are based on the concept of vector-based distance propagation, which was first proposed in the early 1980’s for 2D applications [77, 90, 203], and later extended to the 3D case by Ragnemalm [204] and refined by Kimia and I [148] (see also Chapter 5). 11

The focus is on methods for the extraction of 3D



symmetries, but the classification also applies to the 2D case.

22

3D Wavefront Propagation via PDE’s The surface evolution of the wavefront in 3D is modeled by a PDE, where this surface is seen as the zero level set of a 4D embedded object [217, 236, 98]. This technique requires an a priori tracing of the original bounding surface, and an embedding in a higher dimensional space. Thus, it cannot easily handle data with unorganized surface patches or surfaces with intersections. In addition, it is relatively expensive, even with the aid of fast narrow-band numerical methods [217]. Boundary Modeling via 3D Primitives In this approach, 3D geometric models, such as canal surfaces, generalized cylinders [261], ellipsoids [20], are first fit to the data. Then, the analytic computation of the symmetry loci may follow. However, the accurate retrieval of such boundary models is itself a challenging task, especially for realistic general free-form objects. Voronoi Diagrams



 , made of facets, edges and vertices in 3D, can be used to trace the as The boundaries of the they represent loci of equidistance from the object’s outline. Two main computational scenarios have been explored in both 2D and 3D: (i) via point samplings, and (ii) via polyhedral representations of the object’s boundary.  which is then pruned Dense point samplings on the surface of objects generates a “hairy”  via local criteria such as the dihedral angles between faces [233, 177], or the type of associated tetrahedron [14], while maintaining the global topology of the diagram seen as a graph. Note that  for point samplings, the is made of linear elements only, i.e., straight line segments and planar facets. Going from point to sphere samplings and from the Euclidean metric to the power distance [15],12 permits to keep this linear structure, and has recently been explored in 3D surface meshing  are applications [14, 5]. If the surface of the object is known, most of the hairy patterns of the  easily removed, i.e., only facets and edges not directly linked to the surface mesh are kept, in order to approximate the of the object. This is the approach in a number of CAD applications for producing the of solid models by sampling their surface with points [219, 244, 79]. However, in numerous applications, the connectivity among surface samples is either left unknown or is unreliable, which requires to consider the case of unorganized point clouds (Chapter 6). Instead of using point samplings on known closed solid models, such as those made from poly hedra, one can compute a generalized starting from more complex classes of inputs, such as lines (edges) and planes (facets). This is the approach taken recently by a few groups [206, 220, 86].  leads to more accurate and compact results, than when starting from Computing the generalized point samplings, but is also a more costly operation which requires a good segmentation of the object’s bounding surface. Note also that numerical computations in areas of concavities and highly curved regions remain challenging [220].



12



               and    , of centers  and  and radii   , where  is the usual Euclidean distance.  

The power distance between two spheres respectively, is given as:

and

 ,

23

Bisector Computations and Surface Trimming



Bisectors computations and trimming rely upon an analytic computation of sheets by their representative equal distance surface of each pair of boundary elements, followed by an intersection of these surfaces, trimming away the patches which are not part of the [85, 189]. Note that the entire collections of un-trimmed bisectors traces out the   [241, 95]. Recently, Culver et al. have designed a method which iteratively traces bisectors from the boundary surface toward the interior, applicable to fully connected polyhedral objects [74]; this method requires the a priori identification of edges and vertices, to initiate the computation of bisectors. Such approaches, typically aimed at applications in CAD, lead to exact results, but have been of limited practical use thus far, because of the high numerical complexity, particularly when faced with noisy, incomplete or unorganized data.



2.2.1 Discrete versus Analytic Representations



It is useful to further compare the above approaches and classify them in two groups, whether they , i.e., a set of voxels in 3D, or to an analytic representation, i.e., lead to a discrete trace of the a connected set of objects accurately encoding the shape of the in terms of surface patches, curve segments and vertices. By construction, methods based on thinning and distance transforms are discrete in nature and lead to discrete results. A major problem then, is that such discrete methods do not make explicit a graph structure in terms of nodes and links, which is necessary for object analysis, recognition and manipulation. Methods based on surface evolution may either lead to discrete or analytic results: a function of the tracing and intersection computational power of the method. Boundary modeling, Voronoi diagrams and bisector computations produce analytic representations. However, work remains to be done in order to apply these techniques to generic inputs, other than sample points or closed solids.

2.3 Curve-based





Representations



The formal definition of the 3D results in a connected set of surface patches. Thus, the dimensionality of the full representation reflects the dimensionality of the data. However, for shapes which are tubular, such as blood vessels, trees, and so on, the intuitive representation of a skeleton appears to be constructed from a network of curves only. In addition, it is desirable to reduce in describing general shapes. In both cases, a curve-like representhe dimensionality of the tation seems useful and has been especially advocated for special applications, noticeably in path planning, robotics, and character animations, under the name of Generalized-Cylinder (GC) [26]: once a network of medial curves is given together with their cross-sections defining the 2D outline of the bounding shape, the original shape can always be recovered by sweeping the cross-section functional along the medial curves. Observe that the representation for cylindrical objects whose cross-section is circular, e.g., blood vessels, fingers, pipelines, is a curve or set of curves. As the cross sections deform away from the circle, the grows sheets of symmetry out of the main central medial curve. Hence, techniques have been developed to approximate this for tubular forms, which are not perfectly circular in cross sections, by a closest and best GC representation with an appropriate cross-section



 



24

functional. Retrieving such a functional for free-form objects is not trivial and no technique has solved this problem. The notion of discrete curve skeletons has been studied recently [46]. A “curve skeleton” is comprised of sets of simply connected voxels approximating the trace of curves. In order to obtain a topologically correct representation, surface features where tracing of the curves is started must be pre-identified. This involves typically finding significant edges or corners on the surface of the original object.13 . Such discrete methods then proceed to extract a network of curve-like sets of voxels by iteratively thinning an initial volumetric approximation of the original object, described as a compact set of cubes or voxels. Discrete curve skeletons are sensitive to the initialization conditions, to the metric used to thin the original set, as well as to the discrete topology criteria used to define connectivity between curve voxels and at the junction points of multiple curves. Furthermore, as for most discrete methods, an a priori compact object segmentation and discretization is required.  A continuous approach to the curve skeleton, based on the , has been proposed by Attali and  from a finite set of points sampling a closed boundary. Montanvert [14]. They first compute the or to a This diagram is then pruned based on geometric criteria to lead to either a simplified curve skeleton made of connected line segments. This approach is not restricted to tubular objects, as it first computes a complete approximation and then prunes it iteratively. A similar approach  also based on the has been proposed to represent the complex structure of trees [223]. The most significant branch tips are hand-picked from the meshing of the bounding surface, and then  the “internal” is iteratively simplified using the pre-selected vertices as hard constraints. Note that both approaches require a compact object and its a priori tessellation of its inside in the form of Delaunay tetrahedra. Thus, once again, an a priori object segmentation is needed. Another continuous approach, proposed recently by Verroust and Lazarus, considers a global alignment for objects which are naturally elongated, such as human bodies, blood vessels, trees [248]. This alignment is a priori selected and used to build a height function from pre-selected initial points at the frontier of the compact object. A distance transform or a level-set computation is then performed within the object, from these initial points, building the required height values. Finally, paths of least length are selected, from the initial points and generated via hill-climbing, while favoring loci near the center of the elongated parts of the objects. A similar approach, limited to the discrete trace of the medial curves has been studied by Zhou et al., amongst others, with applications in medical surgery to plan video paths in blood vessels and other tubular tissues [264]. Another approach, based on a global potential field also inducing distance values within objects has been proposed by Chuang et al. [66]. This is an extension of similar work in 2D by Levine and I [145]. In its present form it is limited to fully connected polyhedral objects and requires the a priori determination of “seeds,” preferably located at surface edges or corners. The above approaches either show their limitations in their applications, lack of robustness, lack of generality, or difficulties in computations. The discrete approaches prove useful in certain compression and visualization tasks, where accuracy and interactions are not necessary, but are not useful in more complex tasks such as recognition. The analytic approaches have higher computational burdens and thus far have been limited to either tubular objects, or to segmented objects for which an internal tessellation is available.





13



This is a process similar to identifying curvature maxima of 2D outlines in order to attach to these a skeletal branch as proposed by Levine and I [145]

25

A key goal in defining the shock scaffold in the next chapter is to design a more general representation which addresses these problems by examining efficient methods to compute a simplified graph upon which the remaining parts of the can always be re-constructed at various scales.



Chapter 3

The Shock Scaffold 3.1 Introduction



*P1: Object recognition benefits from a graph structure.

is most useful in applications when A consensus is emerging that the geometric trace of the organized into a set of segments with topological connectivity among these [37, 265, 218, 157, 226, 210]. Such a representation has been defined and used in 2D for object recognition, referred to as the shock graph [134], with a great degree of success (e.g., see Figures 3.1 and 3.2). The shock graph is defined as special points of the flow along the , 1 namely, the sources, relays, and sinks together with curve segments forming links between these points. The goal of this chapter is to define a similar structure in 3D based on the work of Giblin and Kimia [95]. They derived a classification of the into five types of contact points which segregate the topology, with sheets, two different types of curves (i.e., rib-like one type corresponding to the interior of and axial-like), and two types of vertices (i.e., rib ends and axial junctions). This typology then hints at a hypergraph representation when vertices and connectivity by curves bound the sheets [95]. significantly However, in analogy to the 2D case, while this graphical representation of the limits the class of shapes giving rise to it, it does not categorically define the qualitative shape of the object, which is needed to perform reasoning about shapes (e.g., see [92, 186]). What is needed is a classification of the points by types of flow, which leads to a finer partitioning of that is then indicative of the qualitative shape of the object, even without precise dynamic the and geometric information (Figure 3.3.(b)). Combining sphere contact and flow type, as described in [95], provides the foundation for the definition of a 3D shock hypergraph, consisting of nodes, links, and hyperlinks.



















*P2: Main contribution of chapter: Defining a hierarchical shock graph in 3D.

The main contribution of this chapter is to make this definition explicit and precise, and construct a hierarchical form of this representation. The shock hypergraph with geometric and dynamic attributes is a complete representation of shape in that it is always possible to reconstruct the shape from it. However, there is a great deal of redundancy that is inherent in this representation: once 1





The flow along the is a function of the distance from the input samples or boundary outline. It is the part of the gradient of this distance function which is projected onto an sheet or curve.

26

27

Figure 3.1: Example (from [210]) of shock graphs in the presence of partial occlusion. The plot shows the costs of matching shock graphs (airplane versus increasingly occluded ones).

Figure 3.2: Shock graph matching results (from [210]) for a set of 216 shapes selected from the MPEG-7 test database [139]. The 15 nearest matches are shown for a few representative shapes, ordered by their normalized matching costs (indicated below each shape). There are 11 shapes per category.

28

the shock vertices and curves are known, the shock sheets connecting them are rather constrained and variations in the sheets do not affect the overall shape very much. Hence, sheets need not be made explicit if only a categorical or qualitative understanding of shape is required. Similarly, if the shock vertices and the connectivity among them is known one can reconstruct the shock curves, and then the shock sheets, fairly well. We will refer to this hierarchical organization where either shock sheets, or shock sheets and curves, are represented by their boundaries as a shock scaffold.



*P3: Outline of chapter.



In Section 3.2 we summarize the typology of shock points in 3D based on contact spheres and shockwave flow along the , leading to a hierarchical view of the . In Section 3.3, we formally define a three–tier hierarchical view of the in 3D from a hypergraph we call the “augmented” shock scaffold, the shock scaffold proper which is a geometric graph representing sheets implicitly, and, the “reduced” shock scaffold where both sheets and curves are made implicit. The nodes of these graphs are defined as the “singular” points of the flow along , i.e., its sources, relays and sinks. In Section 3.4 we introduce some additional and useful the definitions and notation, in particular the concept of inputs samples as generators, and static and dynamic geometric representations for the sheets, curves, and vertices. In Section 3.5, we study the particular case where generators (input samples) are unorganized point clouds in 3D space, i.e., sets of points with no a priori connectivity knowledge. We derive equations to compute the shock sources, relays, and sinks, and study the possible configurations of generators which distinguish shock relays from sinks. Finally, in Section 3.6 we study the precise relationship existing between  and the Voronoi diagram of 3D clouds of points, by showing that the shock scaffold the   . Specifically, we demonstrate that the in 3D, includes the set of edges and vertices of the when stripped of both the interior of its Voronoi regions and its facets, and cast into a graph form is  a certain sub-graph of the shock scaffold. One useful side-effect of this tight coupling with the is to be able to derive upper bounds on the shock scaffold structure, i.e., maxima on the number of  shock sheets, curves, and vertices, based on existing literature for the .













3.2 Contact Spheres and Shock Points



The Symmetry Set (  ) is the closure of the locus of centers of spheres tangent to smooth surface patches in two or more loci; such bitangent spheres are called “contact spheres.” The is the subset of the   for which all such spheres are maximal [95], i.e., such that no other contact spheres are contained in them.2 The shock structure (SH) arises from a “dynamic” interpretation of the , as the locus of singularities — or shocks — formed in the course of wave propagation from boundaries with associated direction and speed of flow — as in Blum’s grassfire [34] (Figure 3.3). In 2D, shock segments are planar curve segments of the with monotonic flow giving a more refined partition of these segments [225]. Shocks are obtained in 2D either by detecting the singularities of the evolving boundary in a curve evolution (PDE) approach [126, 134] or in a mixed Eulerian–Lagrangian propagation which combines wave propagation and computational geometry





2



Contact with isolated input points is taken as the limit of a contact with tiny spheres having radii shrinking to zero. The maximality criterion is equivalent to “emptyness,” i.e., a maximal contact sphere is such that it contains no other input points.

29

(b)

(a)

 



Figure 3.3: (a) Illustration (from [94]) that the dynamic interpretation of the as a flowing singularity (shock) leads to a finer partition of the trace of the , making qualitative shape attributes explicit. In the top row all shapes have the same static description, while at the bottom, the shock structure segregates between qualitative shape categories, even when only the (oriented) graph topology is kept. Arrows indicate the direction of shock flow, with double arrows signifying higher velocities. (b) Illustration (from [239]) of the formation of shocks: no shocks at b where no contact sphere can be maximal; initial shock at c, an point corresponding to a curvature extremum of the boundary; 2nd order shock at d, an point; 3rd order shock at e, a junction with two in-coming flows, an point; 1st order shock at f, an point where the flow is monotonic (or regular) point; defining a shock segment; termination of a pair of branches at g, a 4th order shock, an another type of 4th order shock at h, an point where 3 branches terminate.

       

 

  

concepts [241, 237, 235]. Based on the above notion of contact with maximal spheres, the classification of shock points denote a circle (in is described by Giblin and Kimia [95, 97], which we now summarize. Let 2D) or a sphere (in 3D) osculating a boundary element at distinct points, each with degree of contact, Figure 3.4: denotes regular tangency; denotes a sphere of curvature for a surface patch; denotes a sphere of curvature at a ridge point; denotes a sphere of curvature at a turning point of a ridge, etc. (Halliman et al. gives [108, Ch.6] a detailed analysis). Only odd orders of contact (i.e., ) can contribute to a type of shock, that is, as being the center of a maximal sphere. Then, a classification based on the number and order of contact [95] , , , and (see Figure 3.4).3 leads to five principal types of shock points:







 

!#"$



 



       %     1.    contact: this is a sphere with two ordinary   contacts. The local form of the   

is such

that the centers of the contact spheres trace a surface which is locally smooth.

2.

3.

&



contact: this is the limiting case of two points which come together; it corresponds in 2D to the center of curvature at a curvature extrema and in 3D to rib lines associated to ridges on the boundary.

 

 

contact: the contact sphere has three ordinary contacts. The local form is one where three sheets come together at a curve, i.e., choosing any 2 of these 3 tangency points and

3 This notation corresponds to the one used to describe singularity varieties of minima functions of three variables in the Singularity Theory of Dynamical Systems, e.g., see the works of Arnold [12]. The “A” comes from the relation to the simple Lie groups of type A.

30

A3

A2

A1



A21

A31  

Figure 3.4: Illustration of the notation  based on contact of a curve with a circle (from [95]). counts order or degree of contact (indicated by straight short dark segments): is regular tangent is regular “curvature” contact, is a curvature maximum contact. The superscript  contact, counts the number of contact points, so that means two contacts. A similar definition holds for the contact of surfaces with spheres.



  

 





moving the sphere so that it remains bitangent to the bounding surface at points close to these two, results in a smooth sheet of the   or for each pair.

    contact: it contains the centers of spheres which have contact with the surface in two places, one near the original   point (i.e., ordinary tangency) and one near the  rib point.  Furthermore, at an    point, an    curve also “terminates” together with the  curve.   5.   contact: the contact sphere has four ordinary contacts, which is generic, i.e., four points in space determine a unique sphere (such that they are not co-linear nor co-circular). At the  (i.e., 6 distinct pairs from 4 contact center of the sphere passes six smooth sheets of the points). An alternative view of this event, is as the combination/intersection of four    curves

4.

(i.e., 4 distinct triplets from 4 contact points).

 

 

Two observations are significant here. First, the topology of each of these types is as follows: points are interior points of a medial surface, also called “sheet;” points organize into curves sheets, called “ribs” or representing ridges on surfaces and are the “exterior” boundary of “skeletal edges;” points organize into curves which are the intersection of three sheets — these curves often correspond to “generalized axis” as well as to “interior” boundary of sheets, and are isolated points where four and are sometimes called “seams” or “axial curves;” or a pair of and curves intersect, respectively.4 We will often refer to maximal contact spheres and their radius function, and introduce the following notation.

 



 



 

  

 

Definition 3.2.1 (Maximal contact sphere,  , and its radius,  ) The maximal (or empty) contact

sphere defined by the shock of the pair of inputs labeled “ ” and “ ” is denoted by  . The



notations   and   refer to tri– and quadri–tangent spheres, while  refers to the higher order contact at a single locus. Associated to contact spheres, is their radius,  , which gives the distance from the sphere center.





   

The well-known example of the corner of a box where three  curves (3 edges) intersect with one  non-generic, i.e., a small perturbation destroys this highly symmetric situation. In generic configurations, one    will intersect at a    point.



4







 

curve is and one

31

(b)

(a)



Figure 3.5: (a) Generic situation for the initial flow of an sheet: from the initial shock   point, a surface radially grows-out to form the shock sheet, a 3D surface; arrows indicate source, an  and  shock some directions of increasing radius values along the sheet. (b) Top: Flows at  shock points, where the number of inward flows is indicated. curves. Bottom: Flows at







Additionally to the typology based on contact, one can construct a notion of flow for each point in the direction of increasing radius, , which leads to a further sub-classification of points in 2D [134], which was recently studied in 3D by Giblin and Kimia [96]. Shocks can flow along   sheets ( ) or curves (  and ) in various ways: they are “regular” and flow monotonically (1st order), they act as a source and initiate flow (2nd order), or can act as a sink and terminate flow (4th order), Figure 3.5 (a) and (b). Third-order shocks are both sources and sinks simultaneously, acting as “relays” of flow. On the one hand they represent the so-called “saddles” for certain sheet configurations. On the other hand, they represent infinitely “fast” flows, which are not generic, but must be considered, especially for human-made objects, as is the case in CAD or numerical machining; for example, consider two planar input patches generating a planar sheet between these.5   vertices where a pair of  and  curve meet, three flow configurations are possible For  [97] (see Figure 3.6): (i) both curves can flow outward (i.e., a source, hence 2nd order); (ii) the can flow outward and the  flow inward (i.e., a relay, hence 3rd order); (iii) both curves flow inward  vertices the classification is based on the number of inward flows (i.e., a sink, or 4th order).6 For  curves, where either 2, 3 or 4 curves flow inward (i.e., 2, 1 or as dictated by the four intersecting 0 flow outward; Figure 3.5.(b), at the bottom). 7 Table 3.3 summarizes the notation. We thus have regular shocks, which constitute the majority of points, as well as singularities of the flow in







5

While many authors reject these degeneracies on the basis of perturbation analysis, we believe it is important to make graph will tend to pass through such them part of our representation, since, under deformations, transitions of the “degenerate” cases [94]. There are good reasons from a perceptual point of view, and an economy of scale, particularly in CAD-like applications, to want to permit the explicit representation of, for example, “noisy squares,” “noisy spheres,” or “bumpy flat surfaces,” as squares, spheres and planes, respectively. 6 The flowing in and flowing out configuration is not possible (see [97] for details). 7 Other configurations, i.e., with 0 or 1 inward flows, are not possible (see [95, 97] for details).





 

32

N A3 1

N

A31

rib

N

rib

A3

(a) 

  

(b) 

A3

A3

ridge

ridge

  

N

A31

rib

rib

A3 ridge

A31

ridge

(c) 

  

(d) Impossible

 

Figure 3.6: From [97]: The four possible ways in which the surface normal,  , the shock curve, and the rib can be related at an shock vertex. Only the first three can occur generically: (a) source, (b) relay, and (c) sink. The flow of  is determined by the angle between a curve and the normal which points in the direction of   , such that inward and outward flows correspond to obtuse and acute angles, respectively. The part of the rib which is on the   but not the is indicated by a broken curve segment.

  



Shock flow Sheet Rib Axis Rib end Axis end



1

2

3

4

        

               

                

                

-

Table 3.1: Final classification of 18 possible shock points based on contact with spheres, flow type.

 

, and

the form of sources, sinks and relays.

 

    Shock source (2nd order): A shock which initiate flow: (i) along a sheet:     ; (ii) along a curve:    ,    ; (iii) at a vertex:      . Regular shock (or 1st order): A shock point at which flow goes through smoothly: (i) along a sheet:    ; (ii) along a curve: , .

         Shock sink (4th order): A shock at which flow type terminates: (i) for a sheet:     ; (ii) for a curve:     ,   ; (iii) for a vertex:    ,       .  into eighteen types of shock points leads to a powerful graph structure This classification of the  

   

Shock relay (3rd order): A shock which is both a source and sink for the flow: (i) for a sheet:  ; (ii) for a curve:  ,  ; (iii) for a vertex:  ,  . ,

for its representation, where regular shock points need not be traced explicitly.

33

3.3 Shock Scaffold — Graph Definitions In this section we define the hierarchical representation for the shock scaffold. Our goal is to propose a small set of representations built from the MA and to make explicit a 3D graph whose nodes are taken from the set of 15 types of shock singularities, i.e., sources, relays, and sinks, and whose links connect the selected nodes. We start with the definition of a general hypergraph, which includes all special points as nodes, special curves as links, and sheets as hyperlinks. We then present coarser versions where hyperlinks have been removed, therefore leaving a graph which is the shock scaffold proper, i.e., made of shock point singularities as nodes, and linked by curve segments forming in space a structure resembling the scaffoldings used to erect buildings. We follow standard definitions of hypergraphs and graphs from the literature (e.g., see [21, 24]); which are constructed from the pair “nodes and (hyper)links.” First, we define the elements we will use to construct the various representations in the hierarchy, i.e., nodes, links, and hyperlinks.

                        

 

is comprised of shock sources, reDefinition 3.3.1 (Shock nodes, ) The set of shock nodes  ,  ,  and  lays,8 and sinks for shock curves and vertices, i.e.: , , points for curves, and all remaining types of and points for vertices. The augmented set  , and  points for sheets. of shock nodes also includes ,







Definition 3.3.2 (Shock (curve) links, ) A shock link, , for each curve segment between two shock nodes is a pair ordered by increasing radius values of these two shock nodes. The links have attributes describing their geometry and dynamics.





Definition 3.3.3 (Shock (sheet) hyperlinks, ) A shock hyperlink for each sheet is the ordered, cyclic set of shock nodes of its boundary. A hyperlink is attributed with geometry and dynamics of the sheet. Note that a hyperlink therefore gives an orientation to the shock sheet. We can now define the first level in our hierarchy, which augments the MA with an oriented graph structure. Definition 3.3.4 (Augmented shock scaffold,   pergraph whose nodes are the set of shock nodes





) The augmented shock scaffold   is the hyconnected by links and hyperlinks .









The advantage of the augmented graph structure over the (“classical”) trace of the is that it organizes the information into groups and specifies their connectivity (Figure 3.7). It is precisely the connectivity among these groups which contains the qualitative information, while the remaining information allows for an exact reconstruction or an approximation of the shape from the shock hypergraph [93]. If we drop from this   the hyperlinks, , which contain the explicit representation of the sheets and their interior, we are left with an “ordinary” graph structure which defines the connectivity among the retained shock nodes via explicit links only. This graph summarizes the .







8

Note that relays for the flow which correspond to degeneracies — i.e., at which the flow travels at infinite speed — can be represented by an arbitrarily selected point along this shock “relay.”

34

(a)



(b)



(c)

  

Figure 3.7: The 3D augmented shock scaffold,   , is illustrated for a few simple shapes. The dark broken lines are surface ridges ( ), the smaller dots are surface vertices ( ), the larger shocks, the interior links have arrows to indicate flow (all ’s here), the hashed sheets nodes are are hyperlinks ( ; not all shown). (a)   for a tetrahedron consists of 5 nodes, 10 links and 6 hyperlinks; (b) for a truncated tetrahedron, we have 8 nodes, 7 links and 9 hyperlinks. (c) Sketch for a branching structure which at the top is a cylinder whose base grows from a triangle of   to an ellipse, and which splits into two cylindrical structures with elliptic bases (only the hyperlink interior to the shape is shown).

 



 



 

Definition 3.3.5 (Shock scaffold,   ) The shock scaffold   is a geometric directed graph, 9 with nodes and links .



In general, the shock scaffold will be connected, i.e., each node in will be reachable from other nodes via a chain, i.e., a succession of links where we allow navigation against the radius flow.10 When the initial data consists of closed boundaries delimiting compact objects, the shock scaffold will be broken into separate sub-graphs for the interior of each such object as well as for the exterior region; each sub-graph will be connected however.   is not a tree in general, i.e., it contains circuits (chains of links forming closed loops). Despite the lack of an explicit representation of sheets, from the   alone we are still able to get a fairly good idea of the shape of the object due to the remaining connectivity. The can be approximated by interpolating the missing sheet points, by stretching smooth elastic surfaces over the links , much as is done when a “tent” is constructed from its scaffold. If we also make the representation of shock curves implicit, we obtain a simpler graph.





Definition 3.3.6 (Reduced shock scaffold,   ) The reduced shock scaffold   link attributes (i.e., geometry and dynamics) have been discarded.



is the  

where

9 A graph is geometric if it has no self intersections via links. More precisely, a graph is geometric if [180, p.26]: (i) when a single link forms a loop, the latter has only 1 node; (ii) every link which does not form a loop contains 2 nodes, which are the endpoints of the link; (iii) every link has no common point with other links, except possibly via its endpoints (i.e., at nodes). 10 The shock scaffold is not strongly connected [180, p.29] in general, i.e., there exists no directed paths between certain pairs of nodes.

35                                                                                                                                                                                                                                                                                                                                   

(a)

                                     



(b)





(c)





(d)



Figure 3.8: From the “classical” static representation to the shock scaffold. (a) Typical situation in 3D, where three medial sheets intersect into a medial curve. (b) Equivalent representation by the augmented shock scaffold, where shock nodes along curves are connected by directed links; hyperlinks cyclic order is indicated by a counterclockwise arrow. (c) Representation by the shock scaffold, where the interior of sheets is implicit. (d) Representation by the reduced shock scaffold, ) where the trace of shock sheets and curves is implicit. Red points correspond to shock (or or . Green points correspond to shock sources of curves, e.g., points. vertices, i.e., Blue points correspond to shock sources of sheets, i.e., points.

     

  

  







The reduced and “ordinary” shock scaffolds have common (graph) properties (of being con  nected, etc.). This three-tier hierarchical representation for the , where   , is     illustrated in Figure 3.8.11 We also note that at the very coarsest level only connectivity amongst nodes need be retained. That is, we could do away with the geometry of nodes and define a strictly abstract graph, where a node is simply a representative of a sheet, curve or vertex. We call this representation, which is void of geometry, the topological scaffold,   (Figure 3.9.(b)). 12 In the paragraph below, we note that links amongst shock nodes of sheets is a possible extension to the shock scaffold representation, which we briefly overview for the sake of completeness.

3.3.1 Explicit representation of shock sheet nodes Thus far in our work we have not tried to characterize shock sheets with a graph structure making explicit the connectivity amongst nodes in a sheet and between these and nodes at the boundary of sheets (i.e., nodes of bounding curves and bounding vertices; Figure 3.9.(a)). This would define a “full” shock hypergraph, denoted  . The complete hierarchy would then comprise five levels of representation, rather than the three used in this thesis, as summarized in Table 3.2. Such an 11





Note that, although we represent the classical view of the without distinguishing medial curves and vertices, some authors do define the with an explicit identification of these, particularly in the domain of CAD (e.g., [244, 188]). 12 Note however, that we use the geometry of shock nodes in the construction of the shock scaffold itself (Chapter 4). And then, the geometry of nodes proves also useful in applications such as surface recovery (Chapter 6).

36

                                                                                                                                                                                                                      

(a)

Level I



(b) 



Figure 3.9: Possible additional levels in the shock scaffold hierarchy. (a) The shock hypergraph adds to sources, relays and sinks of shock sheets and links amongst these as well as with respect to the sheet boundaries. (b) The topological scaffold is obtained from the when only the topology of the graph structure is preserved.

Symbol

II



III IV



V





Features All shock flow singularities, connected via links and hyperlinks. Set of nodes P, links L, and hyperlinks H. Directed graph  P , L  Set of nodes P, and links stripped of geometry. Set of nodes and links stripped of geometry.

Table 3.2: The complete scaffold hierarchy is comprised of five levels. In the thesis, only the three intermediate levels are exploited.



extension requires theoretical developments which have yet to be carried along. 13 The definition of links amongst all possible shock singularities of sheets has been suggested in the past in the work of Nackman and Pizer [175, 176]. They require the radius function along the sheet to be a Morse function, i.e., a twice-differentiable map on the shock sheet seen as a 2D topographical surface [164]. The critical points of this map (i.e., where its gradient is zero) may be put into correspondance with the shock nodes for a sheet:   are alike peaks or fountains (for the flow),     are alike passes or saddles, and      are alike pits or sinks. These critical points are then connected by following lines of steepest descent (i.e., defining the classical hills and dales of Cayley [61] and Maxwell [163]). Such a representation has also been proposed in geography to characterize topographical maps, and has been called “surface networks” [192]. 14 The automation of the construction of such a representation, and its generalization to non-Morse functions is still an active area of research [256]. Surface networks may prove useful when we shall explicitly consider input samples made from curved surface patches, to more precisely characterize the redundant information present in their shock sheets. Finally, we also note that there is an alternative way of defining a “shock scaffold” via the concept of a representative graph of an hypergraph [24, p.31], where one node is selected per hyperlink, and where a link is built for each pair of representative nodes such that their corresponding pair of



13

E.g., we may rely on shortest geodesics along a surface [205, 252], but certain configurations of flow along sheets and curves may not lead to obvious ways of linking pairs of shock nodes, i.e., from the interior of a sheet to a curve boundary. 14





In this case, one uses the height of the surface as the Morse function, instead of the radius function of the . In fact, this offers an alternative to describe sheets, by characterizing directly their geometry — a (smooth) surface can always be seen as a height function, or Monge surface, in a local neighborhood [57].

37

hyperlinks have a non-null intersection, i.e., such that they share one or more nodes. This leads to an abstract set of links which avoids the pitfalls of links defined by the geometry of the flow fields along sheets and curves, but at the cost of throwing away most of the geometric information.

3.4 Other Definitions: Generators, Shock Geometry In this section we give some additional definitions useful when specifying the shock scaffold for particular classes of input data. First we define input data as “geometric generators,” i.e., we see these as geometric entities (points, lines, polygons, surface patches, etc.), being the initial source of propagation of information. Then we will consider the explicit geometric representations of shock sheets, curves and vertices.

3.4.1 Geometric Inputs as Generators



Definition 3.4.1 (Generators (vector-based notation)) A set ties lying in  , where is positive and finite:



of



independent geometric enti-

               



Geometric entities may include endpoint coordinates, sets of equations describing the input’s trace in  (such as is the case for polygonal elements), a density function describing a limiting zone of influence (say, in the form of a fixed radius) or a probability measure, etc. 15 Definition 3.4.2 (Point generators) A particular example of generators, of practical importance, that we will consider at length in the following, are points, for which the basic defining geo , metric entity is simply the Cartesian coordinates of the position of the point:   .

   

       

In Chapter 7 we consider in detail another class of inputs of practical importance, namely polygonal generators. Finally, we make the following remark concerning degenerate configurations of generators. Remark 3.4.1 (Degeneracies) In the literature, it is often assumed that the generators are not in “degenerate” situations, including overlapping, being collinear or coplanar, and being cocircular or cospherical. For example, it is usually assumed that “no sets of five generators are cospherical, and no sets of four generators are coplanar.” Small random perturbations added to the input coordinates is a common practice in order to satisfy — with high probability — this assumption. We do not require such an assumption in the definition and computation of the shock scaffold, as practical scanning methods may produce such “degeneracies” and we believe this should be exploited rather than thrown away.16 15 16

We use boldface to indicate either a vector or a list. This relates to our inclusion of degenerate shocks as 3rd order flows.

38

3.4.2 Geometry of Shocks: Static and Dynamic Representations



We now consider explicit representations for shock sheets, curves and vertices, useful in particular when constructing the augmented shock scaffold,   , or reconstructions of the MA based on the shock scaffold. In the following we will always assume that sheets and curves have a limited extent. Assumption 3.4.1 (All computations are restricted to a finite region of space) To simplify computations, sheets and curves which would otherwise go to infinity are always assumed to be bounded by curves and vertices, respectively, at finite distances from the generators. For example, we may introduce a virtual “bounding box” or “sphere” containing the convex hull of such that its intersection with the (previously) unbounded shock sheets and curves forces them to be of finite extent.



Shock Sheets: A shock sheet is defined as a surface patch — embedded in  — made of a dense

shock points, each of which is the center of a maximal sphere,  . By construction, a set of shock sheet is completely bounded by a set of shock curves, i.e., it has a boundary. Hence, once we know the static nature of the sheet, e.g., if it is a planar or a certain curved surface patch, we can always trace it back from its boundary.

 

Definition 3.4.3 (Static representation of a Shock Sheet) The shock sheet is represented by (i) a set of shock curves forming a closed boundary for the sheet, and (ii) a system of equations describing the geometry of the surface.

           



Typically, the system of equations in (ii) is expressed in terms of the three spatial coordinate vari

ables in   and describes the bisector, , obtained by solving the following implicit system:



where and represent the distance from generator function, i.e.,

and . Note that this system can be reduced in certain cases to a simple label, e.g., “plane” from or “triangle.” Unless the system of equations in (ii) precisely encodes the shock flow generating the shock sheet, we will loose its specific dynamics; we may want to preserve such information, to later precisely regenerate the inputs.





Definition 3.4.4 (Dynamic representation of a Shock Sheet) The shock sheet is represented by (i) a set of shock curves forming a closed boundary for the sheet, and (ii) a system of equations describing the generative geometry of the surface together with the critical conditions of flow, i.e., the ,  and  shocks.

    

 

  

By “generative” we mean a system of equations which explicitly encodes the shock flow dynamics from the initial shock source, , until the entire flow terminates into sinks or shock curves. Thus, the system of equations in (ii) is typically expressed in terms of four, not three, variables: three spatial ones and one for time of propagation (of flow). This dynamic representation necessitates to define equations with a “time” variable. A natural way to do this in the context of the is to identify time with the distance from generator [34]:



39



Definition 3.4.5 (Time Variable as Distance of Propagation or Radius of Contact) To describe the dynamics of flow along sheets and curves, we identify time to the distance from generators, , or, equivalently, we identify time to the radius,  , of contact spheres,  .

  

Hence, we can now track the creation of a shock sheet by tracing values of the level sets where the

. two distance functions collide in space. These level sets are simply given as:



Shock Curves: A shock curve is defined as a curve segment — embedded in  — made of a

dense set of or shock points, each of which is the center of a maximal sphere,   or  , respectively. By construction, a shock curve is completely bounded by a pair of shock vertices, i.e., it has a boundary. Hence, once we know the static nature of the curve, e.g., if it is a straight or a certain conical curve segment, we can always trace it back from its boundary.

   





Definition 3.4.6 (Static representation of a Shock Curve) The shock curve is represented by (i) a pair of shock vertices closing its boundary at both ends of the curve, and (ii) a system of equations describing the geometry of the curve.



  

shock curve, the system of equations in (ii) is expressed in terms of three For example, for a 

, and  , one for each possible pairing between generators. One of these system bisectors, is redundant, i.e., only two intersecting sheets are needed to define a curve. We may pick any of the

two bisectors and obtain an implicit system of two equations, e.g.: and    .

      

      

  

  

Definition 3.4.7 (Dynamic representation of a Shock Curve) The shock curve is represented by (i) a pair of shock vertices forming its boundary at both ends, and (ii) a system of equations describing the generative geometry of the curve together with the critical conditions of flow, i.e., with either a set of ,  and  shocks, or ,  and  shocks.

    

 

    

 

The system of equations in (ii) is expressed in terms of four variables: three spatial ones and one for time of propagation (of flow). We can track the creation of a shock curve by tracing values of the level sets where the three distance functions collide in space. These level sets are simply given by

 . solving the system:

    



 



  which is the center of a maximal sphere,     shocks.

Shock Vertices: A shock vertex is simply a point in



  in the case of shocks and  in the case of

Definition 3.4.8 (Static representation of a Shock Vertex) The shock vertex is represented by a system of equations describing its position in space.

 

For example, for a shock, the system of equations can be expressed in terms of six bisectors, one for each possible pairing between the four generators. Three of these systems are redundant, i.e., only three intersecting and distinct sheets are needed to define a point. The above definitions are generic in that they are applicable to any geometric input types. In the remaining of this chapter, we will focus our attention on the important special case of unorganized clouds of points.

40

Shock flow Sheet Axis Axis end

1

   

2

3 -

4 -

                  

-

Table 3.3: Final classification of eight possible shock points based on contact with spheres, flow type, when generators are points only.

 

, and

3.5 Scaffold for Unorganized Point Clouds Consider as the generators, clouds of unorganized points, i.e., for which no a priori proximity relationship is known, e.g., as they arise from laser scanners. In this case, there can be no explicit curve (rib), nor any vertex (rib end). Also, there are no third order shocks for sheets. Furthermore, since there are no shock sinks in the interior of sheets, nor in the interior of curves, we  and  shocks from the representation. Hence, we are left with only eight can drop the possible shock points, out of eighteen, as shown in Table 3.3. We will see in this section that the geometric structure of the is constructed from “linear” element only, i.e., planar patches for shock sheets and straight line segment for shock curves. Also, in the following, we will make use of Mobius’ barycentric coordinates [69, 38], as a unifying intrinsic coordinate system, to express the loci and special geometries of all shock sources, relays and sinks. In the remaining of this section we first consider the static and dynamic representations of the shock sheet formation, and then proceed to study the shock curve and shock vertex geometry.



    

 

3.5.1 Shock Sheets:





 : Planes and Midpoints  

The bisector, for a pair of points, , is the plane orthogonal to the line joining these two generators. The (static) geometry of the shock sheet is obtained by equating the distance functions from the pair of generators. In order to express the bisector’s geometry in the static form, we solve



for the following implicit system: , with squares to remove With    square roots.  point generators the distance function is simply of the form: , which gives the following implicit polynomial form of the bisector:

      



                                                      which we recognize immediately as the equation of a plane.         . To simplify the To study the dynamics of formation of the sheet, we consider  analysis, we consider    that  the pair of  generators  are at a distance  from each other along the    

      and       . This is generic as any other such pair axis, i.e.:  can be brought to this configuration by a rigid transformation. With this choice of configuration,   , thus the 3rd coordinate is fixed. Then, we may take  or  theas shock sheet itself is the plane  a parameter  , to obtain the following out intersections of the two distance      parameterization      to  trace   . For varying   , we get   functions as a function of  :   , starting at the origin (Figure 3.10). concentric circles (around the axis) in the plane  













 

41

   

Figure 3.10: Two point generators (tiny spheres in red and green) at distance from each other along the axis generate a shock plane (in grey) at mid-distance between them ( ). In blue  are shown the circular shocks sweeping this plane for radii (time)  , here for the following     distinct values:  .

 

    

In order to directly compute the initial shock point of the sheet from the generators, i.e., without having to resort to finding a rigid transformation, consider the unique line passing through the pair of generators under scrutiny. Then, the midpoint between the generator pair along that line is

the shock. An arbitrary point,  , on a line specified by a pair of generators, can      

 , s.t.:   be expressed in terms of its barycentric coordinates and       . Note that the coordinates are both positive only if  is located between the two     generators, and in particular, the midpoint locus corresponds to ; thus:



  





   

   3.5.2 Shock Curves:













 



 



"! #

!$%'&( #



   

&)*,+ #-+./

(3.1)

 : Lines and Triangle Circumcenters

We have three generators interacting via three bisectors. However, only two such shock sheets are sufficient to define the shock curve at their intersection, the third pairing of generators being



 redundant here, which gives us, e.g.: and  . Each bisector being a plane, their intersection traces out either a line or the null set if the triplet of generators is collinear. In the generic case, the shock source for the curve is the circumcenter of the triangle defined by the triplet of generators.17 An arbitrary point,  , in the plane of the triangle specifiedby the triplet     0 , s.t.: of generators, can be expressed in terms of its barycentric coordinates  

   , where   0       0  0 . Note that these coordinates are all  positive only if  is located within the triangle specified by the triplet of generators. A nice result is expressed in terms of the cosines of the internal angles from classical geometry gives us that of the triangle [70], or equivalently, in terms of lengths of the sides of the triangle:

      





  



 

      





 





 



17

It is called circumcenter as it corresponds to the unique (circum)circle passing through the triplet of generators. This circumcircle is a great circle for the associated maximal contact sphere 132 4,5 .

42



 

0

             

 

            

   

             



 

  

 and  

 

 are the squared edge lengths,  

 







 

 , 

  the circum-radius and the area of the triangle. where,

(3.2)

denotes

This is an inherently robust and simple way

18

of computing the circumcenters. It is robust because zero length sides are easily detected, and the corresponding shock rejected since it implies an overlap of generators. It is simple, since the length , are most of the time already available from the corresponding pairings associated factors, to shock sheets; i.e., at least two of the factors are pre-computed, since we need a minimum of two sheets to intersect and define an shock at the circumcenter of the corresponding triplet of generators. Thus, we have:

  

  

      

 









 

 

 

 

0





But note that, in fact, we only need to evaluate explicitly two  of the three barycentric coordinates,     0 since we also have the geometric constraint (of co-planarity) . For example, let us

 assume we are intersecting the sheets (bisectors) and , i.e., we already know and . We first compute the length factor and get the simpler formula:

  













 











 0





 







  

which can be interpreted as moving along the triangle’s edges given by the pairs and  , starting from , by “marching factors”   and 0  , respectively. In essence, we have expressed the circumcenter computation in a local coordinate frame for the triangle, with “origin” , which leads to more accuracy in practice when using floating point operations than by relying directly on absolute coordinates as it brings all calculations near the origin [221]. Furthermore, the signs of the barycentric coordinates tell us at no additional cost in which configuration of triangles we are, i.e.:

 

1. Acute: If all coordinates are positive, the triangle is acute, the circumcenter is within the triangle, and the corresponding shock curve flows out of it on both sides of the triangle plane, along its normals (Figure 3.11.(a)). 2. Obtuse: If one of the coordinates is negative, the triangle is obtuse, the circumcenter is outside the triangle (from the side opposite to the corresponding generator having negative coordinate), but still in the plane of that triangle (Figure 3.11.(b)). From this circumcenter flows out

                           

18

in:

The area of the triangle can also be expressed in terms of the squared edge lengths, e.g., via Heron’s formula resulting .

43

Gi

Gi

O3

Gi Gk

Gk

O3 Gk

O3 Gj

Gj (a) Acute

Gj (b) Obtuse

(c) Right

Figure 3.11: Possible configurations of triplets of generators creating (a) acute or (b) obtuse triangles. (c) The limit case between these is the right triangle configuration. Generators are shown as grey dots, valid sources of shock sheets between pairs of generators are shown as small blue squares, and the source of a shock curve, sitting at the circumcenter, , of the triangular configuration, is shown as a small green triangle. Directions of flow along sheets are indicated by shock arrows in this 2D projection in the plane of the triangle. Note that in (b) the non-valid   for the pair is indicated as an empty small square, the “new” sheet which comes  out of the shock is due to this pair, and the barycentric coordinate for is negative, i.e., . shock at the midpoint of the hypotenuse coincides with the Note also that in (c) the   shock at the circumcenter, and the barycentric coordinate for vanishes, i.e., .

     

  

 



 



  









  



 

shock curve in two opposite directions, along normals to the plane of the triangle, as a well as a new shock sheet, in the form of a circular segment, 19 growing perpendicularly to the plane of the triangle, and limited on one side by the shock curves. The limit case between these two is when a coordinate vanishes, which is indicative of a right triangle configuration (Figure 3.11.(c)). 20 This analysis completes the static representation of the shock curve of a triplet of point generators. The dynamics for the curve are trivial: the straight line is initiated at the point and it grows on each sides of the triangle defined by the generators, along the normal to that triangle, at a rate defined by the gradient of the radius function,   .

 

 

3.5.3 Shock Vertices:

 : Tetrahedra Circumcenters

We have four generators interacting via up to six bisectors. However, from the geometry alone, only three such shock sheets are sufficient to define the shock vertex at their intersection. Each bisector being a plane, and each pair of planes defining a different shock curve, their intersection 19





 

A circular segment is a portion of a disk whose upper boundary is a circular arc and whose lower boundary are a pair  of chords making a central angle radians. Here the chords are defined by the  shock curve and . 20 The cases of two coordinates being negative or vanishing are not possible for a circumcenter, i.e., such that their exist a real circle passing through the three generators. Barycentric coordinates for triangular configurations divide the plane in 7 regions: 1 inside the triangle, 3 opposite each edge and 3 opposite each vertex. Of these 7 regions, the circumcenter   , can be located in the first 4.



44

traces out either a point or the null set if the quadruplet of generators is co-planar. In the generic case, the resulting shock vertex is computed as the circumcenter of the tetrahedron defined by 21 An arbitrary point,  , can be expressed in terms of barycentric coordinates the four generators.     

       , where   0  0  0  0 :  . Note   that the barycentric coordinates are all positive only if  is located within the tetrahedron specified by the quadruplet of generators. Again, a nice result from classical geometry gives us that can be expressed strictly in terms of the (squared) lengths of the sides of the tetrahedron [19]:





  



  







   





where, and 

  

       

 



 

    

 

     





  

 







 



  





 

    

 

















 

 

   

  

 , 



       



   

   are the same as for the triangle case above, and 

   

 . Note that, additionally, we have the identity:

 

                 

    (3.3)       















where  denotes the volume of the tetrahedron, and denotes the Cayley-Menger determinant of simplices [25].22 And finally we get that the barycentric coordinates for are:  

     







 

 

0





 

 





 





Thus, goes to infinity as the  goes to zero, i.e., as the squared volume of the tetrahedron vanishes, or, equivalently, as the tetrahedron becomes flat. But, note that we need at least one dihedral angle to become large (the equivalent of an obtuse triangle), as a very small tetrahedron may still have a well-defined circumcenter. As for the case of the triangle, we can further simplify the above system      0 of coordinates for the circumcenter, by employing the constraint . We obtain, for example when taking as the origin of the local coordinate frame:













 









 0

  





 





       





 

Again, the remaining barycentric coordinates, here  0 as “marching fac , can be interpreted  and , linked at tors” along the trihedron’s edges defined by the pairs , the “origin” of the local coordinate frame. Furthermore, similarly to the case of the shock curve above, the sign of the barycentric 23 coordinates tell us at no additional cost in which configuration of tetrahedron we are, i.e.:



 

Similarly to the triangle case, associated to  is a circumsphere passing through the four generators: this is identically the maximal contact sphere 1 2 4,5 .  ” in front of  corresponds to “    .” Note also that each of the coordinates ! ! !  ! , 22 The factor “ corresponds to one of the minors of the Cayley-Menger determinant. 23 More precisely, each coordinate is proportional to the signed distance of the line subtended from a generator (say " 2 ) through an arbitrary point, here the circumcenter, # , to its intercepts with the face of the tetrahedron opposite the given generator (here the triangle defined by the triplet $" 4 " 5 "%'& ). 21





  



45

Gi

Gk

Gi

Gi

Gk Gj

Gj Gk O4

       

Gl Gj

O4 Gl

(a) Interior

(b) Ext.-Trihedral

Gl O4

(c) Ext.-Dihedral

       

Figure 3.12: Possible configurations of quadruplets of generators creating (a) interior, (b) exterior– trihedral, or (c) exterior–dihedral tetrahedra. Generators are shown as grey dots, valid sources of shock curves for triplets of generators are shown as small green triangles, and the shock vertex, sitting at the circumcenter, , of the tetrahedral configuration, is shown as a small red disk. Directions of flow along curves are indicated by arrows. Note that in (b) the non-valid shock   for the triplet is indicated as an empty small triangle. The “new” curve which comes out of the  shock is due to this triplet. The truncated trihedral region where can be located for this configuration, according to its barycentric  coordinates, is delimited by the three red dashed  lines. Here the coordinate for is negative, i.e., . In (c) the pair of non-valid shocks

  for the triplets and are also indicated as empty small triangles. The pair “new” curves which comes out of the

shock are due to these two triplets, and are bounding a new sheet due to the shared pair , indicated as a blue hashed planar region. The dihedral (roof) region where can be located for this configuration is delimited by the four red dashed      0 lines. Here the coordinates for and are negative, i.e., .

 

  



  





        







 



  

46

    

Figure 3.13: Top: Two views of an example of an  shock, with 3 incoming curves and 1 (new) exiting. Bottom: Two views of an example of an shock, with 2 incoming and 2 (new) exiting curves, which bound a new sheet (not shown). The large spheres represent generators; white spheres correspond to positive barycentric coordinates. Small dark green spheres correspond to “invalid” loci associated to a new shock curve (i.e., they are part of the   not the ). Indeed the “initial” valid starting point for each new curve is at the locus (shown as a red sphere).

 





47

 

 

 

1. Interior: If all coordinates are positive, the circumcenter is within the tetrahedron, the four  shock curves flow inward and the corresponding shock vertex is a sink, i.e., an (Figure 3.12.(a)). 2. Exterior–Trihedral: If only one of the coordinates is negative, the circumcenter lies outside the tetrahedron in one of four truncated trihedral regions, directly on the opposite side of the corresponding tetrahedron’s face (i.e., opposite the generator which has the associated negative coordinate). Three shock curves flow inward at the and out of this circumcenter flows a new shock curve in a single direction. This is the case of an  shock vertex relay (Figures 3.12.(b) and 3.13).

 

 

 

 

3. Exterior–Dihedral: If two coordinates are negative, the circumcenter lies outside the tetrahedron in one of six dihedral roof regions opposite a pair of tetrahedron faces and opposite the shared edge, with respect to the pair of generators associated to these negative coordinates. shock curves flow inward at the , out of this circumcenter flows a pair of While two new uni-directional shock curves, bounding a new shock sheet. This is the case of an shock vertex relay (Figures 3.12.(c) and 3.13).

  

 

 

 

 

Similarly to the case of the right triangle, the limit cases here are when one or two coordinates reaches a tetrahedron’s face — at its corresponding locus — or vanish, or equivalently, when edge — at its midpoint or locus.24 As we change the positions of one or more of the four generators we can transit between the is always located at the intercept of the four normals elevated three configurations. Notice that from each triangular face of the tetrahedron, with their foot at the locus of their respective face, i.e., at the “candidate” position (part of the   , not necessarily the ; Figure 3.12). Hence, navigates we can fix one triangular face and move the remaining fourth generator to see how “up and down” in space along the fixed normal vector. This fixed triangular face can itself be either acute or obtuse, and thus the normal vector can sit either inside or outside of the fixed triangular face. In both scenarios, we can have be located inside or outside the tetrahedron. Note that, we expect to transit back and forth between the interior and exterior-trihedral, and the exterior-trihedral and exterior-dihedral configurations. It is unlikely (non-generic) that we will transit back and forth between the interior and exterior-dihedral configurations, as this requires to have precisely go through one edge of the tetrahedron.



  







 







3.6 The shock scaffold and the Voronoi diagram of 3D point clouds We first recall a few basic definitions that we specialize to the 3D case. 24

Other cases are not relevant for circumcenters, i.e., no three coordinates can all be negative or vanish, or, in other words, we cannot construct a real circumsphere through 4 points with such barycentric coordinates for its center. And of course, we can never have four simultaneous negative quadrilinear coordinates, as their sum must be positive. Hence, barycentric coordinates “cut” space in 15 regions: 1 inside the tetrahedron, four opposite to each face, six opposite each  edges and four opposite each vertex. Of these 15 regions  can be located in the first eleven.

48



Definition 3.6.1 (Voronoi region,  ) The Voronoi region of a generator set of points closer to than to any other generators of :

      





  

 

  



 



 



,



, is the

 



Alternative definitions are possible, for example in terms of the intersections of bisectors delimiting half-spaces (e.g., see [198, 16, 180]). With point clouds, each Voronoi region associated to a generator is a convex polyhedron. The collection of all Voronoi regions constitutes the Voronoi diagram: Definition 3.6.2 (Voronoi diagram (



 



) ) The Voronoi diagram for

    







generators is defined as



With our use of inequalities above, each Voronoi region forms a closed set, and it contains its boundary.25 The interior of a Voronoi region26 and its boundary are comprehensively detailed via the  notion of -face:









  



Voronoi region(s) Definition 3.6.3 ( -face ) A -face is the non-empty intersection of   in  [180, p.378]. For example, in 3D, -faces are vertices, -faces are edges, -faces are facets, and  -faces are polyhedra.





   

       Thus, in 3D the vertices, edges and facets are of order    while polyhedra are of order   . We note that the boundaries of a Voronoi region correspond to the set of points in   which are at equal distance from generators, by pairs for faces, by triplets for edges, and by quadruplets  elements and Voronoi region for vertices. Hence, there is an equivalence relation between   curves coincide, and sheets coincide, Voronoi edges and boundaries: Voronoi facets and  so does Voronoi and (  ) vertices.  = boundaries of  ) The medial axis and the boundaries of the Observation 3.6.1 (Trace of 

Proposition 3.6.1 ( Cardinality of -faces ) The number of of the Voronoi diagram for  -faces   generators in an  D space is of cardinality , for  [135].27 



28

Voronoi regions for points clouds in 3D coincide in trace.

 In order to relate the shock scaffold which is a graph structure to the , we first need to define  a graph structure from the . The Voronoi graph is sometime defined and used in the literature in 2D (e.g., see [180, p.63]).29 However, there is no equivalent notion in 3D as far as we know. 25

A definition of Voronoi regions as open sets is also acceptable [180, p.45]. Also called cells, foams [119], receptive fields [162]. 27 The operator give the integer value of the “ceiling” of , i.e., the closest integer upper-bounding . Precise formula for the general D case are given in [180, pp.65-66]. 28 These are upper-bounds, i.e., for worst-case scenario. 29 It also comes under the name of Voronoi network in 2D [180, p.46], when a metric is used to define a route distance along links. 26

 





49

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (a) 

(b)



(c)



Figure 3.14: Example of a 2D Voronoi diagram (a), medial axis (b), and shock scaffold (c) for a set of eleven point generators (large grey disks) in the plane. Voronoi or shock vertices are indicated as smaller green disks, Voronoi edges or shock curves are drawn as straight lines, Voronoi regions are  shock sources are indicated as blue squares. In (b) we see that the hashed in red. In (c), minus the interior of its Voronoi regions coincides with the .

  





Definition 3.6.4 (Voronoi graph, ) In 3D, let the Voronoi vertices form nodes and Voronoi edges  form links which together define the Voronoi graph, denoted . In practice, and as was the case for the   we assume that Voronoi facets which go to infinity on one side are bounded by edges meeting there, in the fashion of vanishing points. Alternatively, we may introduce a virtual “bounding box” or “sphere” containing the convex hull of such that  is then a its intersection with the (previously) unbounded Voronoi regions makes them finite; geometric graph, much alike the   , sharing with the latter some of its nodes and links. This leads us to the main result of this section. Proposition 3.6.2 ( shock scaffold.



Proof:









) In 3D and for point clouds, the Voronoi graph is a sub-graph of the









 



To show that the Voronoi graph is a sub-graph of the shock scaffold   , it must satisfy the following three properties (e.g., see [45, p.4]): (i) ,   this is true since all Voronoi nodes are identically points; (ii) , this is also true since  each link is part of the MA trace and either have an identically corresponding link in   , or it can be constructed by joining a sequence of adjacent links in   where the join is specified by an  shock; (iii) finally, the end-points of links in the are identical to the end-points of their corresponding links   (same shock points). QED  Observe, however, that the   is not itself a sub-graph of the since the   has additional geometric structure in the form of additional nodes and pairs of links which subdivide [45,  p.14] certain Voronoi edges. Another important difference between the   and the is that the links in the latter are not directional, while all shock scaffold structures have vectors fields associated

 



 



 

  



 

50

to them in the direction of shock flow, i.e., in the direction of increasing maximal contact sphere radius values (Figure 3.14). Hence, the links of the   are attributed with dynamic flow information, while the Voronoi structure is typically viewed topologically.

3.6.1 Bounds on the shock scaffold elements Now that we have established the formal relationship between the Voronoi and shock scaffold structures, we can derive from well-known properties of Voronoi diagrams equivalent properties for the   . Of particular importance for computational schemes is the knowledge of upper-bounds on the size the   in 3D, in order to characterize convergence properties and maximum memory requirements.





Proposition 3.6.3 (Upper bounds on shock scaffold structures in  ) For upper bounds on the shock scaffold structures: tors in  , we have the following    shock vertices:      shock curves:   shock sheets:



                     



 point genera-

                  point generators in   , the -faces of the Voronoi diagram have the following

Proof: For  upper bounds [135, 213, 180]:

                         Therefore, the maximum number of -faces (vertices) is    max        , the maximum number of -faces, the(facets)  imum number of -faces (edges) is           , and the maximum number of  -faces (polyhedra) is      . Thus, is 

















 



 

we get directly upper-bounds on the shock scaffold structure, by identifying Voronoi vertices with shocks, Voronoi edges with shock curves, and Voronoi facets with shock sheets.30 Thus, structural complexity. In the shock scaffold of clouds of points in 3D has, in the worst case, practice, however, we observe a structural complexity linear in the number of generators, in agreement with reports from other authors computing Voronoi diagrams of similar 3D datasets (e.g., see [3]). QED

3.6.2 Convergence toward the 

  

of a surface

 

The issue of convergence has been addressed extensively in the computational geometry and CAD literature, when using the Voronoi diagram to approximate the of a surface (e.g., see [208, 52, 51, 244, 3, 4, 5, 79, 110]). In 2D, it was first shown in the late 1980’s [208] and early 1990’s [52, 51] that the locus of Voronoi vertices will converge to the of as the sampling density increases to infinity for smooth boundaries [208] (see the top row of Figure 3.15). 31 However,

 





 









There is at most one  and  shock source per  shock sheet and  shock curve, respectively. 31 A related issue is the problem of slow convergence of the Voronoi vertices near curvature extrema in 2D, and near ridges in 3D; see [208, 244] for details. 30

51





 

the reverse statement that each point of the of is reachable by Voronoi vertices is not true without the smoothness requirement. Indeed a boundary, such as a polygon, can give rise to segments which are not reachable by sequences of Voronoi vertices as the sampling density is augmented (as shown in the third row of Figure 3.15). An extremely important distinction that is typically lost in comparing the shock graph and Voronoi diagram approaches is that while in the latter the sequence of Voronoi vertices is the quantity whose convergence to the is considered, in the former a sequence of regularized shock graphs is the quantity of interest. Specifically, the shock graph of the point cloud in 2D or 3D is first computed and then regularized by segregating out those portions that likely arise from the sampling process. Given any fixed set of regularization parameters, one can then consider the convergence of the regularized shock graph to the of the shape. Note that the regularization includes all transformations whose effect falls below regularization threshold, i.e., not only adjacent sampled points are interpolated and their associated shock curve removed, but also shock curves arising from small perturbations are also removed. For an example of this process consider Figure 3.15. Also note that  with respect to continuous boundaries is resolved in the shock graph the limitation of the approach: there is an in the “gap” left by shocks, such that the shock graph remains explicitly connected. Such gaps typically occur for necks of the boundary and are not degenerated in the space of triangulated meshes (Figure 3.15). The proof of convergence for shock graphs is not formal at this stage but has been experimentally validated. The natural question is then whether the above holds in 3D, namely, does the locus of Voronoi vertices converge to the of as the sampling density augments. Let sampling density refer to the inverse of the radius of the largest maximal ball among all point samples in . 32 Unfortunately, as the density augments, we cannot guarantee that the Voronoi vertices recede away from the surface and reach the of [244, 3]. For example, for a very flat tetrahedron the circumcenter remains arbitrarily close to its faces or its interior. Note that in 2D this problem does not occur because flat triangles are necessarily obtuse and see their circumcenter recede far away from the boundary, and converge on the of . This is clearly a problem for smooth surfaces 33 where the principal curvatures have an upper-bound and as a result the of cannot come close to the surface. Therefore, under a point sampling of the surface of arbitrarily high density, one cannot guarantee the convergence of arbitrary sequences of Voronoi vertices to the of (Figure 3.16). It should be noted that the above fundamental difficulty in the Voronoi diagram approach has lead to some recent work which attempts to identify the appropriate subset of the Voronoi vertices which would always converge to the of as density augments. Amenta et al. define and show that “poles,” i.e., the two farthest Voronoi vertices of a Voronoi region of a given point sample, located on each side of the unknown surface, will have the desired convergence property [4, 5]. shocks) associated to a point sample they first Specifically, among all Voronoi vertices (or 34 pick the farthest one, denoted . This defines a radius vector . Among the remaining









   





 



















 





  

32



This definition takes into account cases where samples come close in some directions along the surface, yet leave large gaps in others. 33 The presence of Voronoi vertices “in between” the surface and the of  is not necessarily a problem for discontinuous surfaces, as the of  reaches the surface at discontinous  points.  34 Note that, since  is the locus of an  shock, the vector " 2  correspond to the (opposite of the) radius vector for the associated circumsphere (i.e., a maximal contact sphere) through a quadruplet of generators including " 2 .





 



52

(a)

(b)

(c)

(d)



Figure 3.15: A key difference between the shock graph and Voronoi diagram methods is that, in the latter, the is approximated by the locus of the Voronoi vertices, while in the former, the is approximated by the locus of a graph. This has implications for the convergence to the true of a smooth boundary as the sampling density is increased. (a) Example of the convergence of sequences of Voronoi vertices in 2D (dark red circles) when sampling (light grey circles) a smooth contour with increasing density as shown from left to right. (b) The same example shown with the pruned shock graph (two adjacent boundary samples are linked when their associated radius at the shock is below a fixed ; shocks are indicated as small blue squares on the left and omitted otherwise, for better visibility). However, while the set of Voronoi vertices in 2D converges for boundaries, this is not necessary true for boundaries as shown in (c); but the to the shock graph does converge in this case as shown in (d).

 

 







  





53

                             S        G 1                                     1                                                                                                                                                          2  MA A1                                                                           G  2    S 2 (a) 

                             S                                             1                                              4  A1                                                                                                                                 MA                                                                                                                                                                                                                                                                                   S  (b) 2





   







Figure 3.16: In (a) is shown a pair of smooth surfaces and with their associated sheet in between. A pair of symmetric surface points are also shown together with their maximal contact sphere whose center, an shock, lies on the . A smaller sphere is also shown in contact with at whose center is shown as a red dot. In (b) we grow a little this sphere so that it intersects the surface , and we arbitrarily pick from this intersection four points which are retained as samples of . We further sample and making sure no other samples is within the domain of the sphere intersecting . The center of that sphere is thus an shock for this sampling. Note that this shock is not on the of the pair . This process can be repeated for arbitrary sphere radii and sampling density.





 















 









  

 

54



  

  

Voronoi vertices, consider their radius vector linking them to , compute their scalar product with , pick for second pole the one having largest negative projection onto , and denote it . Such a pair of poles (or shock vertices) reaches the of as density increases converges to the surface normal [4]. Note however that a new difficulty [4, 5].35 Furthermore, is introduced: by throwing away many Voronoi vertices in this fashion, the topology of the resulting approximation to the cannot be guaranteed to converge to that of the of [110]. Our approach to “throwing away” structure from the shock scaffold to first approximate and then converge to the of is different. Rather than focusing on dense sets of vertices, such as a shocks, we work on a graph representation of the itself via the shock scaffold, subset of the and prune part of its graph structure by pieces comprised of nodes and links used to build in 3D a surface interpolant (Chapter 6), or in 2D a contour interpolant, e.g., such as in Figure 3.15. This , when removing some has the key advantage that we do not get rid of the local topology of the nodes and links: the remaining links are still connected. Another important advantage with respect to the approaches based on Voronoi vertices, such as found in [244, 3, 5, 79], is that we are not limited to surfaces, and can process polyhedral objects in 3D for example. However, the scaffold simplification gives the original with hairs, possibly connecting the to those shocks 36 left in between the surface and the true ends of the . This will require further developments to of and is not tackled in this thesis. ensure the convergence of a pruned scaffold to the Having established all the basic geometric elements of the   for unorganized clouds of points,  and presented a comprehensive comparative study with respect to the , we describe in the fol lowing chapter an efficient method for the computation of the   , and implicitly, for the as well.

 



 

     













35





 



 



A consequence of the fact that each sample point on the surface has at least two associated side of the surface. 36 Thanks go to Professor David Mumford for pointing out this problem.



points, one on each

Chapter 4

Lagrangian Computations for Unorganized Point Clouds 4.1 Introduction

       

generators: avoid brute-force

* P1:

Given a set of unorganized point generators, , in the 3D Euclidean  space, , our immediate goal is to efficiently recover the set of six types of shock nodes that form the shock scaffold (Table 3.3), and which consists of sources, relays, and sinks of the flow, and their , , , connectivity, namely, the shock nodes are the  ,  and  shock points. The main computational difficulty is that without a priori knowledge of connectivity among generators, any combinations of generators can potentially create a shock. The algorithm avoids all combinations by first seeking initial sources of the flow, and then propagating along the shock scaffold (and at the same time constructing it) by implicitly detecting intersections of sheets and curves. Specifically, the method we will present in this chapter consists of three successive stages: (i) pre-processing , (ii) initialization, and (iii) iterative processing. 



            

 

* P2: Overview of the three stage approach: Stage 1 — Coarse clustering

The pre-processing stage is one of coarse clustering where we group generators, which are spatially close and thus more likely to create shock points, by using a specialized implementation of a 3D bucketing algorithm [78] (Appendix A). This method is efficient largely because it does not  require an ordering of generators within a cluster (or bucket). It uses the underlying 3D grid and consists of three steps. First, the region of space containing the generator set is divided into slabs along one grid direction, e.g., the axis, such that each slab, called -bucket, contains roughly the same number of generators. Second, for each -bucket we divide space into strips along another grid direction, e.g., the axis, keeping once again the number of generators per resulting -bucket roughly the same. Third, for each -bucket we divide one last time space in smaller strips along the third grid direction, i.e., here, the axis, resulting in boxes, called -buckets, containing roughly the same small number of generators. Each cut through space is taken at integer coordinates and adapted to satisfy, under a tolerance level, a local target density of generators per bucket.









 



   

* P3: Overview of the three stage approach: Stage 2 — Initialization of scaffold

The initialization stage efficiently finds in three steps initial shock nodes, from which the re55

56

Gj Gi

Gj Gi

2 1

A −2

2 1

A −2

2 1

A −2

2 1

A −2

Gk

Gk 2 1

3 1

A −2

A −2 4 A 1

Gl

3 1

A −2 3 1

A −2

(a)

     

(b)

    

Figure 4.1: (a) The pairing of two shocks to create a candidate shock is illustrated. Shock sheets are projected as filled lines in this 2D projection, while paired generators are linked by shocks to create a candidate shock is illustrated. The dotted lines. (b) The pairing of two pair of shock curves intersecting to give rise to this shock have been projected in a 2D plane for the purpose of the illustration.

 

 

  

maining structure can be iteratively constructed by exploring all outward flows. Specifically, we

, which give rise to an initial shock, thus identifirst identify pairs of generators, fying an initial set of shock sheets. Second, we pair among these shock sheets those sharing one generator, to produce candidate shocks at their intercept. Indeed, an shock curve is constructed at the intersection of two shock sheets, or, equivalently, from a triplet of generators

 . We identify such a triplet, and compute the shock source of the curve as its circumcenter (Figure 4.1.(a)). This process leads to simpler and more accurate computations than by performing explicit geometric intersections of sheets. 1 Third, we pair among these shock curves those sharing two generators, to produce candidate shocks at their intercept. We construct a

 shock as the circumcenter of a quadruplet of generators (Figure 4.1.(b)), which 2 is again more efficient than performing an explicit geometric intersection. Furthermore, note that because of visibility constraints (to be described below), which permit to not consider all possible pairs, ’s are the most useful set of shocks to identify first in order to limit to a maximum the search in space for all shocks. Note also that we build the scaffold links along the way, following the direction of flows, thus simultaneously obtaining the directed graph structure.

 

  

  

  

 

      

 

  

* P4: Overview of the three stage approach: Stage 3 — Iterative construction.

 

The iterative stage is necessary due to the following pair of observations concerning relays for the flows. First, as was noted in Chapter 3, some curves corresponding to obtuse triangular configurations of generators will initiate sheets. These new sheets provide a new set that needs to be paired with existing sheets and possibly other newly created ones, to further identify candidates. Second, some shocks, corresponding to flattened tetrahedral configurations of generators, will have out-flowing new curves as well as new sheets. Such new shock curves and

 

1

 

 

 

  



This is a useful observation even in the case of point generators, where sheets and curves are planes and lines. It becomes even more advantageous to pair generators when dealing with surface patches. 2 Seeking initial quadruplets from triplets and triplets from pairs, proves more efficient, by one to two orders of magnitude.

57

Stage (0):

Stage (1):

Stage (2):

Coarse grouping of generators

Find an initial set of shocks

Find remaining shocks by following outward flows Iterative step

Γ

Outward flows create...New shocks 3

A1 −2 2

A1 −2

2

A1 −2

(obtuse)

4

A1 −2

2

A1 −2

4

3

A1 −2

and

3

A1 −2 3

A1 −3

A1 −2

New shocks paired with others 2

A1 −2

4

A1

4

3

A1

A1 −2

Figure 4.2: Summary of the complete Lagrangian method of construction of the shock scaffold by following shock flows. sheets will also provide new sets to be paired with existing or other newly created shock curves and sheets, respectively, to further identify new shock candidates. The shock flow method then becomes an iterative one until all possible paths via pairings of shocks are exhausted. Because the number of shocks is known to be finite (Chapter 3), this shock flow algorithm will always converge in a finite number of steps. A summary of the complete method is provided in Figure 4.2. * P5: Main computational burden: Retrieving an initial connectivity network

main computational bottleneck in this three stage method is in the computation of initial  The  shocks, since without a priori knowledge of connectivity among generators, any pair is a    shocks would likely candidate to create a shock. The brute force approach of finding initial consider all pairs of generators and for each pair would check whether the associated contact sphere    process. Our approach to this bottleneck is based on seven principles is maximal, yielding an which prune unlikely candidates. Although they are meant to mainly help in the first step of the initialization stage, they will prove useful for the other steps, as well as for the iterative stage. This results in a method of computing the shock scaffold which has practical quasi-linear complexity (see the end of this chapter).3 We outline these principles below and explain this in detail in Section 4.2.

   

* P6: Seeking valid pairs: First 3 principles

 

 



 

First, we observe that if generator “gets in between” generators and , then the pair cannot possibly form a shock source, i.e., is not “visible” from due to . We will demonstrate here that this visibility constraint allows an entire half-space to be ruled-out from further consideration for pairings with (Figure 4.3.(a)). Second, this visibility constraint is cumulative, i.e., as we gather more and more pairings for , we can take the union of all visibility

 

3

The worse-case complexity remains







 , however, but it only occurs for highly degenerate configurations.

58

Gi

(a)

            Gk          Gj           



                                                                                                                                           G k               G            l                 Gj Gi            (b)

Gj

Cluster B

Gi Cluster A

(c)

     

Figure 4.3: (a) will not be paired with  to create an shock source, because of the



, given the possible pairing . The region of space which can presence “in between” of hence be rule-out from further pairings with is a half-space indicated by the hashed region in the will 2D view. (b) Such constraints are cumulative, and the total region which is not visible from be the union of all such half-spaces. (c) An illustration of how clusters can be ruled out: once the and its within-cluster neighbors are examined, no member of cluster B need shocks arising from

to be considered for shock pairing with . A similar situation holds for . Note that this does not  hold for the generators of which are closest to .











constraints (Figure 4.3.(b)). Third, observe that closer generators produce half-spaces which rule out more visible space, as compared to remote generators. Hence, in ordering the search for pairings, it would be more efficient to check the immediately surrounding neighbors of a given generator first. The consideration of immediate neighbors is especially advantageous, i.e., some neighborhood relationship is needed in the use of visibility constraints to determine if a generator is ruled-out. This is where we put to use our coarse clustering for the first time, by initiating the pairing of generators amongst members of the same cluster (Figure 4.3.(c)). * P7: 2 more principles based on meta and virtual generators

Additional ideas for the efficient construction of the shock scaffold emerge from the observation that clusters can themselves play the role of “meta-generators,” i.e., a cluster can be used to block other clusters from view. This observation becomes more interesting when we notice that we need not check all pairings between members of each cluster to build the visibility constraints at the metagenerator level. Thus, the fourth principle states that it is sufficient to consider only the generators amongst the convex hull of each cluster, to then build a conservative region of visibility constraints obtained as the intersection of individual half-spaces of visibility constraint (Figure 4.4.(a)). The fifth principle summarizes the effect of a cluster on others via the convex hull of a few vertices, which themselves are not necessarily generators, and are called “virtual generators.” For example, consider a minimum bounding box enclosing all the generators of a cluster. Then, we only have to build the spaces of visibility using the eight vertices of the box, which may contains tens, or hundreds, or more generators, hence tremendously reducing the number of computations required to build visibility constraints at the meta-generator level (Figure 4.4.(b)). * P8: 1 more principle leading to a multi-resolution approach

Observe that, in the above, the method of building zones of visibility constraint at the metagenerator level is independent of the number of generators within the cluster. In particular, if a

59

         Cluster D    Cluster A  ΠBA   (a) 

   ΠAB        Cluster C        Cluster B

        Π  AB         

Cluster B Cluster A

(b)





Figure 4.4: (a) A view of a group of generators where each is considered as a single cluster or a  meta-generator leading to huge savings. blocks ’s view of and any other generators, or more   generally clusters in the convex region , while, by symmetry, blocks ’s view of and any   . (b) A cluster can effectively be represented other generators or clusters in the convex region   , where no generators by a few “virtual generators” (unfilled circles) leading to a convex region can lead to a shock with any member of cluster . This convex region is a conservative estimate generated by intersecting the visibility constraints of virtual generators of with respect to the  virtual generators of , leading to a polyhedral region (here shown in a 2D projection) which can be used to safely rule out other remote generators and clusters.













cluster had been ruled out as non-visible from cluster because of an intermediary cluster , this constraint will remain in effect if we add new generators to any of these clusters. In fact, adding new generators can only further constrain visibility, a direct consequence of the additivity of visibility constraints. This provides the insight for the sixth principle: the visibility constraints of a lower resolution version of the generators hold for a higher resolution version. Thus, a single generator per cluster can start off a multiresolution process of finding visibility constraints and ruling out generator pairings. This can be very significant in practice given that data from various sensors, e.g., laser range finders, can be acquired in a dynamic fashion. * P9: 7th principle: Complete search: visit neighbors of neighboring clusters

The seventh principle advocates a “layered search” at the cluster level, i.e., to explore interactions with clusters which are neighbors of a given cluster, and iterate to examine neighbors of neighboring clusters. Note that, because the visibility constraint is additive, very often neighboring clusters are already entirely ruled out as non-visible, and as a result are not retained on the list of neighbors of neighbors to be searched. Thus in fact, this iterative process of visiting neighboring clusters rapidly converges and terminates in practice in a few steps. * P10: Shock validation: Clustering also useful

While these seven principles significantly limit the unnecessary consideration of pairs of generators, not all candidate pairs give rise to valid shocks. Note that a pair of generators leads to an point if the associated contact sphere does not include any other generators. The brute force  approach would add an to the complexity. However, the clustering of data also proves useful for this step which we call shock validation. Basically we proceed in a layered manner similar to the search for shock candidates described above. Specifically, once we locate a shock in a cluster,



 

60

Cluster B

Cluster A

  

Figure 4.5: Illustration of shock validation which may necessitate visiting neighboring clusters to verify if the contact sphere of a shock candidate is empty of other generators. Here the shock of a pair of generators in cluster will be invalidated due to the presence, in the domain of the  associated contact sphere, of a third generator member of cluster .



we first check if the associated contact sphere is entirely included in the domain of this cluster. If it is, we only have to check if other members of this cluster may be part of that sphere. If the sphere is large enough to partly lay outside the cluster, we iteratively consider a region around it, by visiting those neighboring clusters which cover the domain of this contact sphere (Figure 4.5). *P11: Summary of our Lagrangian method and a possible alternative: Voronoi diagrams

We call the shock flow method we introduced above “Lagrangian” as it amounts to a shock– based coordinate system which is constrained by beginning with shock sources [235]. This is in contrast to an alternative set of methods based on computations performed on a fixed Eulerian grid (Chapter 5). In the Lagrangian method, we propose a way of exploring the space around each generator so as to rapidly identify the local network of connectivity with nearest neighboring generators, in order to identify the sources of the flow. We note here that another possible solution would be to rely on well-known Voronoi/Delaunay complexes in 3D, as constructed via convex hull algorithms shocks and their connectivity graph are identified, one could then retrieve the [180]. Once the and shock points in a backward fashion, i.e., from paired shocks to identify their connecting shock curve, and then recursively, from pairing such curves to identify shock sheets. There are several shortcomings to this approach, which we initially considered in our study. First, this class of algorithms only identifies the shocks, which correspond to Voronoi vertices. In other words, Voronoi Diagrams, , and the shock scaffold, are not exactly the same structures (Chapter 3). Second, degenerate situations, such as when points are spread on spherical caps or planar patches, and polyhedral objects are often not handled well by these methods. Third, it does not easily permit the development of iterative, parallel, or dynamic applications, which are useful or even mandatory, when processing large amounts of data or when dealing with real–time data acquisition scenarios. Finally, it is not clear that such methods used for points (or spheres), which depend on a convex hull construction in a 4D space, can easily be extended to other types of generators,

 

    

 



 

 

 

 

61

Gj 2 1

A −2

Gi

2 1

A −2

Gk

 

  



 



Figure 4.6: Example of visible neighbors: is visible from , but is not; and are both ; only is visible from . Rays linking visible neighbors are shown as dotted visible from   shocks in this simple lines; shock sheet bisectors are shown as filled lines. There are two figure, where the rays and sheets intersect. The two associated maximal spheres are also shown as circles in this 2D projection.

 





such as polygonal patches.4 *P12: Content of Chapter.

In the remaining of this chapter, we start by detailing the seven principles related to visibility constraints and clustering in Section 4.2. In Section 4.3 we discuss shock validation, and in particular take advantage of the geometry of spheres to avoid a large portion of tests. In Section 4.4 we briefly describe a simple and efficient bucketing algorithm for coarse clustering. Finally, in Section 4.5 the iterative shock flow method is presented in greater details.

4.2 Visibility Constraints, Clustering and Initial Shocks The heaviest burden in the computation of the shock scaffold by the shock flow method introduced   shocks above, comes from the initialization stage, where pairs of generators giving rise to are used to initiate the shock flow. This turns out to be related to the notion of “nearby neighbors,” which we define below.



 

 

Definition 4.2.1 ( Neighbors of a Generator) neighbor of if together they give   shock source. is a shock neighboris ofa visible rise to a if together they give rise to any shock.



 

 

Clearly, visible neighbors5 are a subset of shock neighbors. Thus, a visible neighbor of a generator    ,   or  shocks. generates a valid  shock, while a shock neighbor can arise from We note that, for any generator, its closest neighbor is always a visible neighbor.



 

4





Only restrictive and expensive methods — based on explicit bisector computations, followed by intersection and trimming — have been proposed in the literature, mainly for polyhedral objects (e.g., [74]). 5 In 2D, visible neighbors are called Gabriel neighbors, and the corresponding graph of connectivity thus established between generators is called the Gabriel graph [180, 2.5]. In 3D, there appears to be no established use of the same concept. In [14, 191], Gabriel neighbors are defined in 3D with respect to triplets of generators, i.e., via a triangular face, part of the Delaunay triangulation, and such that it is intersected by its dual Voronoi edge (i.e., a shock curve for us).

62

Property 4.2.1 (Nearest generators are visible) The nearest generator to any given one of its visible neighbors.

   



is always



  

pairs of generators, and validate them by With a naive scenario, we could build all checking distances from the center of the candidate sphere to all other generators, which is an   process. Since we plan to work with datasets with generators or more, the brute force option is simply not practical. Furthermore, this is clearly a very inefficient way of doing such a computation, as we expect in practice that most such pairs will simply be rejected, i.e., generators which are distant will likely have other generators in between, thus invalidating the candidate contact sphere and associated shock. In some sense, valid shock points should “crowd” the space around their associated generator, and this filling of space ought to be used to limit our search for other generators when constructing additional pairs. Basically, visible neighbors of a given generator should be located mostly nearby that particular generator. 6 This may sound trivial, but since we did not assume any knowledge of connectivity thus far, each generator is initially entirely “blind” with respect to other neighboring generators, and establishing connectivity is equally as hard, and is in fact equivalent to our problem. 

shock point arising from a pair of generators, and , the interior of the For an

which is empty (maximal) by definition can definitely be ruled-out for associated contact sphere 

any further pairings. Still, we can do much better by ruling out those generators  for which gets in between and  . Consider the three zones as defined in Figure 4.7.(a): generator  in

Zone 1 cannot create a valid pair with due to the presence of ; in Zone 3 we have the reverse

due to the presence of . Finally, in Zone 2, situation:  can never create a valid pair with  can create valid pairings with both and  , except of course within the sphere  . Zone 1 and 3 are the “deadzones” associated with the existing valid shock pairing.

  

  













             

  











Definition 4.2.2 (Deadzone, visible zone) The deadzone of respect to , denoted , is  

 

with the half-space: . We refer to the tangent plane   





at to the contact sphere  as (Figure  4.7.(b)). The complement of minus the contact

. sphere,  , is the visible zone and is denoted







The above visibility criterion leads to a simple test.

  



Proposition 4.2.1 (Deadzone Test) A generator

spect to the shock shared with , iff

is in the deadzone of a generator

                



Proof: For a pair of generators and third generator  is located by computing the signed distance, :

         





with re-

(4.1) , we need to find in which zone



 



 

 





6 There is no absolute sense of “nearby” here: rather it is dictated by the arrangement of generators which is why the problem is difficult.

63

G k(2)

G k(1)

G k(3)

Nji

Zone 3

(a)

          Gi     Zone 2

Nij Gj Zone 1

(b)

Figure 4.7: (a) Three zones of visibility for considering new pairings with a third generator  , once a valid initial sheet shock,     , has been established between a pair of generators,  and   . Potential new valid    shocks are shown as small hollow circles midway between pairs of generators. Non-valid pairings between the third generator   and either   or   are shown as doted lines. Zone 1 represents the “deadzone” of generator  , while zone 3 represents the “deadzone” of   , given         . Note that,   may enter zone 2 anywhere except within the sphere  . (b) Illustration of the deadzone test, where, here, a third generator   will be ruled as being not visible from  for the purpose of building a new valid paring, with respect to  given its pairing with  via a shock     , where we also illustrate the associated maximal sphere,  , and the tangent plane,  , delimiting the deadzone,  .

64

                        Gj G            j                     G          Gj i                      G j                                    G  j          G         j (a)

  G G j       j               GjG i              G   j    1

1

2

2

3

3

5

5

4

Gj

6

6

Gj

4

(b)

 

Figure 4.8: Visibility constraints, i.e., deadzones, add-up around a generator , where all possible bisectors, are illustrated as dotted lines, and the dashed space represents: in (a) the different deadzones illustrating the additivity of visibility constraint, and in (b) the visible space left (to which the interior of associated contact spheres can also be removed).

       



      





 

i.e., by projecting onto . We notice that is positive iff   is positive, i.e., is ,7 then in the deadzone  . From a computational perspective, it proves useful to “eliminate” while keeping differences of coordinates to minimize roundoff errors. Then, we need to determine the sign of the following scalar product:

                         "!                          By symmetry, the converse is also true. QED    shock for a given generator, an entire As we just established, each time we identify an half-space can be ruled out from further tests of new pairings with each of the two generators    shock. As a generator “acquires” more    shocks, its involved in the creation of that potential visibility of new pairings decreases rapidly (Figure 4.8).

  





Property 4.2.2 (Additivity of deadzones) The deadzone of a generator respect to a set $#&( % ' is the union of the deadzones of with with of other generators respect to each : ) *,+  .



 

 

 

 



It is interesting that it is not necessary for a generator to have a shock with in order for its deadzone to be applicable, i.e., all pairs contribute to the deadzone. Consider that with only two generators and , the deadzone  rules out a halfplane of potential pairing with . As new generators are added, the shock arising from and may no longer be valid, but the constraint still holds since still gets in the way of generators in this half plane (Figure 4.9).

 

 

7



 

-/.

-0

 

 

 

 2143

-1150 17-96 8

We are testing with respect to , and one of its associated shock. Note that for each such shock the vector linking the pair of generators giving rise to the shock, here , can be kept in the data-structure for that shock. Hence we do not need to explicitly refer to , which is in a sense “absorbed” by the vector .

-:8

-1150 17-96 8

65

      Gj  2    Gk  Gi   Gj  3     Gj  4 

Gj

1

Gj

6

Gj

5

(a)



                G                                          G                                                                                                              j

2 1

A −2

Gi

2 1

A −2

k

3 1

A −2

Useful deadzone from "invalid" pairing with Gk.

(b)

Figure 4.9: Even invalid pairings with are useful to cut away large sections of space from further

search. In (a), if  is encountered before visible generators  , its associated deadzone will  remain of interest, until it is eventually ruled out. In (b), creates a higher order shock with , is invalid. However, the associated deadzone is still of interest. but the associated



 

Observation 4.2.1 (Invalid pairs are also useful sources of visibility constraints) Invalid pairs can also be used to build-up visibility constraints surrounding a generator. Hence, it is useful to cumulate all deadzones as we find these, even for invalid pairs, to restrict as fast as possible the visibility space. It is also useful to consider properties of the space which complements the deadzones.



Definition 4.2.3 (Visible hull) The visible hull of

the complementary half-space to the deadzone .





is defined as:

   

 

, where





denotes

The visible hull of is a convex hull, since the intersection of convex sets is convex. 8 As we add more and more deadzones, the visible hull is gradually made smaller and smaller. A particular situation of interest arises when generators are spread on the surface of an object, such as obtained via typical 3D scanning processes. Then, the visible hull rapidly converges to a small column of space remaining visible directly above and below each generator (with respect to the local surface’s trace), as soon as their closest pairs along the surface have been found. This is the typical practical situation we are faced with (Figure 4.10.(b)). A similar situation occurs in 2D for samples along contours (Figure 4.10.(a)). 8 The visible hull represents a larger set than the actual true space left visible, since the interior of maximal contact spheres can be considered as well.

66

        Gi  Gj   1        

Gj  1Gj2  Gi   Gj 

Gj

2

Gj

5

3

Gj

4

(a)

(b)



Figure 4.10: (a) The visible hull of sample points on a contour in 2D will be constrained by neighbors . (b) The visible hull for a sample point on a surface in 3D is to be a small column, as shown for a column as well. Observation 4.2.2 (Columns of visibility for surface data) If data is spread on the surface of an object, the visibility constraints buildup per generator leaves only a tiny column of visible space for , above and below the local surface’s tangent plane. a given generator,



A related formal result has been proposed recently by Amenta et al. in [3, 4] where it is shown that Voronoi cells are elongated along the normal space to a surface at the generators with a sufficiently dense sampling.9 Cluster Constraints and Meta-Generators: Thus far, we have considered visibility constraints at a local level, for one generator at a time. We now suggest that it is computationally advantageous to view a cluster of generators as single “metagenerator.” Observe that the visibility of a “central” generator in a cluster will be typically

limited by its nearby neighbors in the same cluster. For example, for a generator in a second  will not share a shock with distinct cluster, , it is very likely that due to its cluster membership,

(Figure 4.11.(a)). For that are on the “boundary” of the cluster this is only partially true. In this section, we derive useful properties from this insight, which will lead to a multi-resolution visibility constraint on large datasets.











Observation 4.2.3 (Most shocks occur for generators within a cluster of near neighbors) For a cluster with a sufficiently large number of generators most shocks associated to its members will occur with generators from that cluster. 9

Our visibility hulls are, roughly speaking, twice as large as Voronoi cells, since the latter are limited by bisectors, i.e., shock sheets.

67

Gj

Cluster B

Gi Cluster A

(a)

(b)

     Gj            Cluster B  Gi   Cluster A  







Figure 4.11: (a) Two clusters with two “central” generators and . (b) Illustration of the intercluster visibility property at the generator level, where one particular visibility constraint of rules  out cluster at once.



 

Observation 4.2.4 (Inter-cluster visibility — Generator level) If all generators in a cluster  are simultaneously in one single deadzone of a given generator  , then, the generators in  can be entirely ruled-out from being paired with that generator (see Figure 4.11.(b)). This motivates the idea of a convex shell to test whether the entire cluster



is within a deadzone.

Definition 4.2.4 (Convex shell of a cluster and virtual generators) A convex shell of a cluster is any convex polyhedron containing the entire cluster. We refer to the vertices of a convex shell as virtual generators. For example, we may consider a box made of only 8 virtual generators, or even a tetrahedron, made of 4 virtual generators, etc., which contains a cluster. The main reason a convex shell is useful then so is the entire interior of is that if the vertices of the convex shell are in the deadzone of the convex set. Thus, testing visibility from a few vertices may (and often does) rule out an entire cluster.10 Applying this property to all generators of , we can generalize it as follows.













Observation 4.2.5 (Inter-cluster visibility — Cluster level) When a cluster is invisible from  each generator in cluster , then the entire cluster is invisible from the entire cluster . That clusters can block the visibility of one another without regard to the particular content of a cluster motivates the idea of “meta-generators,” Figure 4.12.(a), where the cluster is viewed as a single generator at a more abstract level. The only difference is that now we need to consider the envelope of constraints provided by a pair of convex shell, one for each cluster. In order to be certain  that one “intermediary” cluster, , blocks away another remote one, , for cluster , we need to  intersect all sets of deadzones between members of the convex shells of clusters and . If the resulting deadzone covers entirely the third cluster, , then no generators in this third cluster can create a shock with generators in cluster .











10 A more sophisticated test is possible, by combining the information of all associated shocks, which together may rule out cluster , while no single shock does.

68

(a)

                            Gk                                                                                    Cluster   B                   Cluster A                               (b)

Cluster A

                     ΠAB                     B Cluster               



Figure 4.12: (a) Illustration of the inter-cluster visibility property at the cluster level, where, in this  simple case, a single generator  is sufficient to rule out cluster for all members of . Note that, we only show the visibility constraint for those members of which have not had their view blocked  by intra-cluster constraints, with respect to . (b) The result of intersecting the deadzones of each  convex shell members of with respect to the convex shell members of , generates a polyhedral   (in 3D, here shown in a 2D projection) cone, giving us a conservative total deadzone, , which can be used to safely rule out other remote generators and clusters.







Observation 4.2.6 (Meta-Generator Deadzone) A meta-generator is any convex shell of a cluster  of generators. Then, a conservative deadzone for a cluster , with respect to another cluster is:



  







 



   where  and enumerate the vertices of the convex shells of and , respectively. Note that takes the form of a polyhedral cone (Figure 4.12.(b)). If the vertices of the convex shells are taken   to be virtual generators, we denote the resulting deadzone (see Figure 4.13.(a)).

Thus, we are in position now where we can use very few deadzone tests at the level of clusters by using the vertices virtual of a convex shell which act as virtual generators. This will prove particularly powerful to rule-out remote clusters when two nearby clusters have been found. This illustrates that clusters play a similar role to individual generators and are useful in a lower resolution visibility analysis of the data. Until now, we have only considered a static scenario, i.e., where all generators are known (and used) before we initiate shock computations, including visibility constraint build-up. We now consider a dynamic scenario, where not all generators are all present initially, and others will come into play at a later time. This may occur in practice, e.g., when data is obtained by remote communication, or when real-time processing from a laser camera is necessary. But, more importantly, we will see that even an artificial sequencing or timing in the acquisition of data proves useful, as a consequence of the following property.





Property 4.2.3 (Non-increasing cluster visibility) A cluster which was ruled to be invisible  from a cluster due to an intermediate cluster will not become visible by adding additional  generators to , or .





69

Cluster B Cluster A

           ΠAB         

(a)

 G’Gj i   GCluster  k B  Cluster A   (b) 



Figure 4.13: (a) The result of intersecting the deadzones of virtual generators of with respect to  the virtual generators of , generates a polyhedral cone (here shown in a 2D projection), giving us a  , which can be used to safely rule out other remote generators and conservative total deadzone,  clusters. (b) Illustration of a cluster which is initially invisible from , but where the addition of  a new generator makes it visible. This does not happen for clusters defined by virtual generators.





Note that the above property is valid only at the level of clusters, i.e., with respect to the “virtual”   ; see Figure 4.13.(b) for an example where adding a new generator in a cluster may region change visibility at the generator level. Using virtual generators requires that new added generators are always confined to the interior of the convex shell of a cluster, thus ensuring that we can always safely use the above property. This non-increasing property of cluster visibility proves key in the design of a multi-resolution – or incremental – scheme to the computation of shocks for large datasets. Consider the following procedure where we initiate computation with a sub-sampling of generators in each cluster. Specifically, we select  generators per cluster and compute shock pairs for these selected subsamples of generators. This computation will label some clusters invisible with respect to another cluster , due to the interaction of the selected generators in with some (non-empty) intermediate clusters  . Next, at high resolution, those clusters ruled out as invisible from each cluster will remain invisible even though a number of generators have been added to each cluster. Therefore, given a sub-sampling of all generators, we can efficiently compute a set of conservative visibility constraints with respect to clusters, which will remain valid at full resolution. The only pre-requisite being that their is at least one generator per cluster used for computing conservative sets of visibility constraints, i.e., no cluster is empty. This multi-resolution method offers the advantage of being able to deal with very large datasets in an incremental way, where first we compute approximate visibility constraints at low resolutions, and progressively iterate towards the higher resolutions. Different practical strategies are possible to sub-sample generators in each clusters, e.g.: (i) random sampling, (ii) sampling generators closest to the cluster’s boundaries, and (iii) sampling generators which are part of the minimal convex shell of a cluster. The non-increasing cluster visibility property can also be used to design a parallel method of searching space via visibility constraints. For example, we can partition space into sections and assign each to a distinct processor. We can perform all our computations within each section assuming















70

the other sections have no generators. Then we can add sections all at once or incrementally and iterate visibility computations with these new “clusters.” This parallel implementation can also be combined with the multi-resolution scheme.

4.2.1 Optimizing the Search: Layering and Generator Transmission In the previous paragraphs we discussed how some pairs of generators can invalidate other pairs for generating shocks. We now discuss the idea that a partial order of considering pairs of generators may be more beneficial than others. In particular, it makes practical sense to first find all possible shocks within each cluster, given that most shocks are due to closest neighbors relationships. But, then, how should we go about exploring space past a cluster? In this section, we describe the idea of searching space around each cluster in a layered fashion.



Observation 4.2.7 (Layered spiral search of shocks) An efficient way to search space around a given cluster, , is to start with the closest surrounding clusters, and then visit iteratively other clusters in “layers,” which are increasingly further away from . As an analogy, layers are organized as “onion peels” which are visited iteratively in a spiraling manner.



Note that as we move further away from a generator, shocks arising from pairing it with remote generators become less and less likely. This is a natural consequence of the visibility constraints building-up as we find new shocks, and that the likelihood of encountering a generator invalidating a candidate shock increases with distance. Therefore, we need a way to visit neighboring clusters, iteratively, in layers of increasing distance. We will do so by “spiraling” around to build layers of neighboring clusters to visit at the next iteration. 11 In the first iteration we build new valid pairs between the generators of and its immediate neighbors, which we require to be given for each cluster. Neighbors of neighbors of are processed next, while avoiding duplication by maintaining a record of visited cluster neighbors. Hence, a remote cluster can be reached via various sequences  of “intermediate” clusters , in particular those where remains visible from .



 









 







Definition 4.2.5 (Cluster path) A sequence of clusters where each cluster is a neighbor of the pre ceding cluster is a cluster path. A cluster path linking a cluster to a cluster is a feasible cluster path if remains visible from all along the cluster path.









Note that, feasible paths are not unique, i.e., there may exist more than one such path leading from to a remote cluster remaining visible. The first iteration in the layering covers the very center, i.e., . Next, we keep adding new layers, and visit them in succession (Figure 4.14). We always check the visibility at the cluster level, only adding a cluster to a path (from the center) if it remains visible from the center, therefore growing  feasible paths only. If in the process of path generation a cluster is found to be invisible from , then we do not add its associated neighboring clusters on the list of clusters to be visited for the next layer/iteration. This makes the layers, other than the first one, more and more fragmented





11 E.g., if clusters are such that their convex shells provide a complete cover of space, neighboring relationships between clusters is reduced to looking for those sharing faces, edges, or vertices of these shells. This is the case in our computation.

71

    

(a)

(b)

                         

(c)

                                                                                                                      

(d)

Figure 4.14: Illustration of the layered spiraling search starting from a central cluster in (a), visiting its neighbors in (b) and neighbors of neighbors in (c). In (d) we illustrate the “column” effect when generators are sampling remote surface sections: the layering tends to rapidly grow only “below” and “above” the surface with respect to the central cluster. On one side the “arm” grows to infinity (here above and away from the object), while on the other side a second arm grows until it reaches another surface patch (here below the central cluster). as we proceed with iterations. The set of feasible cluster paths from a given “central” cluster  typically grows “arms” which become finer as they grow longer with iteration layer, and eventually stop growing altogether. For example, consider the case of point samples on a surface, where each cluster contains a surface patch: in the process of visiting layers two “arms” form, one above and one below the patch (Figure 4.14.(d)). These arms will include the columns of visibility previously described for individual generator, but here at the meta-generator scale. In other words, our search through space via layering and feasible cluster paths covers the part of space which needs to be searched from all generators in a given cluster. However, this is not an “optimal” (minimal) search, as the paths are generated at the scale of clusters, yet resulting in a great gain with respect to an exhaustive search.

In the above search process, if a cluster is determined to be visible from  , some generators

   may not see and this may be utilized.12 We can keep track of this information upon

generating neighbors of to be processed at the next iteration, and significantly improve the overall performance of the layered spiral search. Basically, when generating a new cluster on the list

of neighbors to be visited for the next iteration, we associate to each such cluster the list of

generators of  which can still see . In this way we “transmit” only generators along the feasible

path which may see via a path generated through . As iterations go by, we will observe that less and less generators are transmitted for next layers of clusters to be visited, a direct consequence of the build-up of shock systems associated to the generators of  . A word of caution is necessary here: there may exist other paths reaching from

 , but going through other intermediate clusters    sitting in between  and , a consequence  of the non-uniqueness of feasible paths, and these alternative feasible paths reaching from  may 12

Cluster 

is invisible from  only if all generators of  cannot see all of  .

72





carry generators of which were not visible through the previously explored feasible path(s). 13 In order to permit multiple feasible paths to reach with newly transmitted generators from , we allow for to appear more than once, possibly at different iterations, on the list of neighbors of to be visited, so long as new generators are effectively transmitted from to .





4.2.2 Initial set of

 



shocks

  

 

and

     







In the above we identified a rather small set of likely candidate shock points. We now use this set in order to identify initial and shocks, in two sub-steps. First, we pair among these shock sheets those sharing one generator, to produce candidate shocks at their intercept. shock curve is constructed at the intersection of two shock sheets, or, equivalently, from a An

 triplet of generators . We identify such a triplet, and compute the shock source of the curve as its circumcenter. This process leads to simpler and more accurate computations than by performing explicit geometric intersections of sheets. Second, we pair among these shock curves those sharing two generators, to produce candidate shocks at their intercept. We construct a

 shock as the circumcenter of a quadruplet of generators , which is again more efficient than performing an explicit geometric intersection. The implicit connectivity from to and to shocks is used to start building the scaffold links along the way, following the direction of flows, thus simultaneously initiating the directed graph structure.

  

 

  

  

  

      

 

  

4.3 Validation Tests

     

 

, and In the previous section we identified a rather small set of likely candidate shock points, but did not fully confirm their validity. We now consider in detail the validation of a shock, i.e., the verification that it belongs to the and not just the   , or equivalently, that its associated contact sphere is maximal. We cover each case separately.



  

  

Validation of shocks: The task is to test whether the midpoint of a pair of generators yields an shock. The brute force approach would test whether other generators lie in the contact sphere. However, in analogy to the process used to generate likely shocks, the order by which we test for validation significantly affects efficiency. On the one hand, when a candidate shock point is invalid, it will sooner or later be rejected when comparing it to other generators; if the generator which invalidates this shock is considered first it leads to great savings. Intuitively, we should validate first with generators which are “nearby,” and thus likely to be inside the associated shock point is valid, the process contact sphere. On the other hand, when the candidate of comparing it with other generators will never fail the validation test. This constitutes another computational bottleneck since for valid shocks we may end-up performing comparisons with a large number of generators, even remote ones which are not in the domain of the contact sphere. In order to minimize the number of tests we ought again to compare it (only) to generators which are “nearby,” that is, in a neighborhood of spatial extent covering the sphere.

  

  

13

This is due to the fact that we do not strictly order path generation by distance. The latter option is possible, but requires a careful study of distance propagation in 3D, a subject we tackle in [148] and in Chapter 5.

73

Both cases involving invalid and valid shocks require an identification of nearby generators. Thus, a coarse neighborhood relationship can quickly minimize the number of comparison tests required to ensure the validity of an shock point. The most obvious solution to this problem of validation of shocks is to use the same cluster structure used in the visibility testing ( 4.2), and visit enough clusters via the same layering approach ( 4.2.1) to entirely cover the sphere being tested. This ensures that the tests most likely to fail are considered first, thus leading to savings. One difference between the process of generating likely shocks candidates and shock validation is that we start from a shock point, rather than a generator, and thus we need to first identify its cluster membership. We then “grow” layers of clusters to visit, as when searching space for pairing generators, until the sphere is completely covered, or earlier if the validation test fails.

  



Observation 4.3.1 (Layered spiral search for validation) If a candidate shock located in a cluster is not ruled out by the generators in that same cluster, and if the associated contact sphere is not fully contained in , we start visiting neighboring clusters, iteratively via layers in a spiral fashion, until the sphere is fully covered or earlier if the shock is found to be invalid.



 

Note that this validation via layering is applicable to all other shock types as well. However, when testing distance of an shock candidate to surrounding generators, we can optimize the calculation using a comparison of squared distances as follows.

  



shocks via distances between generators) An Proposition 4.3.1 (Validation of 

generated from and is valid if and only if for all other generators  we have:



  

 

 

 

 

           is obtuse if

 

  

  

shock

(4.2)



   is inside the sphere with  as  Proof: The angle   iff  is on the diameter, is acute when  is outside, and sphere. Therefore the empty     , or equivalently when , for all other generators sphere property is verified when  . Using the Law of Cosines:



 it is easy to see that

 







 

 







 



 





  



 









is strictly positive, iff equation (4.2) holds.

  

QED

  

Validation of shocks: We study the initial curve shocks as a function of the configuration of associated triplets of generators and the corresponding pairwise shocks. Each triplet defines a triangle which can be acute, obtuse, or right angled, and this determines the validation procedure.

  

     

Observation 4.3.2 (Three configurations for the validation of shocks in 3D) Given a potential shock arising from three generators, the validity of the can be tested based on the configuration of the triangle whose vertices are the generators: (i) if the triplet takes the configuration of an acute triangle, and the three associated are valid, then only the space between

  

74

(a) Acute

(c) Right

(b) Obtuse

  

Figure 4.15: Three configurations of triplets of generators to consider when performing the validation of a candidate shock. Small white spheres represent generators, transparent blue spheres contact spheres, circumcenters, i.e., candidate loci, are shown as small yellow represent spheres, while their associated circumsphere is shown as a transparent yellow sphere. (a) A typical acute triangle configuration of generators; (b) an obtuse triangle configuration; (c) a right–angled triangle configuration, where the circumcenter is at the midpoint of the hypotenuse which coincides shock for that edge, and thus the corresponding maximal sphere coincides with the with the circumsphere.

  

  

  

  

  

’s need to be explored for the circumsphere of the triangle and the three contact spheres at generators which may invalidate the . It is sufficient, for example, to explore two thin spherical segments, with curved triangular boundaries, situated directly above and below the plane of the triangle (Figure 4.15.(a)); (ii) if the triplet takes the configuration of an obtuse triangle, then almost the entire circumsphere associated to the shock needs to be explored for validation (Figure 4.15.(b)); (iii) if the triplet of generators takes the configuration of a right triangle, we do not need to validate its shock if the initial sheet shock for the hypotenuse is already valid (Figure 4.15.(c)).

  

 

  

 

     

Validation of shocks: An analysis similar to the one above for shocks should be possible for shocks, but we have not attempted to take advantage of the different possible configurations and relationships between the maximal contact spheres for the six and four shocks associated to a given shock.

 

  

4.4 A Coarse Adaptive Bucketing Algorithm for Clustering Given the many advantages of having a rough organization of generators in the form of clusters, we require a practical method to organize space in such “chunks,” i.e., clusters containing subset of points whose spatial layout with respect to each other at the cluster level is known. There are two principal ways to build data-structures which organize neighborhoods in this fashion. Either we build a tree of relationships directly from the points, or we partition instead the embedding space into  a number of regions. The former set of methods includes -tree and other graph structures, while



75



Figure 4.16: Illustration of our bucketing method acting in three passes. First, space is divided into slabs along the direction such that each slab, called -bucket, contains roughly the same number of generators, e.g., 10 in this case. Second, for each -bucket we divide space into strips along the direction, keeping the number of generators per resulting -bucket roughly the same. Third, for each -bucket we divide one last time space in strips along the direction, resulting in boxes, called -buckets, containing roughly the same number of generators. These cuts are taken at integer coordinates and adapted to satisfy a local target density of generators per bucket.





   



the latter includes methods using regular grids (voxel–based), or adaptive ones, such as octrees and bucketing [78, 63]. Because our goal is to only coarsely organize data into “smaller chunks” without building explicit connectivity between each generator, as is the case with tree-based approaches or with traditional space clustering approaches which rely on explicit distance-based sorting, we have designed an efficient adaptive bucketing method based on a 3D grid to answer two types of queries quickly: Type 1 Query: Find in which cluster a shock is located. Type 2 Query: Find the minimal set of clusters covering a candidate contact sphere.



Our adaptive bucketing technique first divides the space into slabs along one dimension, say along the -axis such that roughly the same number of generators is contained in each non-empty “ -bucket.” This process is then repeated for each -bucket along the -axis, building a new set of “ -buckets.” A last iteration, cutting through each -bucket along the -axis, produces a final set of smaller “ -buckets” of varying sizes, but containing roughly the same number of generators (Figure 4.16). The resulting data-structure can be seen as a variant on the “degraded -grid” method, which is defined in terms of the point sets [229]. The main differences here is that (i) we adapt the width for each bucket, successively and independently along each axial dimension, and (ii) we do not explicitly sort or order the generators. 14 By combining this data-structure with a 3D lookup table, we achieve the following properties:

















14



in which we Note also that, formally, with this bucketing algorithm, we obtain a paving of the domain perform all computations. That is, each bucket takes the form of a 3D tile, and the collection of all such tiles covers entirely the domain and is such that the volume of the intersection of any two tiles vanishes [117, p.467]. The sequence of imbricated -, - and -buckets followed by voxels, etc., then defines a nested partition of the domain [117, p.468].

  





76

Figure 4.17: Experimental results using the coarse bucketing technique we have designed on various datasets. Left: Dataset sizes and shapes vary (covers most examples used in this thesis) and bucket sizes vary as well; the two dotted lines indicate a zone in which most (90%) computations fall. Right: Bucket number is kept fixed, and dataset size is grown (here up to one million points) to illustrate the approximately linear complexity of our implementation. 1. Its construction time is approximately linear in the number of generators, i.e., in our experiments, it degrades linearly as we augment the number of generators (see Figure 4.17). 2. It does not require any explicit distance computation between the generators. 3. It can deal with dynamic inclusions (i.e., augmenting or reducing the dataset at will). 4. It offers a full cover of space, without overlaps or holes between buckets (i.e., clusters). Hence each generator  is part of exactly one bucket. This property, in turn, makes answering the Type  1 Queries .



  

5. Buckets (i.e., clusters) are parallelepipedal in shape and adapt their dimensions (in ) to the local density of data. The box-like shape of buckets makes it easy to build covers of spheres via a 3D spiraling local search, making Type 2 Queries efficient, i.e., with numerical  complexity much lower than in practice, where is the number of generators.

 

It also requires one main assumption to be made:





 



The generators are spread in a box, such that along each of the three dimensions, and , there is a sufficient range of integer coordinates covered (typically 20 or more units). If this is not the case, we simply scale the coordinates of all generators uniformly.

We describe this adaptive coarse bucketing technique in greater detail in Appendix A. We already showed in the previous sections how to combine this data-structure in the form of buckets, with visibility testing, and search paths and validation via layering, to start building connectivity amongst

77

Figure 4.18: Timing results for searching all visible neighbors on a set of 40 real-life shapes (Left) and on set of artificially generated random samples in a 3D box, i.e., with roughly the same “shape” (Right). N.B.: The time axis is not at the same scale from left to right. generators and iteratively construct the scaffold. We now discuss the performance of the above technique in solving certain related nearest neighbors problems in 3D. We suggest that the previously introduced methods of coarse bucketing and visibility constraint build-up per generator, lead to an interesting algorithm for a subset of important closest search problems in computational geometry [229]. This approach provides a tool to efficiently find all visible neighbors of each generator in 3D (or in 2D). The performance of the bucketing algorithm can be examined in Figure 4.18.(a) which shows the result of searching for the visible neighbors for a set of 40 different real-life shapes such as pot sherds, body scans, blood vessels, mechanical parts, etc., where the search time is plotted against the number of generators. The performances vary according to a number of factors besides the number of generators, including: (i) the actual underlying shape of the “object” being sampled, (ii) the size and number of buckets (or clusters) used, and (iii) the memory consumption. We have observed that the more convoluted an object is, or alternatively, the more “crowded” or dense a cloud of points is, the faster the convergence of our method; this can be explained since the “columns” of visibility of each generator are expected to be rapidly truncated, in the form of cylindrical polytopes. In other words, the more convoluted a shape is, the faster our method will converge, such as for samples on the surface of a brain’s cortex. In the extreme case, the fastest expected convergence is for a densely and randomly sampled volume in space, such as gas particles, water droplets of clouds, or the spread of matter in a galaxy, as illustrated in Figure 4.18.(b). This figure also shows the effect of a larger section of space15 and number of buckets, where the apparent “jumps” from one zone of linearity to another are due to a change in both factors. Thus, there is an optimal choice to be made for each dataset, balancing the scaling of coordinates, with the number of buckets used. At this point in our 15

By a larger section of space we mean that we scale-up coordinates to cover a larger set of integer coordinates. As we use these integer coordinates as a look-up table to answer loci queries, the finer the resolution of the underlying 3D grid, the better. However, this also entails a larger memory consumption which grows as the cube of the scaling factor.

78

research, we only have empirical ways of choosing these parameters, which is necessary to reduce the computational efforts so that experiments can efficiently be carried.

4.5 Flow through Sheets and Curves to retrieve the Scaffold

     

 

In the previous sections we discussed methods for computing initial shock source candidates, i.e., , and . We now discuss how these initial shock sources can be “propagated” to recover the rest of the shock scaffold. Specifically, using the detected , we recursively build the shock scaffold by implicitly simulating flow along sheets and curves to identify points, and then vertices. Some of these and shocks initiate new sheets and curves, and thus we must iterate this flow propagation along sheets and curves until no new sheets or curves are found and all curves and vertices are linked, i.e., until all flows terminate at sinks. As we saw in Chapter 3, shock vertices, i.e., ’s, come in three categories labeled according to the number of curves flowing inward at the node. A sink has all four curves flowing inward and is  . This corresponds to a circumcenter being located inside the associated tetrahedron. denoted  and Otherwise three curves flow in and one out, or two flow in and two flow out, denoted , respectively. While shocks give  shocks give rise to a single new shock curve, rise to a pair of new curves bounding a new sheet. Note that new curves created at shocks only flow in one direction (i.e., outward with respect to the parent shock vertex). ’s, come in two main cateAs we also saw in Chapter 3, initial shock curve sources, i.e., gories. They both initiate a single curve flowing (growing) in two opposite directions. However, in one case, the shock curve is initiated at the junction of three incoming (flow) sheets, corresponding to an acute triangle with its circumcenter inside the triangle. In the other case, the shock curve is initiated at the junction of two incoming and one outgoing sheets, therefore giving rise to a new sheet. This second geometry corresponds to an obtuse triangle with its circumcenter — the locus of the shock — being outside the triangle. Note that the new sheet does not have the full (  radial extent like other sheets initiated at isolated shocks. In fact such a sheet will have always  less than half a full radial extent, i.e.,  or less.16 Once clustering has been performed, the algorithm consists of two main stages: (i) initialization and (ii) iterative loop. An a posteriori stage of consolidation is optional. Before we detail these stages, we require some definitions to describe how shocks are paired at a given iteration.

 

  

 

 

  

 

  

 

 

 

  



    

  

 



  

 

 

and shocks (sheets and curves) Definition 4.5.1 (Active and passive shocks) Active shocks are which have just been detected and which need to be processed for intercepts (pairings) with other shocks of their kind, i.e., other and shocks, respectively. Passive shocks are valid and shocks, already processed for intercepts, but which may yet be involved in further intercepts with new or future active shocks.

 

 

 

 

Thus, at a given iteration, the new shocks produced at the previous iteration are considered active and are paired with other shocks (active or passive). This distinction between active and passive is useful to reduce to a minimum redundancies in pairings, e.g., pairing active sheet  with passive 16

Such a sheet will have exactly an triangles.





radial extent for a right triangle, i.e., the limit case between obtuse and acute

79

Bucket Bounding box coordinates List of generators List of ngb. buckets List of visible buckets

 

shock sheet Bucket number Iteration Mid-point coord.

 Labels Source: , or Status (active or passive)



        

Generator Bucket number Point coordinates Lists of shocks ( , , 

Visibility constraints:

         )   

 

 

shock curve Bucket number Iteration Circumcenter (circle)

 Labels Source: ,  or Status (active or passive) Triangle type: acute or obtuse Labels of 2 endpoints

 

    

shock vertex Bucket number Iteration Circumcenter (sphere)    Labels Labels of 4 curves  or  Type: ,

  

  

      

 

 

Table 4.1: Main data-structure elements. sheet more than once.17 Indeed once a sheet has been paired with other existing sheets sharing with it one generator, only future active sheets may share with it another new boundary (and generator). To help speed-up the pairing process, as we find new valid shocks we further augment generators with information about these.

     

 

Definition 4.5.2 (Augmented generators) During the flow along sheets and curves, generators are augmented with pointers to associated shocks, i.e., , and . Visibility constraints are also added to their data-structure. A detailed enumeration of the data-structure elements for buckets (clusters), generators, and the three categories of shocks (sheets, curves and vertices) is given in Table 4.1.

Algorithm (Stages 1 and 2 of Lagrangian method): 









, where  . Stage 1 takes as input 1. Initialization: Processing time is initialized as sample points and produces in Step 1 a first set of initial and isolated shock sheet points, . We generate all isolated shocks, for input samples, by combining detection, validation and search by layers via coarse bucketing, and using visibility constraints at the generator and metagenerator levels, as was described in Section 4.2. A detailed pseudocode is given in Algorithm boxes 2 and 3.18 Then, from this initial set of shocks we generate in Step 2 a first set of shock curves, and in Step 3, we pair these shock curves to generate a first set of shock vertices. Both of

  



  

  

17

A further refinement is to remove fully connected curves (i.e., with two distinct shock vertices at its ends) from the list of active/passive shocks, since they cannot interact any further with other shock curves. 18 Note that, in Algorithm box 3, we make the assumption that a bucket ! visible from ! but also being a neighbor of an intermediate bucket ! , not-visible from !  , will not be “masked” by ! , i.e., incorrectly ruled-out as non-visible (or

80

these steps create new shock sheets and curves which initiate the active list of shocks. At the end of the initialization stage, all intersected sheets are put on the passive list (of sheets), all curves with unlinked outward flows, coming from either ,  or shocks, are put on the active curve list, other curves are put on the passive list (of curves), and new sheets, emerging from either or are put on the list of active sheets.

    

     



  

Algorithm 1 Stage 1, Step 1: Module for pairing and validating pairs of generators



  



  .

Pair generators and validate shock

if ( is visible from ) then if (  is empty) then 

New associated to and to . 

and to . Add visibility constraints to end if end if





  





2. Iterative construction of the shock scaffold by following outward flows: Processing time is   incremented to . Each iteration, which consists of processing active shocks created at the   previous time value, will constitute a time step, . The intersection of each active sheet with other sheets which share a common generator creates new shock curve candidates. Similarly, the intersection of each active curve with other curves sharing two common generators creates new shock vertex candidates. The process is terminated when no more shock nodes (sources or relays) are left with unlinked outward flows. At each sub-sequent iterations, only active shocks are used to seek new intercepts with other active and passive shocks sharing common generators; i.e., only newly created shocks may create new intercepts via pairing of sheets or curves. Links between shock sheets and curves, and shock curves and nodes are built during this iterative construction of the shock scaffold. The following paragraphs summarize the main concepts which are used during each steps of the iterative construction.



Intersection of shock sheets to create new shock curves: Intersection of sheets amounts to take a shared generator (via backpointers) and complete it with the other two generators, one per shock, which remain un-shared, in order to construct a triplet of generators. The associated circumcenter of this triplet represents then the sheets’ intercept, i.e., a new candidate shock locus. Validation of the circumcenter is done as for , i.e., via the use of the bucket structure and spiraling search for Type 2 Queries ( 4.3 and 4.4). To determine which type of new curve is being created, at an locus, we use barycentric coordinates, as defined in Chapter 3 ( 3.5.2).

  

  

  

  

Intersection of shock curves to create new shock vertices: Intersection of curves amounts to take the shared pair of generators, adding to it the two other generators, one coming from each more precisely, that it would not be put on any layer to be searched). Basically, we must ensure that !  will be reached from !  via a feasible path, such that !  does not impede on the path. This requires a proof involving the convexity of (cumulative) visibility constraints, which we omit here.

81

  

Algorithm 2 Stage 1, Step 1: Finding shocks within buckets and for the first layer of surrounding buckets. Present layer being processed is denoted as  . Emptiness of contact spheres  is performed using layered buckets similarly to the search for shocks (see text). Generators,   , are indexed by the letters  , buckets, , are indexed by letters   . 1.1: Find ’s within each bucket   for (each bucket ) do     ) do for (each for (each not processed yet) do  Pair generators and validate shock (algorithm 1) end for end for end for  ’s for first layer of buckets (  ) 1.2: Find   for (each bucket ) do   for (each neighboring bucket not already paired with ) do    ) do for (each for (each ) do  Pair generators and validate shock (algorithm 1) end for end for Construct next layer of neighboring buckets.    for (each neighboring bucket of ) do    if ( not visited yet nor is a ngb. of ) then     if ( is visible from ) then    

  to list of buckets to visit at layer Add end if end if end for end for end for



     

  

 



  









82

Algorithm 3 Stage 1, Step 1 (continued from Algorithm box 2): Finding layers of surrounding buckets than the first one. 1.3: Find ’s for other layers of buckets (  )   ) do for (each bucket while (List of visible buckets not empty) do 

  ) do for (each visible bucket of layer   for (each ) do     for (each ) do Pair generators and validate shock (algorithm 1) end for end for Construct next layer of neighboring buckets.    of ) do for (each neighboring bucket   if ( : not visited yet nor part of layer    ) then     is visible from ) then if (     Add to list of buckets to visit at layer

 end if end if end for end for     (next layer) end while end for

  













 



  

shocks for other

83

   

intersected curve, to constitute a quadruplet of generators. The circumcenter of this quadruplet then represents the curves’ intercept, i.e., a new candidate shock locus. Validation of the circumcenter is done via the use of the bucket structure combined with the spiraling search for Type 2 Queries. To determine if a new curve is being created, at an locus, we use again barycentric coordinates  or  , has been found, as to determine which of the three types of vertices, i.e., , explained in Chapter 3 ( 3.5.3). The general pseudocode for Stages 0, 1 and 2 of the Lagrangian method is given in Algorithm box 4.

    

 

Algorithm 4 An overview of the Lagrangian method of construction of the shock scaffold of point generators. represents the iterative time (see text), and   denotes the present iteration in Stage 2. (0): Coarse grouping of point generators in 3D into disjoint volumetric clusters which cover the entire space.  ) (1): Initialization (time Step (1): Find all shock sources by pairing generators according to seven principles mixing visibility constraints and clustering. Step (2): Find shock sources by pairing valid shocks which share a generator. shock maps to an obtuse triangle) then if (   Put new shock sheet on Active list (time ). end if shocks by pairing shocks which share a pair of generators. Step (3): Find valid if ( shock has outflowing shock curves) then   Put new and/or shock(s) on Active list (time ). end if (2): Iterations 

  

 

 

 

     

  



   

 







  









while (Active list at time is not empty) do    Pair sheets from the Active list (time

 ) with other sheets (time    

  generator, to obtain new valid shock sources (time ). if (new shock maps to an obtuse triangle) then   

  Put new shock sheet on Active list (time ). end if   

  ) with other curves (time Pair curves from Active list (time    

  of generators, to obtain new valid shocks (time ). if (new shock has outflowing shock curves) then    

 Put new and/or shock(s) on Active list (time ). end if  

  

      

 



 



 

 

 







) sharing one











) sharing a pair



end while

3. Consolidation of coincident nodes and links: This stage is useful in degenerate situations where multiple shocks, of the same type, may coincide in locus, e.g., for spherical caps, cylindrical

84

Figure 4.19: Timing results for shock flow method: on a set of 40 real-life shapes (Left); on set of artificially generated random samples in a 3D box (Right), i.e., with roughly the same “shape.” All experiments performed on an SGI Octane 2 machine running IRIX 6.5; implementation done in the C programming language. segments, cubic arrangements, etc., mainly from scanning human-made objects, in CAD applications, or when testing with synthetic ones. For example, if a shock node has five sources we expect four   shocks to coincide and require to be merged together. Consolidation requires proximity in locus and radius value in order to merge shocks into one representative. The content of the datastructure of each contributing shock (Table 4.1) is combined into one unique set. Combined with a tolerance level on the spatial proximity, consolidation permits us to reduce the effect of slight perturbation or sensor noise when scanning highly regular objects. However, for higher levels of perturbation, transitions must be explicitly considered [96] (Chapter 6). Discussion: In the first step of Stage 1, when computing    shocks we achieve a practical linear complexity, i.e., which degrades linearly with the number of generators. This is made possible by combining coarse bucketing and visibility constraints. 19 This is a significant improvement on the  brute force method which has    complexity. Memory consumption for   points is also observed in practice to be linearly dependent on the number of generators, rather than the theoretical     which is only reached for highly degenerate cases. 20            for  shocks and In the iterative stage, memory consumption is of order       for augmented generators. At each iteration the process is linear in the number of new active  shocks (sheets and curves). The branching factor of generators — i.e., the average number of shocks associated to each generator — grows slower with iterations, i.e., convergence is always achieved. 21 19

Note however, that for a given dataset, this implies finding the optimal space versus bucket size ( 4.4). Typically, we obtain between to  times more   shocks than generators. 21 We do not prove convergence here, but it is a direct consequence from the knowledge of maximal bounds of the scaffold structure (Chapter 3). 20

85

Some results are illustrated in Figure 4.19.(a), where we highlighted once again a zone where most (90%) of the search results fall when seeking all visible neighbors for a variety of shapes. 22 Results are similar to the simpler search of visible neighbors, although the fluctuations due to different choices of bucket parameters are less important. This is more apparent when considering a sub-sampling of the same shape and simply augmenting the number of samples, as illustrated for a series of randomly spread generators in Figure 4.19.(b). Note that our timings are similar to those obtained via QHULL [22], a popular set of free software used to compute Voronoi/Delaunay graphs in 3D and higher dimensions for point generators. This is impressive since our code is not optimized at any level while QHULL has been effectively optimized over many years. We have yet to implement all the ideas discussed in this chapter pertaining to efficiency. For example, the shock validation has not been optimized yet. Also, our multi-resolution scheme has yet to be used to its full power. The influence of bucketing parameters indicate that multi-resolution should buy us a lot more leverage. Also, our present implementations run into memory consumption problems for dataset larger than about 50000 (fifty thousand) points. This artificially lowers our present performance rates, which nevertheless are good. Our initial goal was to achieve practical linearity in numerical complexity so that one can compute the shock scaffold in a reasonable time. Linearity is also a desirable software design criterion in order to support the transfer of this new technology to real-time applications. Finally, we mention possible modifications which can also lead to even more performance imand shocks as soon as we have found a first provements. First, we can start processing set of shocks in each bucket considered in isolation, rather than try to find all isolated shocks at once as is done in Step 1 of Stage 1. For dense data, this creates additional visibility constraints as new sheets are uncovered from associated to obtuse triangles and from shocks. Second, we can parallelize our schema for scaffold computations. Indeed all the steps have been designed with this possibility in mind. For example, we can partition space in many smaller non-overlapping 3D sections, each allocated to one “processor/computer.” Then we can perform the above computations in each independently, as if they were “super-buckets” or clusters. When all flows, at full resolution within each super-bucket, produce no more new shocks, we can combine the super buckets in larger ones, or a single one, and restart flows by making all existing sheets and curves active. Note that since we presumably have built many valid shocks and associated visibility constraints, the required processing within the combined super-buckets is expected to be largely reduced. Third, we note that we can limit, and eventually eliminate altogether the shock validation step, if we strictly order all pairings — or in other words, intersections amongst shocks — by time, i.e., by the radius function which is the minimum distance function from generators. This was done in 2D by Tek and Kimia with significant savings [235]. An optimized way to perform such an ordering, in order to avoid redundancies in pairings and reduce invalid shock detection to a minimum, is to perform a wave propagation simulation on a discrete 3D grid which tessellates the space around the generators. We present such a scheme in the next chapter.

  

  

  

 

     

22 A set of 40 different real-life shapes were used here, ranging from pot sherds, to body scans, blood vessels, mechanical parts, etc.

Chapter 5

Eulerian Computations for Unorganized Point Clouds *P1: Complements Lagrangian method: Advantages

In the previous chapter a Lagrangian method was developed where by pairing generators and “propagating” along shock traces we were able to recover the shock scaffold. Since the spatial layout of unorganized generators is not a priori explicit, this process can be lead to an unnecessary examination of false pairings. Alternatively, the embedding space can be used as a guide to which pairings to consider. Specifically, a grid can be used in conjunction with a discrete simulation of waves and their discrete collisions to highlight areas which need to be examined. In this complementary Eulerian approach, we simulate the propagation of surface waves in 3D Euclidean space using a discrete grid on the basis of the minimum distance to generators, . The main potential advantage over the Lagrangian approach is that an explicit propagation through space avoids the use of visibility tests and reduces most of the burden of validation tests as well. Visibility tests are unnecessary to carry along as propagation paths are explicitly limited by the filling of space performed by wavefronts simultaneously initiated from each generator (Figure 5.1). But wavefronts not only fill-in space according to the distance from generators, they also carry information about the generators, such as their label. Then, shock validation is only needed amongst meeting wavefronts and can be done exactly with few computations.



*P2: Disadvantage in certain cases

However, the main burden of explicitly filling space is that lots of efforts may be wasted for little reward if large sections of it are void of generators. This may well be the case if the data is spread out along thin traces, e.g., as it often occurs with the scans of surfaces of bulky objects. Thus, we can expect in practice that certain data types will be best processed with the Lagrangian method, while others will be processed more efficiently via the Eulerian method. Such a comparative study was first carried recently for the 2D problem by Tek [235], and part of our motivation here is to pursue such an analysis in 3D. *P3: 3D wave propagation: how to do it?

But how to simulate wave propagation on a 3D grid? Our two guiding principles are: (i) correct-

86

87

            G3          G2           

G1

(a)

G3

G1

G2

(b)

Figure 5.1: Two complementary methods of searching space. (a) In the Lagrangian method, we must jump from generator to generator in trying out possible shock pairings, and need to use the visibility test to limit our search. (b) In the Eulerian method, by explicitly visiting space growing wavefronts from all generators, visibility testing need not be carried explicitly. E.g., generator will never be paired with to create an shock source, since the wavefronts associated to will have occupied enough space in between and effectively cut-out all possible straight propagation paths to/from . Possible pairings between sources are shown as dashed lines; resulting from/to shock sheets are also shown as dashed lines in this 2D projection.







  



= L+∆ L φ                    φ=L                                                                                    

φ = L+∆ L φ=L

(a)

(b)

    



 L φ =  L+∆

                            φ = L                                                   (c)

Figure 5.2: The two dual views of classical geometric wave propagation. (a) By Huygens’ principle,  each point of a wavefront,

, is the source of a new small wave, taken to be a sphere when modeling uniform 3D propagations. The “forward” envelope of these small waves describes  a new wavefront,

, such that time is incremented by an amount proportional to . (b) By Fermat’s principle, each point on the original wavefront is seen as a particle moving forward in time and space according to least action paths. (c) A compromise between these two principles, which is useful in the discrete world, is to let rays become fatter and allow them to overlap slightly in order to cover all needed paths, starting from a finite set of samples on the original wavefront,

.

 

    



 



88

(a)

(b)

(c)

Figure 5.3: Decomposition of the sphere of directions into sets of (a) 1D, (b) 2D and (c) 3D beams, i.e., pencils of rays. ness and (ii) efficiency.1 That is, on the one hand, we need to propagate to each grid node the correct generator label, in order to retrieve the correct minimum distance to generator function, as well as detect and propagate all valid shocks. On the other hand, ideally we would like to visit each grid node only once when performing a propagation, to keep computations to a minimum. We address these two criteria in unison on the discrete grid, by combining the two dual views of classical geometric wave propagation, i.e., Huygens’ and Fermat’s principles. Huygens’ principle, which sees each point on a wavefront as the source of a new small wave, addresses correctness: it ensures that, locally, all discrete propagation paths are explored, and that, globally, the correct wavefront is propagated as the envelope of the smaller ones (Figure 5.2.(a)). It is easy to discretize Huygens’ principle with the help of digitized balls to define a neighborhood of propagation on the grid. However, this leads to too much overlap, in other words too many unnecessary visits of each grid node, which is even more of a computational burden in 3D than in 2D (i.e., overlaps grow to the cube in 3D, to the square in 2D). Fermat’s principle, which advocates the tracing of each point on a given wavefront by projection along normal rays, addresses efficiency: any loci in space is only visited once by the appropriate ray (Figure 5.2.(b)). Digitizing Fermat’s principle proves to be a challenge, however, as the number of rays that must be defined in order to cover all path directions, keeps growing with the maximal distance of propagation in space. A compromise between the two approaches is then to design “fat rays” allowing for small amounts of overlaps between nearby propagation paths (Figure 5.2.(c)). *P4: 3D wave propagation: neighborhoods as overlapping rays

We call “beams” the designed fat pencil of rays. Our design criteria are that (i) only a finite small set of such beams is required to ensure space filling, (ii) the overlaps between adjacent beams are kept to a minimum during the propagation, to ensure efficiency. This design of “beams” was motivated by the original approach of Montanari [166] to perform distance propagation on a 2D grid, later refined also in 2D by Ragnemalm [203] and Tek [235]. To address our pair of design criteria, we 1

An earlier version of the content of this chapter was first presented in [148].

89

need to define three sets of such beams: (i) 1D rays along grid directions, (ii) 2D planar beams along planes containing two of the grid directions, and, (iii) a set of 3D beams obtained by combining 2D beams by pair covering orthogonal orientations (Figure 5.3). The 1D rays are “optimal” in the sense that they use paths directly supported by the grid to avoid any overlap. However, they are not sufficient to reach all voxels. The 2D beams fill-in gaps left by the 1D set in their planes of propagation. The 3D beams fill-in the remaining gaps left between 2D planes of propagation. *P5: 3D wave propagation: dynamical process

Defining neighborhoods in the form of beams is not sufficient: we also need to address the dynamical nature of the simulation of wave propagation, i.e., which neighborhood to use, where and when. Note that, with the previously introduced beams, we can locally propagate paths from voxels to nearby voxels, but, shouldn’t we wait for nearby paths to catch-up? Efficiency requires proper dynamics and the answer is positive. The underlying principle we use to control the dynamics takes the form of a discrete wavefront — the set of all voxels from which we are introducing a beam of (local) propagation at any time in the simulation — such that this front remains as close as possible to the true continuous one. While the set of beams was designed to minimize overlaps between adjacent paths initiated from the same generator, here, by following the true wavefront, we will ensure that we minimize overlaps between propagation paths initiated from different generators. This will also permit to detect shocks using a minimum number of generator labels, which are carried along with each generated path, thus simplifying shock validation. We will track the true wavefront using a “minimum distance to generator” which identifies the path to propagate next in order to follow the true wavefront as closely as possible. *P6: 3D wave propagation: Math. Morphology and Cellular Automata

The formal description of this spatial and distance-ordered process, requires notation and concepts from the realm of discrete mathematics. First, we use the concepts of structuring elements and dilations from mathematical morphology [214], to define beams and their local application to generate elementary propagations on the grid. Second, we cast the dynamics of the wave propagation algorithm as a cellular automaton [2]. Using these formalisms presents the following advantages: (i) they provide uniform and well-established languages to describe the dynamics of propagation on a discrete grid; (ii) the formalisms are useful at the implementation level; (iii) they permit the possibility of extending the developed ideas to other problems, such as the simulation of 3D propagation in constrained environments, i.e., with obstacles, or the simulation of propagations within the scope of a probabilistic framework; (iv) they facilitate combining Eulerian with Lagrangian propagations, and trace shocks as waves, as we will see in Section 5.3. *P7: 3D wave propagation: Properties

We conjecture that the resulting algorithm for the simulation of 3D wave propagation on a grid has the three following main properties. (i) The propagation is complete, i.e., all voxels are visited at least once. (ii) The propagation is accurate, i.e., all voxels get the correct generator label. (iii) The propagation is a close approximation of the uniform wave propagation, i.e., voxels are visited in an ordered fashion which mimics the true minimum distance to generator function. *P8: Chapter’s overview

The following sections present the details required to implement the complete algorithm and study its behavior. In Section 5.1 we establish the neighborhoods in the form of the three classes of beams, and their applications via dilations to generate local propagation paths. Then, in section

90

(a)



(d)







(b)



(e)





(c)

(f)







 

Figure 5.4: Illustration of the accurate 3D wave propagation achieved from a dot (LHS) and a square plane (RHS). Different wavefronts are shown by tracing a particular radius function value. Here we use the marching cube algorithm [158] to obtain the trace of wavefronts, once our algorithm has computed the required radius value. All computations are performed within a bounding box of fixed dimensions.

91

Section 5.2 we describe the complete algorithm as a cellular automaton. Finally, in Section 5.3, we specialize the cellular automata framework, to be able to propagate not only 3D waves on the grid, but also 2D and 1D shock waves. This will permit us to trace accurately shock sheets and curves as they intersect the 3D grid through its network of edges and faces, respectively.

5.1 Beams and Local Propagations







This section defines the set of beams as 1D, 2D and 3D structuring elements, denoted by . Then,    a local propagation from a voxel is obtained by the well-known dilation operation: .

5.1.1 Notation



    

We consider a 3D grid defined as a subset, of , i.e., it is the usual cubic lattice of finite dimensions tessellated by unit side length voxels with axes aligned along the canonical directions   of  an orthonormal coordinate system. Each voxel is centered at a triplet of integers, , and its volume covers an elementary cube in the range          (Figure 5.5.(c)). The total number of voxels is denoted  . If we consider each voxel as a set of nodes and link these nodes by straight links parallel to the , and axes we obtain the usual depiction of the lattice as a regular 3D graph (Figure 5.5.(d)). This dual representation to the voxels, made of cubic cells having for vertices 8 voxel centers each linked by pairs to three others by an edge of unit length, will prove useful to us. We call each such elementary dual cell, a chamber, to distinguish it from a voxel. Each voxel therefore is related to eight surrounding chambers, i.e., each octant of a voxel is part of a neighboring chamber (Figure 5.5.(d)).   A voxel is indicated by where  are the integer representing the coordinates this voxel. We also define a binary (position) function:

      

 

    







 

      







              





in order to apply dilation operations on voxels to simulate discrete propagations (see below). Adjacent voxels are defined by shared faces, shared edges or shared vertices. That is, consider a cubic  (3x3x3) neighborhood consisting of the 26 nearest voxels to : is one of the 26 neighbors 

  of if and only if   ; we call this set of voxels the adjacent  neighbors or simply neighbors of (Figure 5.5.(d)). Local path propagation requires neighborhoods made of more than one voxel together with a local process to move a voxel to another locus, indicated by the neighborhood. We define a discrete  propagation from voxel to an arbitrary set of surrounding voxels, via the concept of dilation

 as defined in Mathematical Morphology [214, p.44], and denote it “   ,” where “  ” is the  symbol for the Minkowsky sum of the two sets, and defines the neighborhood of propagation as a  by dilation to a new position indicated by the set of voxels. This indicates that we expand voxel  set , called structuring element in morphology. Because we will need to define neighborhoods of  varying size, this structuring element, , will be a binary set made of  voxels, , which



 

        











  

92

Y

Y

    (i,j) 

                 

X

X

(i,j)

(a) Voxel in 2D.

(b) Chamber in 2D.

Z Z

(i,j,k+1) (i,j,k)

(i−1,j,k)

Y (i,j−1,k)

(i,j+1,k)

X

(i+1,j,k) (i,j,k−1)

  (i,j,k)                                                                                      

Y

X (c) Voxel in 3D.

(d) Chamber in 3D & 26 ngbs.

Figure 5.5: Voxels and Chambers. (a) 2D view of a voxel. (b) 2D view of a chamber delimited by voxels. (c) Definition of a voxel at position    . Intercepts of the voxel’s faces with the grid axes

     at      are shown as small light disks. The six direct neighboring voxels, also located along the grid axes, at !  "  #$  , are shown as larger dark disks. (d) The 26 adjacent neighbors of voxel %   are shown as dark disks. The chamber with vertices at voxel loci      '&(     &)   *     +    ,&)     -&)  +   &  .&+    /&+  0&1     is also shown with its faces hashed in blue.

93

vijk

v1

vijk vij+1k

v 2010

Z

vijk

vijk

v1

vi+1jk vijk−1

2 v100 3 v00−1

v1

v3

Y

4 v02−2

vij+2k−2

(0,0,0)

Z v2

Y X

X

(a)

(b) 

 



    

  

 



Figure 5.6: (a) Example of structuring element, , made of 3 voxels: , and    . That is, the voxel at origin is “off,” which is indicated by a light disk, while its two companion voxels are “on” which we is indicated by dark disks. (b) Example of discrete propaga tions via dilations. At the top we dilate a voxel by a structuring element made of a center and one voxel aligned in the direction. In the middle the structuring element has three voxels with its

 propagates it to 4 center. The result of simultaneously applying these two dilations to the voxel neighboring voxel loci as illustrated at the bottom.







94

Y

Y

Y

X

X

(i,j,k)

X

(i,j,k)

(a)

(i,j,k)

(b)



(c)

Figure 5.7: Example of iterative propagation,   approximating Huygens’ Principle, here shown in the plane from a voxel centered at  in (a), by applying a dilation by the structuring element  : once in (b) and twice in (c).



 









  

have an implicit spatial map: the first voxel, , is always the center, i.e., , while cell will

  where  are the voxel coordinates relative to the center of the structuring be described by element. The structuring element is defined as:

 

       













  

where the center has null function value as it needs not be dilated itself (see Figure 5.6). Then, we can formally define a discrete propagation as a set operation: 2

 



 

      

 denotes the structuring element with center translated to the voxel position where (Figure 5.6.(b)). 



 

5.1.2 Discretizing Huygens’ and Fermat’s Principles: Beams & Paths



Observation 5.1.1 (Discrete propagation approximating Huygens’ Principle) Consider a voxel,

 , on a wavefront3 at a particular time . the application of Huygens’ Principle on the discrete  grid can then be approximated via a dilation with a structuring element, , representing a dis    cretized sphere: , where, e.g., we consider all adjacent neighbors of a voxel to discretize a small sphere, i.e.,







         

  



                        

2



   

We do not take the transpose of , i.e., the reflection of with respect to its center, as is usually done in morphology (e.g., see [214, p.43]), since this is not necessary here.  corresponding to the level set of value for the corresponding wave travelling in space; 3 A wavefront is a surface in see Chapter 8 ( 8.1) for a formal definition.







95

Y

Y

Y

X

X

X

(i,j,k)

(i,j,k)

(a)

(i,j,k)

(b)



(c)

Figure 5.8: Example of iterative propagation,   approximating Fermat’s Principle, here shown in the plane from a voxel centered at  in (a), by applying a dilation by the structuring element    ( ): once in (b) and twice in (c).

 

 





is represented by the 26 adjacent neighbors in Figure 5.5.(b) Thus, the structuring element together with its central voxel at the origin. With the above we remark that we have a very coarse approximation to wavefront propagation via Huygens’ Principle, where we “catch” wavefronts at voxel loci, and propagate them to loci also limited to be on the grid, here at adjacent voxels. Also, note that we approximate the metric of the medium, which ought to be a sphere for obtaining uniform Euclidean propagation, by a cube here, given by the 26 adjacent neighbors. We will address how to better approximate the true Euclidean propagation later in Section 5.2, when we consider the dynamics of discrete propagations via cellular automata. An example of propagation is shown in Figure 5.7 for two “discrete time steps” for a 2D slice in the plane , for greater visibility. By “discrete time steps” we mean applying twice the 4 dilation operator, i.e.:



 

 

 

 

Note that, other approximations to a discrete sphere (or disk in 2D) are possible and have been proposed in the literature [184, 216]. The important point here is that the discretized sphere should allow to propagate to all voxels of the grid through iterative dilations. The main disadvantage is that voxels are visited over and over again. Let us now look at Fermat’s Principle which permits to avoid any overlap, at least in the continuum.



Observation 5.1.2 (Discrete propagation approximating Fermat’s Principle) Consider a point   at a voxel, , which is on an minimum distance path at a particular time ; the application of 4





   



Repeated application of a morphological operation is alike performing a one step operation with a larger structuring element according to the chain rule of mathematical morphology: [214].

96

Y

v3 v1

v2

X (i,j,k)

(a)

(b)

Figure 5.9: (a) Example of missed voxels (white disks) with ray-based propagation using the simplest structuring elements made from adjacent neighbors only. Voxels missed correspond to the    

 structuring element’s for the permutations , i.e., for the Farey sequence  of order 2 [165]. (b) Additional 2D structuring elements required in each of the canonical planes, , and , to close all possible gaps during 2D propagations.

 

 





 





Fermat’s Principle on the discrete grid can then be approximated via a dilation with a structuring     element, , representing a discretized ray: , where, e.g., we consider one of the adjacent neighbors of a voxel to discretize a small ray:

             



  





          

   

Therefore, this defines a set of 26 elementary structuring elements, or discrete rays. With the above we remark that we have a very coarse approximation to Minimum distance path propagation according to Fermat’s Principle, where we “catch” a path at a voxel locus, and propagate it to another locus also limited to be on the grid, here at one of the adjacent voxels. An example of propagation is shown in Figure 5.8 for two “discrete time steps” in the plane , with a    such that . Again, by “discrete time steps” we mean applying twice structuring element     the dilation operator, i.e.: . Note that, other approximations to a discrete ray for larger time steps, are possible and have been proposed in the literature (e.g., see [203] for 2D examples and [204, 232] for 3D ones). The important point here is that the discretized path should allow to propagate to all voxels of the grid through iterative dilations. However, with a small set of possible rays, such as the 26 obtained by using all adjacent neighbors to a voxel, iterative dilations leave gaps behind, i.e., some voxels are never reachable (Figure 5.9.(a)). Which points of the grid need to be explicitly represented in order to leave no gaps behind follows, for a 2D grid, Farey sequences [165]. 5 A (theoretical) solution to this problem would therefore be to represent explicitly all possible such gaps, with longer structuring elements.



5





  





Farey sequences are given as the ordered sequence of all rational numbers between or equal to .



and



with denominators less

97

Gap No Gap

Gap No Gap

No Gap

No Gap

(a)

No Gap

(b)



Figure 5.10: (a) We illustrate the difficulty with propagating along immediate grid directions dic  tated by the 3x3x3 neighborhood. On the left, in the horizontal plane’s quadrant, under strict 1D propagation, only neighbors on an axis or diagonal with respect to the origin, are reached. In the middle is shown the gap-filling effect of using additional 2D structuring elements. On the right is shown the 3D picture of this problem. (b) The 1D and 2D pencils of rays do not fill all the space for the neighbor’s neighbors (left). The addition of volumetric 3D beams (filling volumes) covers such gaps, and by induction, for all the lattice (right).

However, the number of such discrete rays “jumping” to those loci missed by smaller structuring elements keeps growing with the maximal distance needed for the full propagation, which proves impractical to implement even in 2D. Notice that, in 2D, the gaps are left only off the main axes and main diagonals (Figure 5.10.(a)). An efficient solution to this problem of leaving gaps behind when using a finite set of discrete rays, is to augment them with a minimal set of larger structuring elements which, when combined with the original set, permit to close all gaps. Ragnemalm was the originator of this idea in 2D, which he explored in the context of Distance Transforms applied to binary images [203]. 6 The additional minimal set of structuring elements, each made of 3 voxels, permitting to cover all gaps left in 2D planes of propagation, is defined as: 



                                         



   



 

 

 

 

6

                                                  









Ragnemalm conceives of these as masks convolved iteratively with an image starting from a binary set, object, nonobject, and transforming it to a grey leveled image, where grey values represent distances from the original object pixels [204].

98

Z

4 v111 1 v000

2 v100

Y

3 v110

X

(a)

(b)

, Figure 5.11: (a) Example of a 3D structuring element made of four voxels: %       %      , %     and %    , which helps covering some of the gaps in the positive octant. (b) Illustration of how the 3 types of structuring elements permit to cover all directions comprised between those explicitly represented by the 3D grid’s main axes and diagonals. 



%

  

% 

 

  

 

resulting in 24 2D structuring elements, i.e., three subsets of 8 elementary 2D “rays”, one for each of the    ,    and    planes (Figure 5.9.(b)). Still this additional set is not complete to cover all possible gaps when simulating 3D propagation by successive dilations (Figure 5.10.(b)). We need to add a final set of 3D structuring elements, combining discrete rays, by three, representing one axial direction %   , one 2D diagonal step %   and one 3D diagonal step %  , this to ensure covering all remaining gaps. 7 For the axial direction covering positive and negative  , we then have the following 16 elements (Figure 5.11.(a) gives an example): 

%       %     %      

 %     %        %     %       Similarly, for the axial direction covering positive and negative ments:

7



%

  





  

%

  



%

%

     

 %  % 

%

  

   



, we have another set of 16 ele-

          



Alternatvely, we can conceive of these 3D structuring elements as combinations of pairs of 2D ones, as defined previously, mixing the directions of two orthogonal canonical planes.

99

And, finally, for the axial direction covering positive and negative 16 elements: 





                        

   





, we have the following set of

      

 

                    

Thus, we have a total of 48 3D structuring elements. Together, the 1D, 2D and 3D structuring elements permit to bridge the “gap” between Fermat and Huygens on 3D grids. We will refer to these structuring elements as “beams” as they represent both thin (1D) rays and collection of these in “fatter” pencils of rays (2D or 3D). 









’s, 24 2D ’s Definition 5.1.1 (Beams) The set, , of 98 structuring elements, made of 26 1D  and 48 3D ’s is called the set of beams. This set is useful to model discrete propagations on a 3D uniform grid, such that no gaps are left behind, i.e., no voxels are missed by successive dilations. However, note that we cannot simply apply dilations using these beams in random order: i.e., successive dilations must approximate optical paths. We need a notion of discrete path on the grid.



Definition 5.1.2 (Discrete propagation path) A sequence of successive dilations by beams bring  to another voxel locus, , is called a (discrete) propagation path. ing a voxel There is of course a large number of distinct paths on the grid to reach a remote voxel, ,  . According to Fermat’s principle, we should look at only those which minimize distance. from





Definition 5.1.3 (Discrete optical path) A propagation path on the grid which minimizes the distance, , between two voxels, is called a discrete optical path. Hence, the guiding principle for choosing which beam needs to be apply next will be based on a distance function which always needs to be minimized. This minimization is tackled via the dynamics of propagation.

5.2 A Cellular Automaton for 3D Uniform Wave Propagation



We follow the classical definition of the cellular automata framework, e.g., as given in [2]. First, the cellular space is simply the subset of , i.e., the regular cubic lattice.8 The elementary cell,

 , is taken to be identical to the voxel. Second, the cellular neighborhoods are defined by the set of 98 structuring elements defined in the above section, beams. Third, the cell state at   i.e., via    each iteration is defined as one of a trinary set : a cell is either (i) quiescent   (state ), i.e., has never been visited or activated by a wavefront yet, (ii) is active (state ),









   





8 See [68, 60] for arguments on why the regular cubic lattice is a good choice for tesselating Euclidean space, especially in dimensions higher than 2.

100





i.e., is part of a (discrete) wavefront , or (iii) is passive (state ), i.e., it has been set at least once by a wavefront. Fourth, and finally, we will define below a deterministic transition function, , such that a cell’s state depends only on its present state and the state of its adjacent neighbors (defined by cellular neighborhoods). The effect of the transition function is to change the state of a cell to a new one, i.e.:



        













 



             . Each later time step will









 Initially, all cells are set to be quiescent,    produce a new configuration. Cellular propagation is initiated at time when the state of certain cells is set to be active. These will be the cells (voxels) which are in the vicinity of generators, as we explain below. 5.2.1 Initialization gens’ step



  : Generators as sources of the propagation — Discrete Huy

  

 



Consider a generator at position , i.e., within the limits of the grid. For each   generator we consider in which chamber it lies in. 9 This gives up to eight voxel loci for any given    such that   ,  generators, i.e., the eight closest and surrounding voxels         and . We then set the state of each such voxel to be active, i.e., . We can think of this propagation from a generator to its surrounding voxels, as yet another form of a discrete Huygen’s wavelet (Figure 5.12.(a)). Each time we set a cell in this manner we write to it information related to the generator, , which triggers its state. That is, we write on a list associated to that cell, the label of the generator,  , and the (signed) distance vector:



 





 



        



(5.1)            is the Euclidean (squared) distance from to the cell in question. such that,  Any given cell can be triggered numerous times during this initialization: we just keep adding new generator labels to its list. However, we only maintain the distance vector which minimizes the   distance value, . Thus, at the end of this initialization step, i.e., at time , we have now a number



 

of cells in active state, ready to begin the propagation process on the grid itself. And for each of these active cells there is only one minimum distance vector with associated generator label to propagate further.



Remark 5.2.1 (Key role of the distance vector) It is the distance vector, , associated to each cell which turns out to be crucial in order to select which beam (or cellular neighborhood) to use to pursue propagation, as well as to order which cell on the (wave)front list should be considered next, as we discuss below. Carrying and updating this distance vector for each cell also permits to reduce overlaps between propagated paths and approximate closely the true Euclidean metric as will also be explained below. Using a distance vector, , rather than simply the scalar , was first proposed by Danielsson in order to optimize Euclidean distance transforms in the plane [77]. 10



9 10



E.g., by finding its lower and upper integer coordinates using the FLOOR and CEIL operators. See [144] for a comparison of vector-based versus scalar-based methods of 2D propagation of distance.

101

Z

Z

Y

(i,j,k)

Y

Gi

Gi

Gi

X

(a)

(b)

(c)



 



Figure 5.12: (a) Example of initialization, at time , of the propagation for a generator, , by setting the states of the vertices of its chamber, here shown for a 2D slice in the plane. Active cells are shown in red, passive in grey, quiescent in white. (b) Second step of initialization,   propagation on the grid proper, via 1D beams, . (c) Third step of at time , where we initiate  initialization, at time , where we add 2D beams to ensure off diagonal voxels are also reached. Main diagonals of propagation with respect to the generator’s chamber are shown as dotted lines.







   : Setting-up 1D beams At the following step we begin launching propagation on the grid using the first set of 1D beams only. That is, cell neighborhoods at time step  are restricted to the subset of 26  ’s. We further restrict amongst each active cell which neighborhood to use for propagation by taking the scalar product of their associated (minimum) distance vector, , with the structuring element’s  coordinates, and selecting only those  ’s which makes the product positive:             5.2.2 Initialization









  



That is, we select only those structuring elements giving a propagation path oriented in the same octant as the distance vector from the generator (Figure 5.12.(b)), this to avoid back propagation effects and reduce overlaps amongst propagation paths. The information of generator label and distance vector is carried over to the newly activated cells, with the addition that the distance vector is incremented by the structuring element’s coordinate values:

              , cells that were activated at the previous time step, 





 





 

At the end of this time step, , are set to be passive. Again, for each new active cell, we maintain only one minimum distance vector.

5.2.3 Initialization

  ): Setting-up 2D beams



At the following time step, active cells propagate themselves in  the direction dictated by their associated structuring element, i.e., the ones that reached them at , minimizing the distance func-

102







tion, . Furthermore, we also introduce 2D beams, , by adding these to active cells propagating along main axial directions, in order to make sure we reach off-diagonal (in 2D planes) voxels (Figure 5.12.(c)). The selection of which 2D beams to use is again performed by taking the scalar product of the distance vector, , of the active cell, together with the structuring element’s coordinates,  and selecting only those ’s which make the following scalar product positive:







    







  

 



The information of generator label and distance vector is carried over to the newly activated cells, with appropriate increments, i.e., either:





    





                         









 









 









At the end of this time step, , cells that were activated at the previous time step, , are set to be passive. Again, for each new active cell, we maintain only one distance vector which minimizes the distance to generator function.

5.2.4 Final initialization step

   : Setting-up 3D beams





A final initialization step is required to initiate propagation via 3D beams, . That is, active cells propagate themselves according to their associated 1D and/or 2D beams, i.e., the ones that reached them at , minimizing the distance function, . Furthermore, for those cells having associated   2D beams, we add to their propagation a element, selecting only those ’s which make the following scalar product positive:











     



   









that is, out of the 2D planes of propagation but in a positive octant with respect to the generator having initiated this path of propagation. The information of generator label and distance vector is carried over to the newly activated cells, with appropriate increments, i.e., either:







     















 

                                                































Once more, at the end of this time step, , cells that were activated at the previous time step, set to be passive, and only cells minimizing distance vectors are set to be active.



 , are

103

5.2.5 Main propagation loop 



At the end of time step , all types of beams have been properly initiated from all possible generators. Also, we note that a “layer” of thickness equal to three voxels on each sides of the chambers containing generators has been visited, thus setting the minimum distance to generator of these  ). In particular, the minimum distance paths of passive cells are voxels, i.e., the distance finalized, i.e., wave propagation is already completed for these. Two remarks are necessary to be made here. First, some paths may have already intersected with others, signaling shock events. We will deal with this topic in Section 5.3, which involves tracing explicitly the shock hypergraph. Second, in the initialization steps some voxels end-up being visited an unnecessary number of times. This is due to overlaps in propagation paths. We now tackle this second point which is crucial for the performance of the main propagation loop, i.e., after initialization and until completion of the propagation through . In a nutshell, overlaps can be greatly reduced by maintaining a distance-based ordered list of which cells to process first, at any time. This is in the spirit of the general Dantzig method for optimal path determination [165]. That is, the cell at the top of the wavefront list, when seen as a stack, should always be the one with smallest minimum distance to generator. Then, the second cell should have the second smallest distance value, etc. The reasoning being that cells with low distance, , are the most likely to generate an elongated valid optical path at the next time step, i.e., such that it will minimize distance at the new voxel locus. The simplified pseudo-code for the main loop, based on this notion of ordered propagation, is given in Algorithm’s box 5.







Algorithm 5 Distance ordered propagation loop. for all (active) cells on the ordered wavefront list do Select the cell, , at the top of the list, i.e., with lowest distance value, . Propagate it according to its associated beams. If the newly visited voxels see their distance functions minimized, insert them in the wavefront list in the order dictated by that new distance value. Remove cell from the wavefront, i.e., make it passive. end for



5.2.6 Numerical complexity Maintaining the wavefront as an ordered list amounts to sorting it. One possibility is therefore to rely on classical sorting algorithm, such as QUICKSORT or HEAPSORT, by using the floating point values given by the distance function , as the sorting parameter. We recommend using HEAPSORT which has lower worst case complexity and average performances nearly as good as QUICKSORT [199].     , where  represents here the number The numerical complexity of this algorithm is of cells on the wavefront. Note also, that the number of cells on the wavefront at any time step is expected to be a fraction of the total number of cells of the grid,  . At the end of the full propagation, we will have visited all  voxels however. Thus the total complexity of the propagation can be   approximated as   .











104

We can improve on this by using an adapted sorting method. Consider that, because all dis  crete propagations are performed on the grid after , the distance function is always incremented   by integers: . We can take advantage of this in the bucket sorting method [249]. Essentially, this is a 1D and dynamic version of the coarse clustering method we used in the Lagrangian method of Chapter 4, where cells of the wavefront are put in “buckets” corresponding to the integer part of their associate squared length, . Note that, we can at initialization separate the distance vector of any cell into (i) the distance vector linking the original generator to its chamber’s  voxels, , and (ii) the remaining part due to increments along the grid axes and diagonals, , i.e.:

       







        , which is always a positive integer. As for Then, bucket membership is associated to   

our 3D version of bucketing, members of any given bucket are not explicitly sorted, and we access them either randomly or via a FIFO or LIFO stack per bucket. This method permits in practice to linearize the sorting complexity, at the price of higher memory consumption and more complex data management, as the number of buckets grows with distance from generators. However, note that since the maximal radius of propagation is known a priori as the maximal radius of the region , one can pre-allocate all possible buckets in advance. Bucket labels are given by the series of integers:



 





 

    

  





 . Buckets are simply Typically, bucket sorting will give us a near optimal complexity filled as needed — no re-arrangement of ordering is necessary as for HEAPSORT — and the lowest non-empty bucket is always used to pick the next cell to be processed. The sequence of buckets  ordered from lower to higher values of can thus be seen as the discretization of time for the main loop. That is, a discrete time step is comprised by the range of events starting with the removal of the first cell member of this bucket and ending with the removal of the last member. Some more refinements are possible to still improve overall performances. For example, the ordered wavefront can be used at initialization as well. Also, notice that the larger 2D and 3D beams are all made by the concatenation of simpler 1D beams (discrete thin rays). Hence, one can eliminate overlaps between nearby beams by constant bookkeeping, propagating the full 2D and 3D beams only when necessary. This refinement was first proposed for 2D distance transforms by Eggers [84]. 5.2.7 Exactness The issue of exactness is also of importance. First, note that, thanks to the idea of Danielsson, of carrying distance vectors, rather than scalars, the errors of the final distance values at any voxel are bounded and lower than the voxel’s width [77]. Problems occur only for those Voronoi regions 11 which have sharp ends going between grid nodes, possibly reaching far-away voxel loci (in 3D, these are cones of sub-voxel width; Figure 5.13 gives a 2D example). Some authors proposed partial solutions to this problem, e.g., using delayed removal of cells from the active list [250, 203]. Despite 11

Reminder: a Voronoi region represents the part of space closest to a given generator (Chapter 3).

105

Wrongly labelled grid nodes

 G 3  



    G1     G2 Figure 5.13: Example in 2D where certain voxels are never reached by the correct automaton, because the tiles of the “digital Voronoi boundaries” are disconnected, while the continuous Voronoi region is not. The boundaries of the Voronoi region of are shown as two straight green lines. The digital tiles, i.e., voxel domains, reached by automata launched from are shown as hashed blue polygons. Hence, in this example, two voxels are labeled as closest to , while the correct labeling (and minimum distance) should be given in association to .









these errors, note that the resulting distance maps are much more accurate than when using integer approximations to the Euclidean metric, together with similar or lower numerical complexity [144]. Still, practical solutions to this problem, have been proposed in the 2D case, in order to recover an exact distance map, and we can borrow these in 3D. A complete solution to this problem, for generators of arbitrary shapes, requires the explicit propagation of shocks as waves, an approach which has been recently designed and implemented in 2D by Tek et al. [241, 237, 239]. We will discuss this approach in 3D for the case of point generators in the following section, and for the case of polygonal generators in Chapter 8. An a posteriori solution has also been recently proposed in 2D [73, 72], which is applicable in 3D as well, where one needs to detect the “corner” voxels of Voronoi regions which have multiple adjacent neighbors with different associated generator labels, i.e., voxels reached in minimum time by different discrete optical paths. Then, a local search from the corner voxel can be designed to check for possibly wrongly labeled remote voxels, therefore correcting their associated distance vector. 12 12 This works well in practice for point clouds which do not generate too thin Voronoi regions. The latter could otherwise propagate arbitrarily far away from the “corner” voxel, thus reducing the applicatbility of a local search. Again, a complete solution to the problem involves the explicit tracing of shocks as waves.

106

(a)



(c)





 

(b)



(d)

  







 



Figure 5.14: Example of dilations on brain data graciously shared by Dr. Jean-Franc¸ ois Mangin, of   the CEA, in Orsay, France [161]. Time means distance from generators (outward here, as ).



107

(a)

  

(c)

  









(b)

 

(d)

 





 

Figure 5.15: Example of erosions on the same brain dataset as in the previous figure. Time means  distance from generators (inward here, as ).



108

5.2.8 Results In Figure 5.4 we showed a sequence of dilations resulting from a complete propagation in for which we recovered a posteriori arbitrary level sets, i.e., wavefronts for any desired time value,  . Since we have set accurate distance values at each voxels, i.e., each grid node of , we

 can interpolate intermediate values for the desired value of , e.g., by using a 3D level set tracing technique, such as “marching cube” [158]. Note that, although we start from a discrete set of point generators we recover, even for small distance to generators values, the accurate Euclidean radii values; this is particularly spectacular on the square plane in Figure 5.4 which is grown from a set of uniformly spaced points. In Figure 5.14 we provide another example, starting from real data of a segmented brain hemisphere provided by the team of Dr. Mangin [161]. Here, we can define an inside and outside of the object, as the data has been well segmented. Thus, after we have run a full propagation starting from the vertices of the segmented surface of the brain, we can give a positive label to all grid nodes on the outside, and a negative one to all nodes on the inside. This gives a way to perform accurate dilations (Figure 5.14) and erosions (Figure 5.15), i.e., accurate 3D mathematical morphology operations [148].

5.3 Mixed Eulerian-Lagrangian Propagation Thus far we have only considered the propagation of (distance) wavefronts from the generators. We will now tackle the problems of detecting shocks as wavefronts collide, or equivalently, as optical paths annihilate, and tracing the further expansion of these as shock waves, henceforth explicitly tracing the augmented shock scaffold,   . While previously we had a single class of automata moving on the grid to simulate the wave propagation of 3D surfaces, we now need to introduce two additional classes of automata which will trace shock waves for planar sheets and straight curves, respectively, once shock sources are detected. Notice that, the first class of automata could simply move along the Eulerian grid, as they were tracing wavefronts crossing all of the volume of space defined by the region . That is, as these 3D wavefronts were filling space entirely it was sufficient to trace their progress at grid nodes. However, automata tracing shock sheets and curves cannot be limited in this way, as they generally move between grid nodes, without filling space. In order to specify their progression through space, we define below (i) a 2D class of automata moving along intercepts with chambers’ edges and (ii) a 1D class of automata moving along straight lines, keeping record of their intercepts with chambers’ faces. We also rename our first original class of automata as “Eulerian” to emphasize that they evolve strictly along the grid.





 



Definition 5.3.1 (Eulerian cellular automaton) Automaton, which, once initiated from generators, moves strictly along the Eulerian grid specified by . We will also denote this class and its members by the symbol .





  

Definition 5.3.2 (2D Lagrangian cellular automaton for shock sheets) Automaton, which, once initiated from an shock, grows a planar sheet radially around that shock source. This 2D

109

                                                                       

            (a)

(b)

Figure 5.16: Example of the passage through a chamber by the two classes of Lagrangian cellular automata. (a) A shock sheet enters the chamber from the bottom at a pair of edge intercepts, propagates through and intercepts at the top via two more edge intercepts. Inward and outward flows from/to surrounding chambers are indicated via arrows at the edge intercepts — the outward flows are used to propagate further the . (b) A shock curve enters the chamber from the right and leaves it from the top. Intercepts with the faces are indicated with the inward/outward flow . The two from/to surrounding chambers — the outward flow is used to keep propagating the intercepted faces are emphasized by hashed lines.

 

  

 

growth is obtained by computing intercepts of the sheet with chambers’ edges (Figures 5.16.(a) and 5.17). We will denote this class and its members by the symbol .

  

Definition 5.3.3 (1D Lagrangian cellular automaton for shock curves) Automaton, which, once shock, grows a straight curve in one or two opposite directions from that initiated from an shock source. This 1D growth is obtained by computing intercepts of the curve with chambers’ faces (Figure 5.16.(b)). We will denote this class and its members by the symbol .

 

We call the newly introduced classes “Lagrangian” by analogy with equivalent methods used in fluid dynamics, where shock waves are traced by following “particles” and their intercepts with a fixed Eulerian grid [121]. The connectivity amongst these intercepts is then called a Lagrangian grid, tracing the flow of the particles in space. We occasionally refer to the two classes of Lagrangian automata in unison via the symbol . These new automata are processed in the main loop as before, i.e., they are processed in order of associated minimum distance from generators. Since Lagrangian automata do not generally move by unit increments, as is the case for their Eulerian companions, a fact that made bucket sorting easy to manage, it is simpler for our discussion to consider that all automata are now ordered via a single HEAPSORT list.13



13

It is possible to extend the bucket sorting method to handle discussion, which we leave for a technical report on the subject.

 ’s as well as  ’s, but this is a rather tedious

110

5.3.1 From Voxels to Chambers Now that we have defined these new automata, the question is: how do we modify our simpler algorithm for strict Eulerian propagation, so that no shock sources are missed by the discrete wavefronts ’s. To address this issue we use the duality between grid nodes, i.e., voxel represented by active loci, and the space they enclose, i.e., the cubic chambers delimited by sets of 8 voxels. Basically, each time a chamber will see its 8 voxels set to be passive, we will consider that chamber “closed” with respect to the Eulerian wavefronts, and “open” for Lagrangian computations. In other words, we wait until the Eulerian wavefronts have passed entirely through the chamber. We also make sure than entering Lagrangian shock waves, as specified by ’s sitting at the edges and faces of the chamber, have all been processed on the ordered list of automata, this to ensure that all existing shock waves which can reach that chamber have done so. Then, we are ready to do all shocks computations related to that chamber. We perform Lagrangian computations in a chamber in four steps. First, we detect new shock ’s. Second, we perform a local iterative shock flow of sheets and sheet sources, i.e., new curves, within the chamber’s limits. Third, we propagate existing ’s and initiate new ones from newly detected shock sources and relays. Fourth, we initiate new ’s at the 8 bounding voxels, if necessary. A more detailed description of each step follows. ’s is performed by collecting all generator labels present The first step of detection of new at the 8 vertices of the chamber, i.e., as they have been carried there by ’s, into a list, . Then we compute candidate shocks whose locus is within the chamber’s limits. Validation of these potential shocks needs only be verified with respect to those generators whose wavefronts, , have reached the chamber, i.e., members of the list . In the second step, we perform an iterative (Lagrangian) scaffold computation limited in scope to the chamber. That is, we iteratively intersect sheets, to detect new shocks, and curves, to detect shocks, until exhaustion of all flows as was described in Chapter 4. However, here, all shocks must be located in the chamber under scrutiny. As for the new shocks produced in the first step, validation of shocks is limited to tests with respect to generators on the list . In summary, step 2 amounts to performing a mini-scaffold computation at the chamber’s scale. In the third step, we propagate ’s by (i) computing their new intercepts at the chamber’s edges and faces, and (ii) validating these. We do the same for newly generated shock sources and relays as produced in the previous two steps. Finally, in the fourth step, we verify if the new ’s intercepts can minimize the distance vectors, , associated to the chamber’s vertices. This is to take into account the problem of fine Voronoi regions which may propagate through a grid and skip voxel loci ( 5.2.7), such that no ’s could on their own reach a remote voxel with the correct generator’s label and associated distance. If a does indeed reset a voxel’s minimum distance function, then we initiate a new in correspondence, to propagate further the correct generator label and distance function, thereby producing an exact distance map.







  

  



  





     

 

























111

G1 2 A -2 1

G2

2 1

A -2

G1

(a)

(b)

G2

Figure 5.17: Simple example of shock tracing via the mixed Eulerian-Lagrangian cellular automata mechanism. In (a) and (b) are shown two views of the traces of a shock sheet for a pair of generators,    and  , initiated at an  shock source, and propagated radially with the help of ’s. The  traces of the intercepts of the ’s with chambers’ edges gives the pattern of dots. This pattern  , is tilted with respect to the main axial directions, indicates that the corresponding shock sheet,    of the Eulerian grid.













5.4 Discussion In this chapter we have introduced a discrete framework for explicitly tracing wavefronts on the  basis of an underlying 3D grid, such as the regular cubic lattice provided by   . This framework is complementary in nature to the Lagrangian (or grid-less) method of the previous chapter. It remains for us to study if either method is superior, or rather, in which scenarii one is superior to the other. For example, we know that the observed practical computational complexity of the Lagrangian method is linear in the number of generators, while it is roughly linear in the number of voxels for the Eulerian method.14 Since a uniform increase of resolution of the grid augments the number of voxels to the third power, for any given dataset there is some possible optimal compromise to be reached between the dataset size, , and the grid resolution. Another factor to consider, is that the Eulerian approach permits to largely bypass the burden of validation that exists in the Lagrangian method. Finally, the hybrid Eulerian-Lagrangian approach introduced in Section 5.3 also calls for a careful study of how to mix the two approaches to improve performances, e.g., the size of a cell which was fixed thus far (to a voxel) could vary in space to follow the density of data. Such a study would allow us to bridge the two frameworks of coarse adaptive clustering introduced in the previous chapter and the fixed uniform tessellation used in this one. The Eulerian approach has some applications of its own however, in particular for visualization purposes. For example, consider the domain of regular crystal growth simulations, which has been essentially studied via 2D cellular automata thus far; e.g., see [101] for a recent survey. In this sur-



14

The complexity is of order

 

 with the classical





HEAPSORT .

112

vey, it is made mention of an unsolved problem in the field of CA (Cellular Automata; Problem 17 [101, pp.280–281]): “Find a CA [with simple Moore neighborhoods 15 ] having an asymptotic shape L which is two-dimensional and convex, but not a polygon. Is there such an example for which L is a circle?” We could reply positively to this question, by simply “projecting” down our framework to the 2D plane, and further propose that we have a solution in 3D, where our deterministic CA has asymptotic shape which is spherical (e.g., see the growth from an isolated point in Figure 5.4). The explicit propagation is also useful to perform accurate Mathematical Morphology operations, as illustrated in Figures 5.14 and 5.15. Another area of potential benefit, where the Lagrangian framework may not be applicable, is for the simulation of successive generations of waves, where certain wavefronts are allowed to continue propagation after shocks are created. This has proven useful in 2D in some of our earlier work (in collaboration with Tek and Kimia [241]) where we simulated interpenetrating waves in the plane, to generate higher order symmetries and study the effect of this process on the removal of certain shape perturbations, such as due to noise and occlusions. 16 Finally, we note that the explicit tracing of distance waves from generators and of shock waves, may prove the only viable solution when dealing with complex shapes as generators, e.g., when dealing with curved surface patches as used in the automotive industry [87].

15 16

That is, based on adjacent neighbors only. See also [257, 258] for more on this topic in 2D and its application to the generation of the full symmetry set.

Chapter 6

Scaffold Segregation and Surface Recovery 6.1 Introduction *P1: An experimental process to segregate the scaffold of surface samplings

In the previous chapters we developed the theoretical concepts and algorithms necessary to efficiently compute the complete shock scaffold of an arbitrary set of unorganized points in 3D space. We now consider the special case where these points are samples from the surface of an object. Intuitively, part of the structure in the resulting shock scaffold closely approximates the original surface symmetries, while the remaining part arises from symmetries pertaining to the interaction of nearby sampled points. The main goal of this chapter is to identify which sub-group is a result of the surface sampling process and alter the shock scaffold by removing the effect of those symmetries, which in turn, organizes samples in a connected mesh. A proper theoretical investigation of this issue requires [96], which is a model of the sampling process together with a study of transitions of the 3D beyond the scope of this thesis. Instead, in this chapter we put forward an experimental scheme which will implicitly segregate the original scaffold in the desired two sub-groups: i.e., one due to the sampling process and one due to actual symmetries between different surface patches. The combination of the theoretically grounded scaffold construction with this experimental “segregation” into two groups leads to excellent practical results, as will be illustrated in Section 6.3.5.



*P2: Why not mesh the points and compute the



or corresponding scaffold?

One immediate alternative that comes to mind is to avoid involving the shock scaffold in the process and instead rely on existing surface meshing techniques to recover connectivity among point samples, and then to appropriately alter the shock scaffold, for example by using the results of Chapter 7. However, existing surface meshing techniques suffer from serious limitations. Most of them require some a priori knowledge of the surface geometry, e.g., in the form of surface normals (Section 6.2 below offers a survey of recent techniques), which is typically not available in the context of unorganized samples. More importantly, none of the known techniques explicitly relate object symmetries with surface or outline tracing, which in 2D was shown to be essential to preserve the order of significance between geometric features [240]; e.g., corners need to be preserved with

113

114

respect to perturbation of the surrounding outline patches. Also, nearby elongated parts that bring two or more surface patches very close to each other must not be interconnected, a problem often encountered for shapes with thin necks or with multiple tubular protrusions, such as the fingers of a hand. Interestingly, in the recently published papers on surface meshing, a new trend is to call upon the as a useful structure to help define surface interpolants [5, 79]. In these approaches, a subset of the Voronoi vertices known to be near the of a closed boundary, which provide a good approximation of surface normals [4], are used to build a Delaunay triangulation of surface samples. Note that the is used in the theoretical part of these investigations as a way to motivate the practical procedure. Specifically the local distance to the of the closed boundary is used to set the sampling density. This requires some a priori knowledge on the curvature bounds of the surface to recover, and further leads to very strict requirements on the sampling density [191].











*P3: How to reconstruct a smooth surface while preserving significant structures.

in 2D to guide the Our starting point is the work of Tek and Kimia who have used the recovery of contours and to smooth boundaries while preserving the main geometric features, such as corners and necks [240]. In their work, symmetry transforms were introduced to simplify the original shock graph by iteratively transforming it towards the “closest” degenerate configuration.

For example, consider a shock curve associated to a pair of generators, . Removing this shock curve from the shock graph is associated with the interpolation of the generators via a curve segment, e.g., linking them by a straight line. In turn, this involves a local modification of the shock graph, where the interpolant is now seen as a new generator, i.e., a line segment  , of extent limited 

by the pair which now represents its bounding vertices (Figure 6.1). In 3D, the situation is similar: we remove a shock element, interpolate the associated generators and locally transform the shock scaffold to account for the new interpolant seen as a generator.

  

 

*P4: Local interpolants of the scaffold elements: Special role of shock curves

In 3D we have at least three choices for local interpolations, depending on whether the unorganized point cloud arose as a result of sampling a curve, a surface, or a volume. In the case of samples arising from curves, the local interpolant is a line segment linking a pair of generators, and removing shock sheet. Second, for sampling arising from surfaces, the local interpolant is a triangular their patch connecting a triplet of generators, and removing three sheets and their intersection at the shock curve. Finally, for samples arising from volumes, the interpolant is a tetrahedron linking quadruplets of generators, and removing six sheets, four curves, and their common shock vertex (Figure 6.2). Thus, for the purpose of building a surface, we consider pruning shock curves and augmenting the surface with their associated triangle interpolant.

 

 

   

 

 

*P5: Approximation to symmetry transforms in 3D

The removal of a shock curve, followed by the addition of a triangular interpolant as a new generator, and the local modification of the shock scaffold requires algorithms for a more general class of inputs, namely, “polygonal” generators. We have studied the theoretical aspects of this class of generators and report it in Chapter 7. However, the practical implementation for the computation of the corresponding shock scaffolds for these generators is beyond the scope of this thesis. Instead, we will rely on a “first order” approximation: (i) simply remove a shock curve and its associated sheets and nodes, which has only a local effect on the shock scaffold (Figure 6.3), (ii) build a surface interpolant for the associated generators, and (iii) group the resulting disjointed shock elements, sheets and curves. Note that, in the third which gives a piecewise linear approximations to



115

Figure 6.1: First two rows are from [235, p.9]; last row is from [240, Fig.1]. Two examples of the application of a sequence of symmetry transforms derived from the transitions of the shock graph in 2D [94], which illustrates the process of grouping point generators sampling a boundary. In one of these transforms, the “gap transform,” a shock curve (in red) arising from a pair of samples is removed, the corresponding pair of generators is linked by a line segment (in black), and the corresponding part of the shock graph is locally modified accordingly (in blue-green). The “splice transform” is predominant in the second and third rows, which is used to remove small perturbations of the boundary, some of which are resulting from linking points via line segments. The third row is a sub-sampling of the discrete scale-space generated by a sequence of symmetry transforms which smoothes the boundary while preserving significant corners. In 3D we wish to similarly preserve ridges. Our currently used method to mimic this process in 3D seeks to go directly from the top-left “hairy pattern” to the middle right “cleaned-up” version, while only recovering piecewise (Figure 6.4). Our future work will approximations to both the bounding surface as well as the explicitly consider 3D shock transforms.



116

Gj

Gk

Gi

(a)

(b)

(c)

Gl

Figure 6.2: Simplest possible local interpolant associated to: (a) a shock sheet, which is a straight edge, (b) a shock curve, which is a triangle, and (c) a shock vertex, which is a tetrahedron.

                                                                   (a)

(b)

(c)

Figure 6.3: Sketch for a 2D projection in the tangent plane of a surface patch illustrating the localized effect of removing a shock curve and associated shock structure by adding a triangular interpolant.     and     shocks are shown as small blue squares and green triangles, respectively. (a) Situation before shock curve removal. (b) The central shock curve in (a) was removed together with its associated shock sheets. A triangular interpolant was added as a new generator. (c) Finally, a local shock computation was performed to locally re-adjust the shock scaffold. The only zones where the scaffold may change are delimited by the triangular interpolant itself and the three regions (green hashed patterns) delimited by (i) contact shock waves at the ends of each of the three triangle edges, traced as perpendiculars, and by (ii) new shock sheets defined between each pair of point-edge generators. These shock sheets are sections of parabola in this 2D projection; they extend as straight parabolic gutters in 3D (Chapter 7). At their points of intercept with contact shock waves they simply become planar as before (i.e., in zones of point-point pairing). In our current approximation to 3D symmetry transforms, we will stop at step (b).

117

3

3

A1−2

A1- 2

4

4

A1

A1

Gj Gi

Gj

Gi

(a)

(b)

Figure 6.4: In (a) is shown a slice through an elongated object with the trace of its idealized underlying surface shown as thick (green) curves. Generators have been sampled on both “sides”  and . We show the projection of shock curves which create a typical “hairy” pattern for the shock scaffold,   . Identification of these shock curves in the vicinity of the surface permits us to segregate   in two parts. (b) The part related to the surface has been removed and used to obtain a piecewise linear interpolant for the generators, illustrated here as broken line segments (in blue). The remaining part of   is also shown, thereby revealing an approximation to the of the idealized surface. The requires the use of symmetry transforms and transitions, recovery of an exact trace of the a topic which has been fully explored only in 2D [240].









step, we are not adjusting the shock scaffold by locally recomputing its exact trace. This missing process would have smoothed the resulting trace and not required the joining process. The concept is illustrated by the sketch in Figure 6.4. *P6: Not all local interpolants are related to the surface: We need a process to pick the right ones.

The process of removing certain shock curves to build surface interpolants requires a differentiation of those that arose from original surface symmetries from those that arose as a result of the sampling process. Assuming that the sampling density is high enough with respect to surface features, we proceed in four steps: (i) rank order shock curves for the full shock scaffold via a measure which is low for shock curves arising from the sampling process and high for shock curves arising from surface features, e.g., the surface area of their associated triangle; (ii) start from the smallest triangle area and march in the sorted list until all generators are interpolated by at least one triangle, to obtain a first-stage segregation of the shock scaffold in two sub-sets which we call the “initial surface scaffold” and the “initial medial scaffold;” (iii) check the topological behavior of each retrieved triangle, i.e., how it is connected to neighboring triangles, to test the likelihood that it is a true candidate for surface interpolation, and remove extraneous triangles; (iv) recover shock sheets and construct large-scale shock curves. This results in a final surface interpolant, 1 as well as a final segregation of the original shock scaffold in two parts: the surface and medial scaffolds (Figure 6.5). *P7: The medial scaffold shock curves are connected in larger components.

The fourth and last step of joining shock curves of the medial scaffold is performed by connected 1

Note that after step (ii), if true surface interpolants are missing or holes are left in the initial surface interpolant, these will not be recovered, nor filled-in at a later stage. This is a limitation of our present “simple” implementation and it should be tackled in the future.

118

Initial medial scaffold

Medial scaffold Connected components

Topology: remove some triangles.

Coarse scale MA and surface Full scaffold Sort shock curves. Segregate them in 2 groups.

Initial surface scaffold

Surface scaffold

Surface interpolant

Initial surface interpolant

Figure 6.5: Illustration of the main steps involved in the segregation of the full shock scaffold into two sub-structures: the surface and medial scaffolds, including the recovery of a surface interpolant and an approximant to a continuous . Green triangles indicate shocks, red circles indishocks. A first segregation in two sub-sets leads to a pre-surface interpolant having some cate extraneous triangles (interpolants are shown as links in the 2D projections). By checking topological conditions on edges between pairs of interpolated generators — essentially how many triangles share a specific edge — we can decide if an associated triangle should be removed. The removal of a triangle indicates a transfer of the associated shock curve from the (initial) surface scaffold to the (initial) medial scaffold.

 



  

119 component analysis in three sub-steps. 2 First, we recover individual bounded shock sheets, i.e., sheets entirely delimited by shock curves part of the medial scaffold. This step is necessary to reject from further analysis sheets which have dangling ends 3 or which recede to infinity. Second, we check the local topology of shock curves and perform connected component analysis on those curves which share more than one sheet, to create longer shock curves. Third, we perform a similar analysis on those shock curves which are at the boundaries of sheets, to recover ridge-like shock curves, i.e., approximations to coarse-scale shock curves. The final assembly of many curves into long shock curves ( or ) leads to a piecewise linear approximation to the “coarsescale” curves. The entire scheme of scaffold segregation is summed-up in the diagram of Figure 6.5, and is illustrated with a concrete example in Figure 6.6.





  

 

*P8: Overview of chapter.

In the remainder of this chapter, we first briefly survey the recent literature on the problem of meshing surfaces from 3D clouds of points. Then we summarize the ranking procedure of shock curves and the selection of a global initial threshold. The core part of the chapter is then to study which triangles are not useful for surface interpolation and how to identify these. Finally, we describe the process of connecting the remaining structures of the shock scaffold, i.e., those which will structures. be considered as approximations of coarse-scale



6.2 Recent Surface Meshing Methods We briefly review the recent approaches for surface meshing and focus on those closely related to ours; see the book by Edelsbrunner for a good and recent introduction to the topic [82], and the thesis of Shewchuk for in depth details on mesh refinements [222]. The main approaches for surface meshing of “unorganized” point clouds in 3D can be organized in four categories, as proposed by Boissonnat and Cazals [43]:4 (i) differential geometry: a local Monge patch representation,   , is assumed and approximated by triangulation or using least-squares (e.g., see [42]); problems occur with irregular samplings or complex topologies; (ii) elastic membrane: an active surface model surrounds the data and is deformed by energy minimization so that it fits the data tightly once a local minimum is reached (e.g., see [242]); the membrane must be close to the desired surface to have a chance to converge to it; (iii) level sets: a signed distance function is built around the data, assuming a knowledge of the normals to the desired surface or at least a knowledge of their orientation; the zero-level set of this distance function then approximates smoothly the surface (e.g.,  see [262]); (iv) combinatorics: a geometric data-structure, such as the Voronoi diagram ( ) or its dual Delaunay tessellation is built and a sub-set of its facets is extracted which approximates the surface (e.g., see [13]). Both the first and third categories require some non-trivial a priori knowledge of the local geometry of the surface at each generator locus. In differential geometric methods, a local tangent plane

   

2 Ideally, this step should be part of the pruning process, i.e., as a shock curve is removed, it implies joining, e.g., three sheets at either end. However, here we have followed a simpler implementation. 3 A sheet which was attached on one end to the surface interpolant, will have a dangling end, i.e., part of its boundary is now a member of the surface scaffold. 4 Some of the approaches use point samples which are less unorganized than for others; e.g., the knowledge of normals and orientation gives non-trivial a priori information to build local meshing connectivity.

120

(a)

(b)

(c)

(d)

(e)

(f)

Figure 6.6: Example of a shock scaffold before and after segregation. (a) A set of 3200 generators are uniformly distributed on a square planar patch (bottom), and on a similar planar patch deformed  by an elongated Gaussian bump (top). (b) The computed shock scaffold, , with shock curves which shoot off to infinity removed from display for clarity. (c) A side-view of the surface scaffold. (d) The medial scaffold structure approximates the of the original continuous surface set. (e) The reconstructed surface arising from the triangular interpolants associated to the surface scaffold. (f) The largest components of the medial scaffold. The pink   “axial” shock curve sits at the intersection of the two large medial sheets, one horizontal arising from the interaction of the two surface patches, and the other vertical arising from the Gaussian bump. The boundaries of the approximated are shown in blue; observe the  -like shock curve corresponding to the ridge  of the Gaussian bump.

 



121

is needed or, alternatively, a very regular, dense, and well-oriented set of generators is assumed. In level set methods, a knowledge of a globally consistent choice of surface orientation is required. The elastic membrane fitting methods generally require some human interaction to position and specify the membrane model. Also, sharp features (corners, ridges), tend to be smoothed away, and available techniques work best for compact objects with simple topology. The fourth category on combinatorics is the only one that, at first glance, treats unorganized point clouds with no special assumptions.  Most approaches in the category of combinatorics use the as their basic geometric data structure. A notable exception are the -shapes  of Edelsbrunner et al. [83], which define a family of subsets to the Delaunay tessellation, where  is a parameter controlling the size of simplices kept from the tessellation, which at one extreme ( ) gives the convex hull to the dataset, and   ) reduces to the point set itself. Interestingly, there is a simple way to obtain at another ( shapes from the shock scaffold with the procedure detailed in the following section: if we rank order shock curves using their associated circumradius, then the resulting initial surface interpolant will   correspond to the -shape sub-complices, by using values of as thresholds. Thus is simply the radius function value at an shock. This provides some insights explaining the relative poor  performance when directly using -shapes for surface meshing, as the circumradius of triangles will poorly rank small obtuse triangles — having arbitrarily large circumradii — which are very likely part of the desired surface.5 Note that some methods fall in fact in more than one category, e.g., [43]  which is both based on the and signed distance from an assumed surface (alike level sets). We now review in greater detail three of the most recent approaches based on combinatorics.  of the point set. Then they select, for each Voronoi cell Amenta et al. [3, 4] first build a the two farthest Voronoi vertices, called poles, which are added back to the initial point dataset as artificial generators. The reason for invoking the notion of “poles” is that there is no guarantee in 3D that no Voronoi vertex comes arbitrarily close to the actual surface (Section 3.6). In other words there is no natural way of distinguishing Voronoi vertices related to the surface sampling from other ones. Poles are then used if they are “far enough” from the generators, as a kind of counter-measure to this  “defect” of . A Delaunay tessellation is then performed on this augmented set, i.e., on the original points plus the poles. Faces triangulating the original points are kept as the final approximation to the surface. This method requires highly dense samplings as well as an a priori knowledge of the minimum distance of the to the surface, i.e., the method is not based on a knowledge of the points only [191]. It is also relatively expensive as it requires two Voronoi/Delaunay passes, and the second such pass is performed on a dataset roughly three times as big as the original, due to the addition of poles as artificial generators.  Boissonnat and Cazals [43] use natural neighbors connectivity as provided by a to directly 6 reconstruct a piecewise linear interpolant to the surface. However, their method requires an a priori knowledge of the surface, in the form of a consistent set of surface normals at each input point, i.e., it implies the knowledge of an inside and an outside so that the distance function they use is properly signed everywhere. This a priori information on normal orientation at all generators is equivalent to having a knowledge of an oriented local tangent plane and hence, arguably, it is alike having a









 



5





The main critique of -shape in the literature pertains to the globality of the parameter (e.g., see [13, 191]). Natural neighbors of a point in space are those generators linked to in the Delaunay tessellation of the set of generators augmented with , i.e., in [224]. 6



   

122

knowledge of the local connectivity amongst neighboring surface samples. Petitjean and Boyer [191] introduce a notion of regular interpolant, a piecewise-linear interpolant such that for each of its vertices (i.e., each generator being interpolated), the largest associated circumscribed ball is strictly smaller than the smallest circumscribed ball associated to the part of the Discrete Medial Axis (DMA) linked to that vertex. Their notion of DMA is related to our scaffold  construction: it is the part of the which is left after removing sub-structures due to co-simplicial (i.e., adjacent) points of the input set, . However, it is not clear from their paper how one distinguishes co-simplicial points before knowing the surface interpolation. Also, they do not explicitly use the DMA in their reconstruction, hence it is unclear how their definition is really useful in practice to ensure regularity in the sense they provide. For curve reconstruction in 2D, they propose a local criterion to pick a pair of edges from the Gabriel graph of : pick the two shortest ones. In 3D, for each edge linking a pair of generators, they pick the two associated triangles having smallest associated circumcircles (or circumradii) at each vertex (four of them). The latter assumes that a sub-graph of the Delaunay tessellation has been pre-computed. They call it the Gabriel complex — an extension in 3D of the Gabriel graph of 2D point datasets — which is the set of triangles for all triplet of generators having an associated empty circumcircle. In our context, this is like considering all shock curves, . Note that, while we order our interpolants based on geometric measures of the interpolants themselves, i.e., properties of the triangles, like perimeter, area, compactness ( 6.3.1),  they rely on the circumradius, alike -shapes. This will likely create difficulties for their approach near surface boundaries which can have very obtuse triangles, and thus arbitrarily large circumradii. In summary, there are two main assumptions in these recent “combinatorial” approaches for solving the problem of surface reconstruction from point clouds: (i) assume some local knowledge . of the geometry of the surface, or (ii) assume some knowledge of proximity to an idealized The first assumption lacks genericity and those methods relying on it cannot be directly applied to unorganized point clouds. For example, some knowledge about normals and their orientation is assumed a priori given. The second assumption imposes strict requirements on the sampling density. In the following section we will explore an alternative scheme which does not require such assumptions to be made.

 



6.3 Surface Recovery via Shock Scaffold Segregation We segregate an initial shock scaffold in two sub-graphs in four main steps: (i) rank shock curves; (ii) select a threshold to obtain a first segregation of the shock scaffold in the initial surface and medial scaffolds; (iii) examine the topology of each surface interpolant and clean-up the surface; (iv) recover shock sheets and construct large-scale shock curves from the medial scaffold. The description of these steps requires a few definitions. Definition 6.3.1 (Initial surface scaffold, initial surface interpolant, initial medial scaffold) Let a surface be sampled by point generators and let   be the shock scaffold corresponding to .  Then, a selected rank-ordered sub-set of the shock curves for   is called the initial surface scaffold,  , the associated set of triangular interpolants are referred to as the initial surface interpolant,   , and, the remaining set of shock curves is the initial medial scaffold,   .7





7

Note that to both the initial surface and medial scaffolds are implicitly added the list of shock vertices sharing the

123 



The construction of this initial segregation of   into   and   is a “one  shot,” i.e., noniterative, process. In general, whichever (global) threshold we pick to create   , we will have certain triangles which are not part of the desired interpolant to the surface . 8 Typically, these extraneous triangles occur near concave, saddle-like regions, necks of the shape, i.e., where remote surface patches can be arbitrarily near each other. Our strategy is then to seek triangles which if removed do not change the connectivity of adjacent triangles, i.e., lead to no new holes in the mesh. After we examine the topology of the interpolants and reject some triangles, we are lead to the following final segregation of the shock scaffold.





 Definition 6.3.2 (Surface interpolant, , surface scaffold,   , medial scaffold,   ) The result of labeling certain triangles as extraneous and removing these from gives a final surface inter   , and the addipolant , the corresponding set of shock curves gives the final surface scaffold, tion of those shock curves associated with the extraneous triangles to   gives the medial scaffold,   .





   

The union of   and   will give back the original shock scaffold. The surface scaffold,   , shock curves, one per associated triangular interpolant, and the end points of these is made of curves, the shock nodes. Each such shock curve is normal to the triangular interpolant, by construction (Chapter 3). Therefore, we can consider   as being equivalent to a set of normals to the surface interpolant, . Visually,   typically looks like a “hairy pattern,” made of shock curves, and is a discrete approximation to the normal field of the underlying surface, (Figure 6.6.(c)). The medial scaffold,   , is obtained as the remaining set of shock curves from   , which are not used in the surface meshing. Visually,   typically looks like a tessellated approximation to the of (Figure 6.6.(d)). The medial scaffold   typically has structure on both sides of the surface interpolant, , and is separated from it by the surface scaffold,   . As the sampling density augments, we expect  

to approach the of . However, this approximation gives the original with hairs, possibly connecting the to those shocks left in between the surface and the true ends of the as 9 was pointed out in Section 3.6. Assuming that   gives a good approximation to the of , we use   to construct coarse-scale and curves approximating those of the of , which is the goal of step (iv). We do this by first making explicit shock sheets bounded in   , i.e., with closed boundaries made shock curves all part of   . This is to avoid considering   structures with dangling of 10 ends. A consequence of making explicit such bounded shock sheets is that a large number of

 







 

 

 





 

















 

associated shock curves. Thus some of the vertices are duplicated in both sets. This is immaterial, since we will only operate on shock curves, until we converge to the final surface and medial scaffolds. 8 Note that, if true surface interpolants are missing or holes are left in the initial surface interpolant, these will not be recovered, nor filled-in at a later stage. This is a limitation of our present “simple” implementation and it should be tackled in the future. 9 A possible practical solution is to compare a discrete measure of the maximal principal curvature of the surface  shock, with the minimum distance between this interpolant  , computed at the generator loci associated to a given     shock and  , to rule out  shocks which remain close to smooth or nearly flat areas of  (e.g., see [244] for such an approach).



10 E.g., certain shock sheets in may have part of their boundary in : these are sheets partly connected to the surface interpolant  .









124

 

shock curves in   now share less than three sheets. We therefore consider for each shock curve of   the number of such bounded shock sheets that passes through it, to construct coarsescale curves, as follows.



 



Definition 6.3.3 (Coarse-scale approximate axial curves ( ) and ribs ( )) A coarse scale approximate axial curve is obtained by the concatenation of neighboring shock curves of   sharing three or more bounded shock sheets. A coarse scale approximate rib is obtained by the concatenation of neighboring shock curves of   each having a single associated bounded shock sheet.

 

 

Note that among the remaining shock curves of   , those with associated unbounded shock sheet(s) are considered (virtual or) external boundaries of   . All other shock curves have a pair of associated bounded shock sheets and are internal boundaries of (the tessellation of)   . We now detail each of the above four steps.

6.3.1 Sorting shock curves by ranking their associated triangular interpolant In the first step toward identifying the desired sub-graphs of the shock scaffold, we order all its shock curves via a geometric measure operating on their associated interpolant.

 

  

shock curve Definition 6.3.4 (Shock curve surface interpolant) The surface interpolant for an

 arising from a triplet of generators, is the planar triangular patch going through them (Figure 6.2.(b), p.116). We have employed the following simple measures to rank the shock curves: 1. triangle perimeter: 2. triangle area: [69, p.59]);

  

3. triangle compactness: 

 







  





 

 



;



          (Heron’s formula            ,   (Gueziec’s formula [106]),   

































11



where , , and are the triangle edge lengths. One can sort 12 all shock curves in increasing measure, either , or  , or some combination of these measures, and march through this ordered set to “remove” this shock curve from   , transfer it to   , and simultaneously start building by adding to it the corresponding interpolating triangle.







Note that for an equilateral triangle, the most “compact” triangle which maximizes area for a given perimeter. 12 We have used the QUICKSORT algorithm for this [199, 8.2]. 11



125

Edge II 1 1 1 2 2 3+ 2 2 3+ 3+

I 1 1 1 1 1 1 2 2 2 3+

III 1 2 3+ 2 3+ 3+ 2 3+ 3+ 3+

Triangle type Isolated Border Extraneous Border Near ridge border Extraneous Interior Near ridge Near ridge Corner

Table 6.1: Typology of triangular interpolants based on simplicial adjacency at each edge.

6.3.2 Threshold selection We march through the sorted list of shock curves of the shock scaffold until one of the following end conditions is reached: (i) all generators are interpolated as vertex of at least one surface triangle; or (ii) an a priori fixed threshold is reached, such as the median or the average of the distribution of measures ( , or  ). Consider the case where we take as the preferred measure, the perimeter, . Then, the underlying strategy is to expect shorter triangles to be part of , while very long ones are expected to be part of triangles linking different, remote, surface patches. Similarly, if we select area, , we expect smaller area triangles to be part of , while the larger ones should usually link different surface patches. Compactness is useful if combined with either perimeter or area ordered triangles, to favor more compact triangles (short or small) in the resulting surface triangulation.









6.3.3 Removal of non-surface interpolants





by removing some triangles, but without introducing new holes in the Our goal is to simplify mesh. We perform such a simplification in three steps. First, we remove single triangles which can easily be identified as non-surface interpolant in one pass. Second, we identify closed tetrahedra where four triangles create a volumetric interpolant, and remove two of the four faces. Third, we identify strips of adjacent non-surface interpolants which cannot be simply removed in one pass, and propose an iterative method for their removal. We detail each case in turn below. In order to examine the local topology of a triangular interpolant, we associate to each triangle  three positive integers corresponding to the number of triangles passing through each edge, leading to a classification in ten types (Table 6.1). A triangle is considered removable if: (i) it  is connected to more than one other triangle through one or more of its edges, and (ii) it does not create a hole in upon removal. Then, it is clear that three of the ten types which have two triangles through at least one of their edges, and either one or two triangle(s) going through both other edges,   cannot be removed: type represents an interior surface interpolant, and, types and



  

  

  

126

1                    1          1  2             2            2           2                                 2             2 1                            2    1               2  2  2           2          2                       2        1  22  2       1         1  (a)

1

        

        

        

  

     









 

   

            









 

             









 

   

   

            









 

              3    

 







 



 1



    

 

   



  



      

              











                                               3          

1

(b)

(c)

                                                                                           1                          

    

            1                                 

                             

  

  

 

                          3         

                                                 

 Figure 6.7: (a) An example made of only interior interpolants, shown of  a surface mesh  or interpolants, shown in dark. (b) and (c) Two types of in green, and boundary   extraneous triangles and where edges sharing more than two triangles are shown in blue; edges which are part of only one triangle are shown in red. 

represent a boundary surface interpolant (Figure 6.7.(a)). It is also clear that among the remaining types only three can classified as extraneous type seven  be unambiguously   interpolants:  (Figure 6.7.(b)), type 6.7.(c)) and type (a corner-like  (Figure  attached triangles (Figure 6.8). configuration), which all have edges with or The topology of the four remaining types of triangles requires more than a local examination; three are “neighbors” ofthe above, i.e., they share one or two two types  of extraneous  triangles  edges with these: types , or . As extraneous triangles are removed,  these neighboring or interpolants   should see their type change to become either interior border-like or interpolants.Finally, we are left with one combination of edges ! which can automatically be discarded: type corresponds to isolated triangles, which may be considered as noisy samples. 6.3.3.0.1 Removal of closed tetrahedra: There is another type of “corner effect” which requires special treatment when triangles by group of four create a closed tetrahedron. This happens typically deep into ridges or valleys. 13 In this configuration, each of the four triangles has a pair of edges with three or more associated triangles and    one edge labeled as interior, thus are initially classified as “near ridges” (i.e., of type ). The four triangles create two pairs connected by interior edges (Figure 6.9.(a)). We need to remove one of these two pairs to open-up the closed tetrahedron on one side and retrieve a simply connected surface patch without creating a hole. First, to easily detect such closed tetrahedra we check "$# % shocks which have simultaneously their four associated shock curves labeled as part of the initial surface scaffold, henceforth being associated to a closed tetrahedron. Then, we identify the two pairs of triangles sharing an interior edge, and we check for each such pair a local criterion of smoothness. When such tetrahedra occur deep inside surface ridges, we expect one of these pairs to “see” its neighboring triangles (those shared at the pair of edges with 3+ associated triangles) having similar normals, while the other pair (to be removed from the initial surface interpolant) will have normals not closely aligned with its neighbor13 In terrain data reconstruction, these extraneous tetrahedra are called “artificial dams” as they create problems mostly at the bottom of valleys [105].

127

Figure 6.8: Top row: Outside and inside views of the top of the “two planes with Gaussian bump” dataset which was used in Figure 6.6. Bottom row: Front and back views of the face of Michelangelo’s David (dataset shared by the Graphics group of Stanford University [142]). Color code: extraneous triangles are shown in yellow, remaining pre-surface interpolants in blue, and generators as white dots. Notice how extraneous triangles accumulate near ridges, like at the inside of the elongated Gaussian bump (top-left), and for the lips, eye lines, neck, ear lines, nostrils, etc., of the David.

128

(a)

                                                      3                                  3             2                                             2  3                                                                                             3                                                               

(b)

                                                                                                                                                                                                       

Figure 6.9: (a) An example of a closed tetrahedron which represents two distinct simultaneous continuation of the surface at any one of its edge. The selection of one of the two options leads to an unambiguous example (b). ing triangles. We can then remove the latter pair of triangles and move their associated pair of shock curves to the medial scaffold set (Figure 6.10). Otherwise, if the two pairs are not distinguishable based on this smoothness criterion, we randomly select one pair to be removed. 14 6.3.3.0.2 Iterative removal of strips of extraneous triangles: The one-step removal of extraneous triangles, including corners and closed tetrahedra, described above is usually sufficient to remove the vast majority of undesirable triangles. Unfortunately, it does not prove sufficient to guarantee that is free of multiply connected triangles; i.e., there may still be some triangles left with edges having three or more attached triangles. This is not necessarily a problem, if the original surface is itself multiply-connected (e.g., consider three surfaces meeting at an axis). However, we have observed in practice that collections of adjacent triangles in the form of “strips” can also make the surface multiply connected along ridges; the typical situation is depicted in Figure 6.11.(a). Notice how the multiply connected triangles part of that strip are labeled as neighbor of ridges, hence not directly removable according to our nomenclature in Table 6.1. 15 A possible way to deal with such assembly of triangles is to iteratively cut away a strip of triangles such that, at each step, this removal does not change the topology of neighboring co-simplicial or border triangles. 16 An example of such an iterative process is illustrated in Figure 6.11. This complete the triangle removal step, which result in a final surface interpolant, , and surface scaffold,   .







6.3.4 Recovery of coarse-scale shock curves from





The medial scaffold which results from the above surface recovery must be connected into larger components which mirror the surface connectivity. While the medial scaffold components could be joined simultaneously as the surface is built in a sequential step by step construction, we have taken a one-shot approach based on a thresholding technique (i.e., to build an initial set comprised 14

This will typically be the case for small nearly flat tetrahedra. I.e., there are some configurations where such triangles should not be removed according to our criterion on holes. 16 This simple method will not deal with all possible cases of such strips, which will require a more careful analysis. 15

129

(a)

(b)

Figure 6.10: Example of identified closed tetrahedra in (a) on the surface of the “Gaussian bump” of Figure 6.6. In (b) is the result of opening up these tetrahedra.

(a)

                               3           3        1                                    2                                        2                                       1                                                3                         

  

                                                                                                                                                                                                                                   1                                                                                            1                                                                                3                                                                                       

(b)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

(c)

Figure 6.11: Illustration of the iterative removal of a strip of triangles starting, in (a), with the   removal of type  triangles; (b) situation after first step of iterative removal of triangles; (c) completed removal.

130

(a)

(b)

(c)

Figure 6.12: Rectangular box dataset uniformly sampled with 7326 point generators (a). In (b) is shown the medial sheet structure extracted from the medial scaffold   with the radius (or distance to generators) function shown with color (blue is close to generators, red is far). After connected component analysis has been performed, we obtain in (c) axial-like shock curves (in pink) and rib-like shock curves (in blue), i.e., approximations to coarse-scale and curves, respectively.

 

 



of the initial surface and medial scaffolds) which necessitates an a posteriori concatenation of shock shock curves in   , i.e., through curves in   . We will seek to build long curves which are which three or more bounded shock sheets intersect. Similarly, we will build ribs in   , i.e., which have only one associated bounded shock sheet, thus delimiting an outward boundary of   . Hence, we must first recover explicitly shock sheets in   . This leads to three steps of processing: (i) retrieve the explicit geometry of shock sheets entirely bounded by shock curves in   (i.e., with no dangling ends); (ii) concatenate shock curves sharing three or more of these shock sheets, to construct longer coarse-scale axial curves; (iii) concatenate shock curves at the boundaries of ribs. these sheets, to construct coarse-scale In (i) we pick a shock curve in   and explore circuits from either of its two ends, i.e., successive curves creating a chain looping back to the starting point, such that all curves in the chain 

share a pair of generators (i.e., they bound the same shock sheet).17 Note that this process will discard shock sheets which have dangling ends, i.e., such that part of their boundary is not contained in   . This will be the case for any shock sheet which shares one side with the surface scaffold (and implicitly cuts through the surface interpolant, ). Step (ii) then consists in collecting together in longer components shock curves sharing endpoints which have three or more associated shock sheets (from step (i)) running through them, and similarly, in step (iii) for shock curves which have a single shock sheet (from (i)) running through them. An example of extracted coarse-scale structures is shown in Figure 6.12. Note how the theoretical rib (in blue) and axial (in pink) shock curves are well approximated.

 

 



 



 



 





 



 

6.3.5 Experimental Results Following the example of Figure 6.6, we produce a few surface interpolation results from our method based on the scaffold segregation. First, Figure 6.13 shows the recovery of a noisy tubular surface 17



Remember that to each individual shock curve is associated a triplet of generators; adjacent curves which share a pair of generators delimit the same  shock sheet.

131

(a)

(b)

(c)

(d)

Figure 6.13: (a) The aorta data obtained from Dr. Verroust and Dr. Lazarus from the INRIA, France [248], consists of 7691 point generators obtained from a CT scan of a human aorta. (b) Result of our surface recovery, , where white dots indicate generators. (c) and (d): Views of the top and bottom parts of the aorta, using a wireframe rendition for .





132

(a)

(b)

(c)

Figure 6.14: (a) Bunny head from the Stanford 3D data repository, provided by the Graphics group at Stanford University [142], consists of 13297 point generators. (b) and (c): Two views showing the result of our surface recovery, . In (b) generators are shown as white dots. In (c) we use a wireframe rendition of the mesh. 

(a)

(b)

(c)

Figure 6.15: (a) Venus head downloaded from the web consists of 3683 point generators. Even though the sampling is quite irregular and sparse in some regions, we do recover a fully connected surface. (b) and (c): Two views showing the result of our surface recovery, . In (b) generators are shown as white dots. In (c) we use a wireframe rendition of the mesh. 

133

(a)

(b)

(c)

(d)

Figure 6.16: (a) Michelangelo’s David face provided by the Graphics group at Stanford University [142], consists of 31043 point generators obtained via laser scanning. (b), (c) and (d): Three views showing the result of our surface recovery, . In (b) generators are shown as white dots. In (c) and (d) we use a wireframe rendition of the mesh. Note that there are still some relatively large extraneous triangles left in the areas of the mouth, the eyes and nostrils.



134

corresponding to sampled points obtained from the CT scan of an human aorta. Second, Figure 6.14 shows results for the head of the Stanford bunny, where the surface texture is smoother than for the aorta, although fine features are well recovered. We cut the head out of the main body of the bunny, to show that a thin surface is well recovered. Third, Figure 6.15 shows results for a statue of a Venus downloaded from the Internet which has low resolution and non-uniform sampling density. Fourth, Figure 6.16 shows results for a similar dataset, the head of Michelangelo’s David, but which was laser scanned at a much higher density. The surface is well recovered, except for relatively large extraneous triangles, around the mouth, eyes and nostrils, which indicate that our method is still missing such triangles. These are triangles which connect remote surface areas for distance encompassing more than one triangle in size, a situation we have not studied yet. This will require further investigations. Figure 6.17 (first row) shows results for a pot sherd which was scanned using a laser range finder in our laboratory 18 for applications to digital archaeology [147]. In Figure 6.12 we showed the result of the recovery of coarse scale features from   for a rectangular box dataset, which was uniformly sampled, hence producing a highly degenerate input set, yet giving no particular difficulties for our technology. We now produce a few more examples. First, in Figure 6.17 (second row), we show the results for the pot sherd. We can think of this sherd as a highly deformed version of the box in Figure 6.12. Note how the two shapes have a similar and shock curves. We expect in future work to be able to relate such network of coarse scale coarse-scale geometric graph structure to perform shape comparison, morphing and analysis, alike what was recently accomplished in 2D by Kimia, Sebastian, et al. [209]. Second, in Figure 6.18 features are shown for Michelangelo’s face of David, from the largest   component,19 with a recovery of shock sheets where the distance flow of  is shown via a rainbow color coding. Note how fine features, like the ridge line of the nose, are well approximated by the coarse-scale rib (in white). Third, in Figure 6.19 features for the full body scan of a human from the “internal”  

component are shown. One possible application of the network of and coarse-scale shock curves could be in the automation of graph-like or tree-like “skeletons” used in object animation, in computer graphics [234]. Figure 6.19.(d) shows some limitations of our current implementation and use of simple geometric thresholding: some holes should not have been generated in   . In this particular example, notice that there are large gaps in the sampling of the man’s groin. In turn, in  order to obtain a closed surface interpolant, our algorithm picked a relatively large threshold, which unfortunately removed too many shock curves from   which were not recovered in   . structures The method presented in this chapter is able to consistently recover surfaces and under deformations, even in the vicinity of transition shapes where the shock scaffold topology changes [96]. We illustrate six of the known seven such generic transitions in 3D in Figure 6.20. 20 ” because at the transition Consider the first example in the top row of that figure: it is named “ contact point, i.e., it is alike proper, the point initiating the new shock sheet corresponds to an the end point of a rib (which will then grow out of the point); the other transitions are similarly denoted by the type of contact event occurring at transition. In 2D, the notion of transitions of the shock graph has been the source of significant progress to achieve recognition capabilities via matching and categorization, with robustness under perturbations and larger deformations [94, 240, 210]. In 3D it





 







 

 



     

18

SHAPE Lab.: http://www.lems.brown.edu/vision/extra/SHAPE/ The other components lie on the other side of the surface scaffold, i.e., with respect to the outside of the face of David. 20 The seventh transition although understood (see [96]), is still under investigation regarding its simulation. 19

135

(a)

(b)

(c)

(d)

(e)

(f)

Figure 6.17: (a) The pottery sherd data which was laser scanned with the ShapeGrabber system used in our laboratory [1], consists of 39736 point generators. (b) and (c): Two views of the resulting  surface recovery, . Note how small features (rough bumps) on the interior and exterior surfaces of structure in  . Sheets the sherd are well captured. (d) Frontal view of the largest connected are colored according to their distance to generator: close is dark blue, far is light blue. (e) The network of  (in white) and    (in pink) curves in  , with input generators as black dots. (f)  Same as in (e), but  in blue, and no generators shown; compare with the scaffold network for the  rectangular box of Figure 6.12, p.130.



136

(a)

(b)

(c)

Figure 6.18: Michelangelo’s David face dataset [142]. Sheets are colored according to their distance to generator: close is blue, far is yellow-red. Approximate " and " % shock curves are colored white and pink, respectively. (a) and (b): Two views of the largest connected structure in . (c) Second largest structure where the longest approximate " shock curve was used to find which generators correspond to that rib, here shown in fuschia color (around the neck of the David: these can be considered ridge sample candidates).



 



is hoped that an understanding of shock transitions will also be beneficial for similar tasks. Consider once again the " % " transition in the top row of Figure 6.20: the handle shaped shock sheet that grows vertically, due to the pull applied of the surface above it, is expected to occur frequently with real data, in correspondence to any bumps one may observe on a rough surface. For example, consider the pot sherd in Figure 6.21: once identified, such structures could be removed and the surface accordingly smoothed, in the manner of the 2D symmetry transforms used by Tek and Kimia [240] to structurally regularize 2D outlines while preserving their main geometric features. of point In conclusion, in this chapter we considered how to segregate the shock scaffold generators into the surface and medial scaffolds, and , and how this leads to the creation of a surface interpolant, . A more complete treatment of this process requires to look at more complex generators than points, such as polygonal surface patches; this we address in the next chapter.



 

  

 

137

(a)

(b)

(d)

(c)

(e)

Figure 6.19: The medial scaffold,   , with explicit shock sheets, computed for the laser scanned dataset of a real-life human male body, provided by Cyberware Inc., comprised of 21500 point generators. (a) and (b) give two views on the internal recovered structure, where approximate and shock curves are colored white and pink, respectively, and generators are shown as black dots. In (a) sheets are colored according to their distance to generator: close is dark blue, far is light blue. In (c) we show only the scaffold, i.e., the network of coarse-scale (in blue) and (in pink) curves. In (d) and (e) a zoom on the middle part of the recovered structures.



 





 

138



Figure 6.20: Illustration of 3D transitions [96], where the shape in each row deforms from left to right passing through a transition in the middle. The transitions are from top to bottom: -I, -II, , , -I, and -II.

 

    

  

139

(a)

(b)

(c)

(d)



 Figure 6.21: Example with real data of occurrences of  -I transitions due to surface perturbations, here of the pot sherd shown in (a), whose interior is shown in (b). Most of the “spikes” on the large central bluish medial sheet are due to protrusions on the surface of the sherd. They are small medial sheets oriented perpendicularly with respect to the large medial sheet, i.e., towards the sherd’s surface in the direction of the pull associated to a local surface bump. At the junction of each  shock curve colored in pink. (c) and (d): Zoom on small sheet with the large medial one is an the large medial sheet. In the wireframe rendition (d),  we circled (by hand) some of the structures  -I type transition. Color variations along due to protrusions which exhibit the geometry of the the MA sheets indicate distance flow (from the sherd’s surfaces).



Chapter 7

Extensions: Scaffold of Unorganized Polygonal Clouds 7.1 Introduction *P1: Background: Thus far: points only: why? But this is not enough: generalizing the scaffold.

Thus far in this thesis we have concentrated our efforts on a single class of generators, namely, unorganized points. Points are universal in scope as they can sample arbitrarily complex data. Furthermore, they simplify the analysis since there are less shock types than for more complex generashock curves. Finally, algorithmic simplifications, such as the availability tors, e.g., there are no of simple analytic formula for all nodes of the shock scaffold also motivate the use of points. However, there are at least two important reasons to consider the more complex class of polygonal generators: (i) there exists many datasets where objects are already represented by polygonal meshes, such as in computer graphics databases of 3D objects; (ii) there is an evolution in the interpolation of the data to exploit, from point generators to polygons to be able to perform the equivalent of symmetry transforms as proved key in 2D for the structural smoothing of object [240]. 1 We now detail each of these two reasons in the following paragraphs.



*P2: Large datasets exist which are not simply made of points.

We observe that besides using point clouds to sample 3D objects, the other main representation used to create 3D surfaces is via polygonal meshes. 2 In the field of graphics’ applications, triangular and other polygonal meshes are often used as input data, or produced directly, via a 3D modeling system [91]. Also, the tendency in modern scanning systems, is to integrate meshing algorithms with the scanning process itself, in order to directly produce clouds of surface interpolants. Note, however, that their is usually no guarantee that the raw mesh is without holes or overlapping interpolants [23]. This lack of topological certainty on the data applies both for integrated scanning systems and for data produced in the field of graphics applications. 1

In Chapter 6 we demonstrated how polygonal (triangular) surface interpolants could be obtained from a sub-graph of the full shock scaffold. In order to perform full symmetry transforms, a local update of the scaffold geometry is required for each interpolant which necessitates the use of polygonal generators. 2 A third important class, particularly in the field of CAD, is datasets where object surfaces are modelled using spline interpolants or approximants.

140

141

*P3: Points –

Scaffold –

Polygonal surface mesh –

evolution of Scaffold

The surface reconstruction scheme presented in the previous chapter, which segregates the shock scaffold of points into surface and medial scaffolds, calls for a refinement of the latter in terms of the now available surface representation as a polygonal interpolation of the point generators. That is, when we group point generators into larger polygonal generators corresponding to individual surface interpolants, the corresponding shock scaffold must be recomputed. How is this shock scaffold modified with respect to the one obtained from point generators? The answer is that, in essence, shock elements are not constrained to be “linear” anymore, i.e., shock sheets and curves can curve smoothly in space. *P4: Unorganized clouds of polygons as one more step towards future developments

In analogy to our study of point generators, we examine the case of unorganized clouds of polygonal generators, where the connectivity among polygons is a priori unknown. It is important to consider an unorganized set of generators because the connectivity in existing datasets is not always correct as pointed previously. Furthermore, this case will serve as the prototype for later generalizations, e.g., clouds of unorganized surface splines, quadrics, etc. *P5: What this chapter contains in summary

In this chapter we will describe the possible geometries of the scaffold elements, wavefronts, and shock nodes for polygonal generators, and provide some guidelines for the computational aspects. A complete algorithmic treatment is left for future work. While for point generators the identification of shock sources, relays, and sinks boils down to simple analytic equations in terms of barycentric formula (see Chapter 3), the same analysis for polygonal generators proves to be significantly more complex. Specifically, the identification of the shock nodes of the shock scaffold requires modern algebraic geometry techniques to solve systems of equations describing the simultaneous intersection of wavefronts. Another dimension of complexity arises because while the wavefront geometry for point generators is spherical, this is not the case for polygonal generators and more generally, surface patches. A polygon will send out three types of waves: (i) planar wavefronts initiated perpendicularly to the polygon’s interior; (ii) cylindrical wavefronts initiated from the polygon’s edges; and, (iii) spherical wavefronts propagating from the polygon’s vertices. 3 We will also need to define contact shock waves which describe the limiting planar surfaces between the previous three types (see the end of Section 7.2). 





) A geometric wave is a disturbance Definition 7.1.1 (Geometric waves: Evolving surfaces in  of space transmitting itself locally which is initiated, at time , from a generator, . At time        the disturbance is propagated in the form of a surface , which is solution to the Eikonal equation [231]:







  







  









    



where denotes the wave velocity. For any given time time ). 3





 

       

      

the surface is called the wavefront (at

In the CAD literature, this is sometimes referred to as a “mixed dimensional” problem, i.e., mixing the interactions of (2D) surface patches with (1D) curve segments and (0D) points (e.g., see [81, 244]).

142

 

When the wave velocity constant, as in our case, time reduces to the minimum distance to 4 generator function. Since polygons give rise to three types of geometric elements, namely, vertices, edges, and planar interior region, we need to consider three types of distance functions, or equivalently three types of waves.

                 

Definition 7.1.2 (Minimum distance to generator functions for polygons) The distance functions  is defined for three types of generators: 5 for an arbitrary point in space     propagates spherical wavefronts: 1. A point generator, 

   



2. A line segment generator, going through the points cylindrical wavefronts:

                 

 



  where  













         



 







and





(denoted by

(7.1) 

), propagates

                   

      (7.2)        is the tangent vector to  and   





  

















; see Figure 7.1.(a).6 3. A planar generator, specified by three points planar wavefronts:7



,



and



(denoted by

 

), propagates

                  (7.3)         is the unit normal vector to the plane containing vertices  , where   and and is the distance from the origin  to the plane; see Figure 7.1.(b).





























The three types of wavefronts collide and form shocks. In pairs they give rise to six types of shock sheets (quadrics), Section 7.2, in triplets they give rise to ten types of shock curves (quartics), Section 7.3, and in quadruplets they give rise to fifteen types of shock vertices (octics), Section 7.4. We will conclude the chapter in Section 7.5 by providing algebraic methods to accurately compute all the possible nodes of the shock scaffold for polygonal generators, i.e., its sources, relays, and sinks.8

7.2 Shock Sheets: Quadrics



In this section we derive the geometric aspects of the for the various pairings between the three types of waves emanating from polygonal generators, i.e., Spherical (S), Cylindrical (C) and 4

I.e., one can show that a wavefront moves along its normal field by a unit distance step for each time step. Squared distances are used when convenient to eliminate square roots. 6 The notation used permits us to significantly simplify the remaining equations in this section. 7 For a polygon with more than three vertices, we simply take any three, but non-collinear, vertices. 8 This is part of a collaboration with Dr. Rania Wazir, previously with the Mathematics Department at Brown, and now affiliated with the University of Torino, in Italy. 5

143 P

Contact shock wave

Cylindrical wave area P

NABC

dP, ABC C

Spherical wave area

dP,P

AC

A

B Spherical wave area A Contact shock wave

P

ρABC Cylindrical wave area

(a)

(b)



AB

B

O



Figure 7.1: (a) Orthogonal projection, of a point on the edge  ; contact shock waves are

at its vertices, delimiting the zones of propagation from the planes perpendicular to the edge 

edge itself versus propagation from a vertex. (b) Plane determined by 3 points  , and together with its normal   and distance to the origin,    . The distance from an arbitrary point is denoted by      .



Planar (P). The geometry of the sheets can be derived, in analogy to the method used for point generators, i.e., by expressing the bisectors’ geometry in the form of:



 

 

where  and  denote the pair of distance functions emanating from a pair of generators,   and   . The six possible independent combinations of such waves generated by polygons under the above three distance functions will create six surfaces of degree at most two (see Table 7.1). 9 Theorem 7.2.1 (Shock sheet geometry is a quadric (generic configurations)) The bisectors of pairs of polygonal generators       are described by an implicit polynomial of degree at most two, i.e., a quadric surface:



    

   & !   & "!"    & $# ! % & &" ' & ("  &    &   & ( " * ) &  

  (7.4)

More specifically, there are six types: 9

While it is generally well-known that bisectors of polygonal generators are members of the family of quadrics (e.g., see [74, 85, 189]), no exhaustive study of all possibilities, including the degenerate cases, could be found in the literature; hence we report on our comprehensive study in this chapter. The same comment applies to the cases of curves and vertices, to be detailed in the following sections.

144

#

Event type

Acronym

1

Cylindrical Cylindrical Cylindrical Spherical Cylindrical Planar Planar Spherical Planar - Planar Spherical - Spherical

CC

Surface degree 2

CS

2

CP

2

PS

2

PP SS

1 1

2 3 4 5 6

Generic bisector

Special cases

Right hyperbolic paraboloid Parabolic gutter

Plane (for parallel or intersecting edges)

Skewed elliptic cone Paraboloid of revolution Plane (finite speed) Plane

Parabolic gutter (edge parallel to plane)

Plane (infinite speed)

 

Table 7.1: The locus of shocks (sheets) in a 3D polygonal world is described by a quadric, which can degenerate to a plane.



(a) for the cylindrical-cylindrical (CC) shock sheets arising from a pair of lines parameters of the quadric are:    











 





, the

































and

                              

          

 

                       

 

                            



    

     

                                                                                                            









(7.5) In general position, (i.e., when lines are not parallel or intersecting), the locus is a hyperbolic paraboloid specified by an equation of the form:

 











 

  





where is the minimum distance between the lines and and is the angle of “skewness”  .10 these lines make with each other, where  (b) For the cylindrical-spherical (CS) shock sheets arising from the interaction of a line and a point generator , the parameters of the quadric are:







 and The angle of skewness varies from 0 to . For each extrema, they make an angle (i.e., they are skewed). The two lines are most skewed for angle with respect to each other. This is similar to the example given in [122]. 10



  , the lines are aligned, otherwise    , i.e., when the lines are at right

145



 

    

                                  

                   

      

                                                                     



 







  

























(7.6)







The geometry is a parabolic cylinder, specified by an equation of the form:

      



where is the minimum distance between the point and line. 11 (c) For the cylindrical-planar (CP) shock sheets arising from the interaction of a line plane generator

, parameters of the quadric are:



 

 

  

      

                                                                                                                                               

   



  











   

and a















(7.7)





The geometry is a skewed elliptic cone, specified by an equation of the form:

   











   



where is the angle between the line and the plane. (d) For the planar-spherical (PS) shock sheets arising from the interaction of a plane point , the parameters of the quadric are:

                                                                             



 





and a







  





(7.8)

The geometry is a paraboloid of revolution, specified by an equation of the form:

          

11 Note that the line generator plays the role of the directrix of the parabolic cross-sections, while the point generator plays the role of the focus of the corresponding parabola.

146



where is the minimum distance between the point and plane. (e) For the planar-planar (PP) shock sheets arising from the interaction of a pair of planes and

, the parameters of the quadric are: 

 



 

                              







 



 

 

 



(7.9)

Therefore, the bisector reduces to a plane, specified by an equation of the form: 





 



 0

 



(7.10)

(f) For the spherical-spherical (SS) shock sheets arising from the interaction of a pair of points  and , the parameters of the quadric are:

 



 

                                           









(7.11)

Therefore, similarly to the previous PP case, the bisector reduces to a plane, specified by equation (7.10).





Proof: For each of the six cases we consider the pair of generators and and derive the bisector by equating their respective distance functions (using the prototypes given by equations 

12 (7.1, 7.2, 7.3)), i.e.: . After some simple algebraic simplifications, which we omit here, we get the above six sets of parameters of the different quadrics. To derive the generic geometric forms, we consider in each case a canonical configuration which simplifies the quadrics’ parameters to a minimum by an appropriate choice of coordinates and parameters.  (a) CC case: Consider two lines and in space with minimum distance from each other, and with an angle of skewness, specified by the coordinate system in which:

         









                        





















 

  

This leads to the following parameterization for the lines



   







 







 









and











  







                        



         

         







 





:

            

 











   

 .13 Then, replacing these values in Equation (7.5), where          we  get the following 

coefficients for the quadric: ,

 

       



 2 4 We use squared distance for all cases except PP and  2 4 for the PP case. 13 This is similar to the example given in [122]. Again, note that any arbitrary pair of line segments in space can be represented in this way, by an appropriate rigid transformation. 12

147

 

(a)

(b)

Figure 7.2: (a) CC case: A pair of lines at skew angle and their bisector. (b) CS case: Parabolic cylinder or “gutter” generated from a line segment and a point (small sphere).



             

 

  





 and , so that:   , or We recognize this as the canonical equation of the hyperbolic paraboloid (of one sheet) or saddle surface. For example, for (Figure 7.2.(a)).14   we have: an angle  start at the origin and be oriented along the axis, and let the point (b) CS case: Let the line  be positioned above the line along the axis at a distance , i.e., 











                                  Then, replacing these values in equation (7.6), we obtain the following coefficients for the quadric:                

      , , and  , leading to the          , or      . This is the equation of a right parabolic cylinder bisector:   (or gutter, Figure 7.2.(b)). 















 

         

              

                          

 



 



  

    (c) CP case: Consider the plane,

, with parameters: ,  i.e., with equation , and let the line  lie in the plane intersecting

at the origin,       . Then, replacing these values in i.e., and       

equation (7.7), we obtain the following coefficients for the quadric:            leading to the bisector: 

            . For constant   or     values of we get elliptic level sets:   . In this generic situation, the resulting surface is an elliptic cone which has its main axis skewed as a function of the  makes with respect to the plane

(Figure 7.3). angle the line          (d) PS case: Consider the plane, , with parameters: , i.e., with equation , and let the point generator be above the plane along the axis at distance

 

   



14







 



























 

 

       





   

The lines are at 90 degrees with respect to each other. In each plane perpendicular to the line’s axis, the curve of symmetry is a parabola. Each parabola is oriented in opposite direction with respect to the other and lie in perpendic   ular planes. The initial  , shock occurs at the intersection of these parabola, i.e., here at the origin (see Figure B.1.(c), in Appendix B).

 

  

148

(a)



(b)





(c)



(d)

 

Figure 7.3: CP case: Elliptic cones generated from a line segment at an angle  with the plane  , and piercing this plane at the origin  .





, i.e.,  !  . Replacing theses values in equation (7.8), we obtain the following coefficients  6 for the quadric: "$##%&"'#%(")*#+(") ',&")-&"'.(/") )-("''!0,1-2"#+ 2   " 4 3 5  0  6 6 6=  40  , which is a paraboloid resulting in the bisector: 087 0:9 of revolution with its axis A@ = of rotation along the ? axis and its summit (apex) located at - , i.e., midway between the two generators (Figure 7.4.(a)). (e) PP case, and (f) SS case: these are trivially proved from the value of the parameters, i.e., BCD"E) , F QED D"' , GH"# and I+H"3 .

Degenerate configurations The above results characterize the geometry of the six types of shock sheets in generic configurations. In Appendix B we illustrate the dynamics of these sheets, i.e., their creation in time as pairs of waves intersect in space. We now consider, without proof, the geometry of non-generic configurations, which are useful in particular when considering human-made objects, such as polyhedral solids (e.g., tables, chairs, etc.), but also to characterize contact shock waves delimiting the zones of influence of the three types of waves emitted by generators in our polygonal world. (a) CC case: When the lines are parallel, the geometry “degenerates” to a plane located at middistance between the lines. The shock plane is then generated on each side of that initial shock line — like two linear and parallel wavefronts which sweep out half of the shock plane in opposite directions (Figure 7.5.(a)). When the lines intersect, the geometry is a set of two planes generated from the point of intercept (Figure 7.5.(b)). (b) CS case: When the line segment is directed with one of its end toward the point generator, the A@ = shock sheet degenerates to a plane at mid-distance, , between the two generators and initiated at the mid-point of the line joining J to the closest end of the line LK . (c) CP case: When the line and plane are parallel, the geometry of the elliptic cone “degenerates” to a parabolic cylinder (or gutter) initiated as a line at mid-distance between the two generators (Figure 7.6). Consider a cross-section perpendicularly to the line direction (and the plane), here planes parallel to 9:M . Then, we note that the plane plays the role of a directrix and the locus of

149

(a)

(b)

(c)

       

           



          

Figure 7.4: (a) PS case: Paraboloid of revolution generated from a plane and point (in red). (b) PP , and a nearly vertical one, inclined at an angle   case: In grey are an horizontal plane,       . In red, is shown their bisector, the plane with respect to the vertical:        . This plane makes an angle    resulting from:    . with respect to the horizontal plane between the two source planes which make an angle of  (c) SS case: Two point generators (in red and green) at distance from each other along the  axis . generate a shock plane (in grey) at mid-distance between them, i.e.: 





(a)

       

(b)

Figure 7.5: Two degenerate cases where the CC shock sheets reduce to planes. In (a) two parallel! lines ! generate a plane in between them; gradient flow field traced for radius values:  !  . In (b), two lines intersecting, here at ! , can! generate ! up to two perpendicular planes; gradient flow field traced for radius values:  .

         

150

            

Figure 7.6: Parabolic cylinder shock sheet generated in the special case where the line (in red) is   parallel to the plane. In blue are shown shock lines sweeping the sheet, for  . Two  viewpoints of the same configuration are shown. Parameterization given as: , and  , which represents the equation of two parallel lines oriented along the axis.

 

the line plays the role of the focus of a parabola. This gutter is similar in form to the generic case for the CS sheet, but its dynamics are different. (d) PS case: There are no useful degenerate case, i.e., a point vertex in the plane needs not be considered. (e) PP case: The two planes are precisely facing each other, and the resulting planar shock sheet is generated at once (i.e., with infinite speed of flow). (f) SS case: There are no degenerate case. Contact Shock Waves: Contact shock waves are used to define limiting boundaries between the different types of waves generated by a polygon, i.e., between its interior, edges and vertices. They prove useful in practice since they delimit on the where its local geometry changes, e.g., from a linear to a conic segment (see Tek and Kimia’s work in 2D [239, 235]). They can be simulated as two types of degenerate configurations from the above list, in order to generate surfaces of normals along the boundaries of a polygon.15 (a) CS (or SS) contact wave: This is precisely the degenerate CS case above, i.e., for an edge facing a vertex, where the distance between the pair of generators is taken as a limit to zero. Alternatively, we can think of it as a (generic) SS pair, where the end of the polygon’s edge is seen as a second point generator (Figure 7.7.(a)). (b) CP (or CC) contact wave: Again, this is alike the degenerate CP case above, for an edge limiting the side of a polygon’s interior, i.e., such that the distance between the edge and the polygon’s side tends to zero. In this case, the (degenerate) CP gutter is further flatten to become a plane. Alternatively, we can also think of it as a kind of degenerate CC case, where the polygon’s side is alike a second edge (Figure 7.7.(b)).



15

Such surfaces of normals are used in the CAD literature to trim bisectors, i.e., limit bisectors where they are intersected by these contact shock waves [81].

151

                     

Gi

Gi

       G k     G i                 Gi G  k    

                  G k                                    G j        Gk  ε

(a)

Gj

Gj

ε

(b)

Gj

Figure 7.7: Two types of contact shock waves in a polygonal world are needed to delimit the zones of influence of the three types of waves sent out from a polygon. Top views are in 3D where 2 sets (out of 3) contact shock waves are illustrated (in red hashed planes). Bottom views are 2D projections from above. (a) CS/SS contact wave: at the end of each edge, we put a virtual point generator approaching the edge at a distance  along a line prolongating that edge. The resulting contact shock wave is a half-plane, perpendicular to the edge at its end (where   ). (b) CP/CC contact wave: near and parallel-wise to each edge, we put a virtual line segment generator (of length equal to the polygon’s edge interior) approaching the edge at a distance  in the plane of the polygon.

152

Finally, note that these contact shock waves intersect by pairs, limiting their own extent and defining straight line contact shock curves flowing away at each polygon vertex along the normals to the polygon’s interior (i.e., on both sides). This concludes this section on the six types of shock sheets all part of the family of quadrics in 3D space. We now turn our attention to shock curves in the following section.

7.3 Shock Curves: Quartics Shock curves lie at the junction of three shock sheets. Equivalently, they emerge from the intersection of three wavefronts initiated by the corresponding triplet of generators. In both cases only two of the three intersecting surfaces are necessary to define the geometry of a shock curve, the third surface being redundant.16 We can refer to the following result from algebraic geometry, a generalization of the famous Bezout’s Theorem, to determine the maximum degree of these curves obtained at the intercept of pairs of independent surfaces:





Theorem 7.3.1 (Surface intersections) Two surfaces of order [38, p.291]. nents, intersect in a curve of order 

and



, without common compo-

Hence, the maximum degree of the curve of intersection of two quadrics is a fourth degree space curve or quartic. In the context of a 3D polygonal world, we need to consider ten types of wavefront collisions or events from which shock curves emerge, i.e., by the combinations by triplets of the Cylindrical (C), Planar (P) and Spherical (S) wavefronts; these are listed in Table 7.2. Since we have a relatively simple system to solve each time we compute an intersection, we can try to rearrange the pair of equations to lower their degree and reduce the number of variables in one or both surfaces by elimination.17 Corollary 7.3.1 (Shock curve geometry is a quartic) The shock curves for the ten types of collisions by triplets of waves emerging from polygon generators are algebraic curves of degree four at most, i.e., quartic curves in 3D space. They can be specified by a set of two implicit polynomials, one of degree two in three variables at most, the other of degree four in two variables at most, of the form:

where 16







 

      

    





,







 

 











  











       





      





  

 

(7.12)

 



(7.13)





.

I.e., from three generators,  $ " 2  " 4  " 5 & , we can only construct two distinct pairs (or shock sheets) by combination

of these generators, such that each pair brings a “new” generator to the construction of a triplet constitutive of a shock curve. 17 For more complex surface intersection problems, we need to rely directly on more sophisticated methods such as Groebner bases or resultants (e.g., see [111, 38, 188]; see also Section 7.5).

153



#

Event type

Acronym

1

Cylindrical - Cylindrical - Cylindrical Cylindrical - Cylindrical - Spherical Cylindrical - Cylindrical - Planar Cylindrical - Spherical - Planar Cylindrical - Spherical - Spherical Cylindrical - Planar - Planar Planar - Planar - Spherical Planar - Spherical - Spherical Planar - Planar - Planar Spherical - Spherical - Spherical

CCC

2 (3)

CCS

2 (3)

CCP

2 (3)

CSP

2 (3)

CSS CPP PPS PSS PPP SSS

1 (3) 1 (3) 1 (3) 1 (3) 1 (2) 1 (2)

2 3 4 5 6 7 8 9 10

System degree







Generic trisector Quartic



4 (2) or 2 (3) 4 (2) or 2 (3) 4 (2) or 2 (3) 4 (2) or 2 (3) 2 (2) 2 (2) 2 (2) 2 (2) 1 (2) 1 (2)

Quartic

Special cases Conic, Line Conic

Quartic

Conic

Quartic Conic Conic Conic Conic Line Line

Line Line Circular arc Circular arc

Table 7.2: Shock curves in a 3D polygonal world (* In parenthesis is indicated the number of independent variables in the respective implicit polynomial equation).





Proof: The maximum degree of the curve of intersection is given by Bezout’s theorem above. Then,

for each of the ten cases we consider one bisector, e.g., , as the set , and use it to eliminate

one variable in the second bisector (  or  ), which is always possible with our set of quadrics. 18 After some algebraic simplifications which we omit here, we get the ten sets of equations whose degree and variables are listed in Table 7.3. QED In the following we illustrate the geometry of each of the ten cases with a generic configura tion which simplifies the coefficients  and   by an appropriate choice of coordinates and parameters. 



and  , , mutually skewed, i.e., (a) CCC case: Consider three lines, not coplanar nor parallel and not intersecting, specified by the following coordinate system:



 



                                







































 

    



               

            











 













where the first pair of lines are at minimum distance from each other, with an angle of skewness in the plane, while the third line goes through the origin and makes an angle in the plane. Replacing these values in Equation (7.5) we get for the first pair the following bisector:





 

18





E.g., from one of the three available quadrics, we can express one coordinate, say , as the rational of two polynomials in of second and first degree, respectively. By replacing into one of the two remaining quadrics we obtain an implicit polynomial of the fourth degree, in two variables. Elimination in this manner of both and is alike projecting the curve of intersection of a pair of quadrics in the plane of the remaining coordinates, i.e., here. Indeed, the algebraic process of variable elimination corresponds to the geometric process of projection (of “varieties”) [71, p.211].

     

154

(a)

(b)

  

(c)



Figure 7.8: Example of !a CCC curve at the intersection of three hyperbolic paraboloids (  ), one of which is redundant. Surfaces and curves produced with the    ,   LSMP/Geomview package [168] (there are two curve sets as the original three line generators are not limited in length in this example). (a) Three (colored) shock sheets and their curve set of intersection in black. (b) Idem as in (a), but surfaces as see-through wireframes. (c) Curve set of intersection only. 

  







  

                 , and for the second pair                   

      

                . Eliminating one coordinate  



variable from using into the second bisector we get for a fourth degree polynomial in  two (coordinate) variables. The resulting shock curve corresponds to the intersection of three CC shock sheets, i.e., three right hyperbolic paraboloids, as illustrated in Figure 7.8.  (b) CCS case: Consider two skewed lines, " and   at minimum distance  from each other, and a point generator   , not along the closest line of approach between the two lines, specified as: 





  

        





       

:        

        

      

         is the angle of skewness. Thus, by pairing where and  we get the   

      which we take as  . Forthethelines bisector     second set, we consider the the point generator , which gives for the second bisector:   interaction of the line     

       with           . Using  to eliminate one coordinate variable, say    

               , in the equation of the second bisector,  ,we get:     

















!







"#

$"#

%&"#



('



'



















which is a second degree polynomial in two variables. The resulting shock curve corresponds to the intersection of two parabolic gutters and an hyperbolic paraboloid, as illustrated in Figure 7.9. 19  (c) CCP case: Consider two skewed lines, " and   at minimum distance  from each other and not parallel to a plane generator )+*-, , specified as:

 





19



Note that, if we were considering the intersection of the hyperbolic paraboloid and the (right) parabolic gutter, in the special position where the gutter, with its ridge line, intersects the saddle at its flat point, the resulting space curve would be the twisted cubic (e.g., in parameterized form: . /. 10 3242 42 ). Because our intercepts usually happen away from these flats, we have one more degree to our curve. Thus, we may call it, by analogy, the twisted quartic.

6

   

155

(a)

(b)

 

(c)





Figure 7.9: Example of a CCS curve at the intersection of one hyperbolic paraboloids and two   ), one of which is redundant. Surfaces and curve produced , parabolic gutters (   with the LSMP/Geomview package [168]. (a) Three (colored) shock sheets and their curve set of intersection in black. (b) Idem as in (a), but surfaces as see-through wireframe. (c) Curve set of intersection only.





    & & 

-*-,

   









          

   

 



                          

 







"



#



$"#

% %"

#

  . The +*-, plane is parallel to the plane, with a normal pointing in the where positive direction, and at distance “ ” from the origin along the axis. Our a first set is the same as for the previous CCS case. For the second set, we first consider the interaction of the line        with the plane +*-, , which gives us for the second bisector:      . Using the first set, , to eliminate a variable, say , in     



'

'



 





 

 











   



 













              , which

    the equation of , we obtain:    is a fourth degree polynomial in two (coordinate) variables. The resulting shock curve corresponds to the intersection of a pair of skewed elliptic cones and an hyperbolic paraboloid, as illustrated in Figure 7.10.    (d) CSP case: Consider the line / not parallel to the plane  , and a distinct point generator, )* , be specified as:



* '





 



                          

  



 where









'







         







 

 









       

 



, is the angle the line, lying in the plane, makes with respect to the    plane  at its intercept at the origin. Thus, by pairing the line and the plane   we            get the bisector: . For the second set, we first consider the interaction between the line and the point * , which gives us for second bisector:



  

















156

(a)

(b)





(c)

  

Figure 7.10: Example of a CCP curve at the intersection of one hyperbolic paraboloids and two  , ), one of which is redundant. Surfaces and curve produced elliptic cones ( with the LSMP/Geomview package [168]. (a) Three (colored) shock sheets and their curve set of intersection in black. (b) Idem as in (a), but surfaces as see-through wireframe. (c) Curve set of intersection only.

                Then, we use this bisector to eliminate a variable                        in   , say , to get:    















which is a fourth degree polynomial in two variables. The resulting shock curve corresponds to the intersection of a parabolic gutter, a skewed elliptic cone and a paraboloid of revolution, as illustrated in Figure 7.11.  and two point generators, and , which are not in a plane (e) CSS case: Consider a line perpendicular to the line, and specified by:







                           



        

where



  



         





















          







and the point we get the following bisector:

 . Thus, by pairing the line , a quadric (gutter) in two (coordinate) variables. For the second set, we consider the interaction between the two point generators,  and , giving us for second    

   

bisector a plane expressed as:  , which can directly be used as . By changing the angle , the two parabolic cylinders and  “rotate” around the line generator and their intercept translates in the direction of this line as a function of and  (Figure 7.12).

 (f) CPP case: Consider a line and two plane generators, , and  ,

such that the line is not parallel to any plane, the two planes “see” each other at an angle, and specified by:            











 

 





 

  





                

           









 

















 



                         







157

(a)

(b)





(c)



Figure 7.11: Example of a CSP curve at the intersection of an elliptic cone, a parabolic gutter and a  , paraboloid of revolution ( ), one of which is redundant. Surfaces and curve produced with the LSMP/Geomview package [168]. (a) Three (colored) shock sheets and their curve set of intersection in black. (b) Idem as in (a), but surfaces as see-through wireframes. (c) Curve set of intersection only.

(a)

 

(b)

 





(c)

Figure 7.12: Example of a CSS curve at the intersection of two parabolic gutters and a plane   ( , ,  ), one of which is redundant. Surfaces and curve produced with the LSMP/Geomview package [168]. (a) Three (colored) shock sheets and their curve set of intersection in black. (b) Idem as in (a), but surfaces as see-through wireframes. (c) Curve set of intersection only.

158

(a)



(b)

Figure 7.13: (a) CPP shock curve, a conic, with generators — two oblique planes and a line along the axis — and shock  sheets — a pair of cones and a plane — being shown. The parameters are  ,   and   . (b) Same dataset, without generators and with wireframe renditions of shock sheets.



 







the distance from the origin of the second plane is larger than for the first) and      ,(i.e., controls the tilt angle between the two planes. Thus, by pairing the line                  

      

 and the plane  we get  for bisector:  /           . For the second set, we consider the interaction between the pair of planes,      . The resulting            which is simply another plane with equation:  

where















shock curve, a conic, corresponds to the intersection of a pair of skewed elliptic cones and a plane, as illustrated in Figure 7.13.    +* , and a point (g) PPS case: Consider a pair of non-parallel planes,  and generator,  , , not lying in either plane, specified as:

 







                                  

:  

               ,      . Then, by pairing the plane  with the point we get the where                             . For the following bisector:    second set, we consider the interaction between the pair of planes, which is simply another plane      

        . The resulting shock curve, a conic, with equation:       











,    

















-*

,



'

,









corresponds to the intersection of a pair of paraboloids of revolution and a plane, as illustrated in Figure 7.15.  (h) PSS case: Consider a plane generator, * , and a pair of point generators, /  and ) , which are on one side of the plane away from it, and specified as:

 



 







,  



 

 !                                  

















159

(a)

(b)

Figure 7.14: (a) PPS shock curve, a conic, with two out of three generators — oblique planes — and shock sheets — a pair of paraboloids of revolution and a plane — being shown. The parameters    are , and . (b) Same dataset, without plane generators, with point generator (in red) and with wireframe renditions of shock sheets.

  







 

                               





where  and by pairing the plane and the point , we get the       . Then,   following bisector: . For the second set, we consider the interaction between the pair of point generators, which is simply another plane with equation:        

 . The resulting shock curve, a conic,   corresponds again to the intersection of a pair of paraboloids of revolution and a plane, similarly to the previous PPS case, as illustrated in Figure 7.15 (compare with Figure 7.14). (i) PPP case: Consider as generators three planes not mutually parallel. By a simple geometric argument, since the shock curve is constrained to lie on more than one plane, it has to be a line. Furthermore, we can take the equation of one of the planar shock sheet as the set , and use it to eliminate one coordinate variable in one of the two other equations of a planar shock sheet to obtain , a linear equation in two variables. We are thus left with a linear system in three coordinate variables with only one degree of freedom, hence tracing out a line in 3D space (e.g., see Figure 7.17.(a) for planar waves typical of a box-like object). (j) SSS case: Consider as generators three non-collinear points. The shock curve is obtained as the intersection of three SS skeletal sheets, i.e., three planes. Equivalently the shock curve is traced out at the junction of three spherical wavefronts. Thus, the geometry is alike the previous PPP case: i.e., the shock curve is again a line (Figure 7.17.(b)).









Degenerate configurations The above results characterize the geometry of the ten types of shock curves in generic configurations. We now briefly consider the geometry of non-generic configurations. (a) CCC case: There are four possible degenerate configurations: (i) two of the three lines are parallel; (ii) two of the three lines are intersecting; (iii) the three lines are parallel, but not co-planar, and (iv) the three lines are intersecting. If two of the lines are parallel, then their bisector degenerates

160

(a)

(b)

 



Figure 7.15: (a) PSS shock curve, a conic, with its generators — the plane and a pair of points — and shock sheets — a pair of paraboloids of revolution and a plane — being shown. The    parameters are and . (b) Same dataset, without the plane generator and with wireframe renditions of shock sheets.

  





                           Ridge                                   External Shock sheet vertex                                                              Shock curve          Shock   Shock sheet   Shock sheet   vertex  

G2 B12

2

A1 −2

G1

3 A1 −2

G3

B32

3

B13

(a)

A1

(b)

Figure 7.16: (a) Geometry of the creation of a PPP shock curve at the junction of three planar shock sheets emerging from the corner of a box-like object. (b) Geometry of formation of a SSS shock curve at the junction of three planar shock sheets, the bisectors of point generators. Also illustrated are the shock sources and directions of flow.

161

to a plane. That plane will intersect the two remaining bisectors, i.e., parabolic hyperboloids, hence resulting into a conic. A similar situation occurs for two intersecting lines. Three parallel, nonintersecting lines give rise to three planes intersecting in a line (think of the edges of a parallelepiped; Figure 7.17). A similar situation occurs for three intersecting lines. (b) CCS case: There are two possible degenerate configurations: (i) the two lines are parallel; (ii) the two lines are intersecting. If two of the lines are parallel, then their bisector degenerates to a plane. That plane will intersect the two remaining bisectors, i.e., parabolic gutters, hence resulting in a conic. A similar situation occurs for two intersecting lines. (c) CCP case: There are four possible degenerate configurations: (i) two lines are parallel; (ii) two lines are intersecting; (iii) one line is parallel to the plane; (iv) the two lines are parallel to the plane. If two of the lines are parallel, then their bisector degenerates to a plane. That plane will intersect the two remaining bisectors, i.e., skewed elliptic cones, hence the resulting shock curve will be a conic. A similar situation occurs for two intersecting lines. When a line is parallel to the plane, their bisector is the parabolic gutter; the latter intersects with a parabolic hyperboloid (the bisector of the two lines) and hence the resulting shock curve is similar to the (generic) CCS case. When the two lines and plane are parallel, the bisector of the lines degenerates to a plane which intersects simultaneously two parabolic gutters, resulting in a conic. Note that in this last configuration, if the lines are further mutually parallel, then the shock curve reduces to a straight line. (d) CSP case: There is only one degenerate configuration of interest: 20 the line is parallel to the plane; thus, their bisector is the parabolic gutter, rather than a skewed elliptic cone. The latter intersects the paraboloid of revolution for the PS pair and another gutter for the CS pair. (e) CSS case: There is only one degenerate configuration of interest: the two points are in a plane perpendicular to the line. Then, each parabolic gutter (CS pair) is sliced by the SS plane along its length (i.e., perpendicularly to its parabolic cross-section) resulting in a straight line shock curve. (f) CPP case: There are three possible degenerate configurations: (i) the line is parallel to one plane; (ii) the line is parallel to both planes; (iii) the line and planes are parallel. In the first case, for the pairing between the line and its parallel plane, we get as a bisector a parabolic gutter, which intersects a skewed elliptic cone, from the other CP pair, and a PP plane. When the line is parallel to both planes, the shock curve is at the intercept of two parabolic gutters and a plane, similarly to the CSS (generic) case. In the third configuration, the shock curve reduces to a straight line, as the PP plane slices both gutters in parallel with respect to their respective directrix. (g) PPS case: There is only one degenerate configuration of interest: the two planes are parallel and the point generator lies in between them. Then, each paraboloid or revolution (PS pair) is sliced by the PP plane perpendicularly with respect to their respective axis (which are then parallel); the resulting shock curve is then a circle (rather than an ellipse). (h) PSS , (i) PPP and (j) SSS cases: There are no degenerate configurations of practical interest. This concludes this section on the ten types of shock curves all part of the family of quartics in 3D space. We now turn our attention to shock vertices in the following section. 20

We do not consider point generators lying in the interior of a polygon or along its edges.

162

              Ridge   Shock sheet 3                                                                       Shock                    External                                                     sheet 2   vertex                                                                                                                      Shock                           Shock                          sheet         1                       4   sheet                                                                                                                                                                                     Shock 6 sheet Shock  Shock Vertex  sheet 5                                                  Figure 7.17: Geometry of the creation of a shock vertex at the junction of six planar shock sheets emerging from the corner of a box-like object.

7.4 Shock Vertices: Octics Shock vertices lie at the junction of six shock sheets, or alternatively four shock curves, or four wavefronts from a quadruplet of generators. From the geometry alone, we notice that a minimum of two shock curves or three shock sheets are sufficient and necessary to define a shock vertex at their intercept. As for the case of shock curves, we can refer to the following result from algebraic geometry to determine the maximum degree of these vertices obtained at the intercepts of surfaces and/or curves:



Theorem 7.4.1 (Combined surface/curves intersections) A curve of order  meets a surface of order not containing any other part of the curve in  points [38, p.291].





Hence, taking one shock curve obtained at the intercept of a first pair of shock sheets, its maximum degree is   by Bezout’s Theorem 7.3.1. Then, this shock curve will meet a third shock sheet, a  points. That is, the solution to the system of equations describing the quadric, in at most  intersecting shock curve and sheet will have an algebraic solution set of degree eight, namely an octic or a biquartic. This represents the highest expected order of the system of equations to solve in order to retrieve the intercept of shock curves and/or surfaces as a shock vertex. For certain configurations, the degree will be lower. In the context of a 3D polygonal world, we need to consider fifteen types of wavefront collisions or events from which shock vertices emerge, i.e., by the combination by quadruplets of the Cylindrical (C), Planar (P) and Spherical (S) wavefronts from generators; these are listed in Table 7.3.





Corollary 7.4.1 (Shock vertex geometry is an octic) The shock vertices for the fifteen types of collisions by quadruplet of waves emerging from polygon generators are specified by algebraic systems

163

#

Event type

Acronym

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Cylindric - Cylindric - Cylindric - Cylindric Cylindric - Cylindric - Cylindric - Spheric Cylindric - Cylindric - Cylindric - Planar Cylindric - Cylindric - Spheric - Planar Cylindric - Cylindric - Spheric - Spheric Cylindric - Cylindric - Planar - Planar Cylindric - Planar - Planar - Spheric Cylindric - Planar - Spheric - Spheric Planar - Planar - Spheric - Spheric Cylindric - Spheric - Spheric - Spheric Cylindric - Planar - Planar - Planar Planar - Spheric - Spheric - Spheric Planar - Planar - Planar - Spheric Planar - Planar - Planar - Planar Spheric - Spheric - Spheric - Spheric

CCCC CCCS CCCP CCSP CCSS CCPP CPPS CPSS PPSS CSSS CPPP PSSS PPPS PPPP SSSS

Generic quadrisector Octic Octic Octic Octic Octic Octic Octic Octic Quadric Linear Linear Linear Linear Linear Linear







System degree

2 (3) 2 (3) 2 (3) 2 (3) 1 (3) 1 (3) 1 (3) 1 (3) 1 (2) 1 (2) 1 (2) 1 (2) 1 (2) 1 (2) 1 (2)



  2 (3) 2 (3)

2 (3) 2 (3) 2 (3) 2 (2) 2 (2) 2 (2) 2 (2) 1 (2) 1 (2) 1 (2) 1 (2) 1 (2) 1 (2) 1 (2)

2 (3) 2 (3) 2 (3) 4 (1) 4 (1) 4 (1) 4 (1) 2 (1) 1 (1) 1 (1) 1 (1) 1 (1) 1 (1) 1 (1)

Table 7.3: Shock vertices in a 3D polygonal world (* In parenthesis is indicated the number of variables in the respective implicit polynomial equation). of degree eight at most, i.e., octics in 3D space. They can be specified by a set of three implicit functions, two of up to second degree, the third being up to fourth degree, of the form:

where







 



      

     



 

 





 



,











  





  0















     0 







              











      





 

 

(7.14)

 

 

(7.15)





(7.16)





.

  

Proof: The maximum degree of the intersection set is given by the generalization of Bezout’s theorem given above. Then, for each of the fifteen cases we try to simplify the three sets , and by variable elimination by combining bisectors by pairs, similarly to the case of shock curves. After some algebraic simplifications, which we omit here, we get the fifteen sets of equations whose degree and variables are listed in Table 7.3. 21 QED







21 Note that, with a simple elimination method as outlined here, only the cases 5 to 15 are effectively “simplified.” They correspond to the cases where at least one of the bisector is a plane.

164

Shock flow Sheet Axis Axis end

1

   

-

2





3

4 -

                   

Table 7.4: Final classification of nine possible shock points based on contact with spheres, flow type, when generators are polygons.

 

, and

Solving the above systems of equations for all fifteen cases will be reported elsewhere in greater details. In summary, we need to call upon techniques from computational algebraic geometry to solve the difficult cases which do not have explicit analytic formulations. These techniques include the method of resultant, elimination theory, Groebner’s bases, and various numerical approaches [188, Ch.5] (see also the next section below for some initial details). Note that thus far in this chapter we have discussed the geometric aspects of all MA elements for polygonal generators, the next step in our comprehensive study of the 3D polygonal world is to address the question of the determination of the shock sources, relays, and sinks. This is the topic of the following section.

7.5 Nodes of the Shock Scaffold: Sources, Relays and Sinks In order to be able to compute the shock scaffold given a set of polygonal generators, we need to accurately extract the loci of the various nodes of the graph defined by the shock scaffold. In the following we will summarize computational methods to retrieve all of these. Note that similarly rib curves and vertices are possible, i.e., polygonal to the case of point generators, no generators do not directly produce ridges. 22 Also there are no shock sinks for sheets and curves, nor saddles. However, for degenerate configurations we can have  or  “relays” with infinitely fast flows. In summary we have only nine possible shock points for a set of polygonal generators, down from a maximum of 18 (Table 7.4). 23 We only consider the nodes of the scaffold of polygonal generators for generic configurations in the following, i.e., , and all shock points.

  



 

 

     

7.5.1 Nodes for Shock Sheets:

  



 



shock sources are always at the midpoint of the line of closest approach between any pair of generators, i.e., along the unique line linking two generators such that their distance gradient are parallel and face each other [188, pp.183–185] (see also Appendix B). The points on each generator 

at which this condition is verified are called footpoints:  and   . Hence, an alternative to directly identifying the is to first find the pair of footpoints, one per generator, such that the

  



22 Ridges require at least curving generators to be defined in relation to a single generator. For polygons, similarly to the case of points,   will occur only (implicitly) when performing some transform on the scaffold, such as connected component analysis (Chapter 6).  shock sheet. 23 With respect to point generators, we have one more shock point type, i.e., the degenerate 

 

165





line  is perpendicular to at and to at  [114]. In the following we describe procedures to identify the line of closest approach for each of the six possible pairings of distance to generator functions. 7.5.1.1

CC Shock Sheet

 







The line of closest approach between the line generators and

is there common perpendicular, i.e., the shortest line joining the two generators. We need to find  on each generator  and in the which locus is the footpoint of this common perpendicular, i.e., the values of  parametric representation of the pair of of  the line joining a point of to  a     lines. The equation     

  

   . point of is simply given as: This line must itself be mutually perpendicular to both generators, which give us a linear system of two equations in two unknowns easy to solve. Once we have the two footpoints one on each line shock source. Note that this generator, the midpoint of this common perpendicular gives the shock source is also the position of the “flat” of the hyperbolic paraboloid corresponding to the full CC sheet, i.e., the central point of this saddle surface where the two principal curvatures vanish.







 

  





  

7.5.1.2

CS Shock Sheet





  





 

The line of closest approach between the line generator and the point is the  perpendicular on which reaches . We need to find the corresponding footpoint on , i.e., a   .      

   . This determines . The latter is easily found to be value entirely the line of closest approach between the two generators; its midpoint is the locus. 7.5.1.3



 

CP Shock Sheet

  

 

   





We now seek the line of closest approach between a line and a plane

.  must be one of its endpoints, since in a generic configuration The closest point on the line the line is not parallel to the plane. Let us assume it is point . It remains to find the footpoint   on the plane,  , from which a perpendicular can be raised to reach , i.e.:     . Since  this footpoint satisfies the equation of the plane we have directly        that: . This determines entirely the line of closest approach between the two generators; its midpoint is the locus.



    

7.5.1.4







 





PS Shock Sheet









  

  







The line of closest approach between the plane and the point

is along the normal to the plane. Then we apply the same method as for the previous CP case to find the footpoint  . 



7.5.1.5

PP Shock Sheet

  





The line of closest approach between a pair of planes, and , must have one

of its footpoint on either an edge or a vertex of either polygonal generators, i.e., for two polygons 

166

in general position. Thus one solution is to march along one generator’s boundary and find the successive lines of closest approach (either alike of the CP or PS case above) to the other generator and keep the shortest one. Then a similar march is repeated by inverting the roles of each polygon, to find the true shortest line of approach; its midpoint is the locus.24

  

7.5.1.6

SS Shock Sheet



  



The line of closest approach between a pair of point generators, and , is uniquely determined by the generators themselves; its midpoint is the locus; i.e., using barycentric coordinates:    .

 



7.5.2 Nodes for Shock Curves:



  

Similarly to the case of sheets, only the sources of shock curves are of interest, i.e., the ’s. By definition, any point of a shock curve must be simultaneously at equal distance from the three

 , which gives us a first set of two conditions to satisfy: generators,

  

       

where, as usual, the distance to generator functions are any of the three possible ones given by equations (7.1), (7.2) and (7.3). In order to pick the particular point of a shock curve which is its source we need one more condition, namely one which minimizes the distance constraints above.

Consider the gradients of each distance functions, i.e.,     . Then, one can show that a necessary condition for the three distance functions to be equal and at a minimum is for their gradient mixed product to vanish:25





  



    

  

Geometrically speaking, this indicates that the parallelepiped defined by the three gradients has vanishing volume, and thus we can write the above constraint as a vanishing determinant:





   



    

  

Yet another interpretation is that the three gradients are mutually co-planar. Consider then the distance vectors linking the shock point to the three generators, such that each vector is in the direction dictated by the corresponding gradient. Since these three vectors must also be of equal length at that shock locus, they define a triangle in space, with vertices on the generators taken as 

 . We recognize here the circumcircle in disguise: the footpoints  ,  and     . Unless shock is always the circumcenter of the three distance vector footpoints it is easy to identify the footpoints of these vectors, we cannot rely simply on the circumcenter



  24

 

Note that essentially the PP case is not a real case, i.e., the minimum distance between two polygons is due to a boundary (unless the polygons intersect), and thus boils down to a CP or PS case. Only degenerate configurations may see the interior of both polygons define the loci of closest approach, which can then be either a full line or an entire planar  shock. shock sheet, i.e., a  25 This can be demonstrated, e.g., using the method of Lagrange multipliers.

 

167

formula (of Chapter 3). The case of three point generators is trivial of course: the generators are themselves the footpoints. There at least two ways to treat the other (non-trivial) cases: one based on intervals and one based modern algebraic techniques. In the first method, we start by considering the triplet of associated shocks: together they define intervals along the generators delimited by the footpoints of the associated closest lines of approach. One can then march along each interval by small increment, compute the intercept of perpendicular planes to each intervals which gives a candidate circumcenter and verify the co-planarity and equality of the associated three radii. In the second method, we consider the set of three conditions described above as one non-linear system to resolve:

  

         





   



   

(7.17)

The first two equations are either quadratic, for spherical or cylindrical waves emerging from point or line generators, respectively, or linear, for planar waves emerging from the interior of polygons. The third equation is at most a cubic, since the gradients are either linear, for spherical and cylindrical waves, or constant, for planar waves, and therefore, their mixed product results in (at most) a cubic. Once again, calling upon the generalized forms of Bezout’s theorem [38, p.291], we get a maximum of twelve (complex) solutions.26 Basically, we are looking for the common roots of systems of three  . In algebraic geometry, resolving such systems comes under polynomials in three variables the umbrella of “elimination theory” which provides criteria for the existence of common roots [38, p.327]. We have explored in collaboration with Dr. Rania Wazir from the Mathematics Department at Brown University recent sophisticated algorithms called hybrid methods, which combine analytic algorithms such as Groebner’s Bases with numerical refinement procedures such as based on interval analysis.27 The details of this implementation (using packages such as Maple or Macaulay2) will be reported elsewhere.

  

7.5.3 Nodes for Shock Vertices:



    

Shock vertices will be comprised of shock relays and sinks of the flow. By definition, any shock   vertex must be simultaneously at equal distance from four generators, , which gives us a (sufficient) set of three conditions to satisfy:

           

where, as usual, the distance to generator functions are any of the three possible ones given by equations (7.1), (7.2) and (7.3). There are no particular restriction on the gradients of these distance function other than being equal in magnitude. If we consider the lines of minimum distance linking

 the shock point to the corresponding footpoints on the generators, i.e.,  ,  ,  , these define a tetrahedron in space. This is the circumsphere in disguise: the and   shock is always the circumcenter of the four distance vector footpoints whose orientation is given



 

26



  

 

One then only keeps the real ones, plugs in the solution to find a triple which minimizes any of the three distance functions. 27 For some introduction on the topic elimination theory see, e.g., [111, 38]; for a more advanced discussion as well as an in-depth overview of Groebner’s basis method see [71].

168

by the gradients. Unless it is easy to identify the footpoints of these vectors, we cannot rely simply on the circumcenter formula (of Chapter 3). The case of four point generators is trivial of course: the generators are themselves the footpoints. In similitude to the case of shock sources, we consider a method based on modern algebraic techniques. We seek to find the zeroes of the following system of polynomials:

  

             

Since each of these equation is at most quadratic, according to the generalized Bezout theorem we get a maximum of eight (complex) solutions. Once again we can apply Groebner’s Basis method to retrieve these solution, and keep the real solution which minimizes any of the four distance functions. The details of the implementation will be reported elsewhere. 28

7.6 Conclusion We have covered all the most important aspects of the descriptive geometry of shocks given a set of polygonal generators. We have derived equations describing the trace of all possible shock sheets and curves. We also derived solutions to identify all shock nodes required to build the corresponding shock scaffold. What remains to explore is the development of efficient computational schemes to compute such scaffolds. We suggest that the adaptation of our computational frameworks for unorganized point clouds, namely the Lagrangian (Chapter 4) and Eulerian (Chapter 5) methods, should be applicable to the case of unorganized polygonal sets. One extra step that needs to be integrated to these computational schemes is the tracking of contact shock waves (and their associated nodes). This present no particular additional difficulty, since these shock waves always take the form of planes and straight lines at their junction. A future development shall then be to study the descriptive geometry of shocks for other useful classes of generators, in particular quadrics and splines which are often found in CAD applications. The methods used in this chapter should then be applied to these other classes of generators, i.e., (i) derive algebraic descriptions of shock sheets, curves and vertices, given the identification of all possible distance to generator functions, (ii) apply elimination theory, such as implemented by Groebner’s Basis method, to conceive algorithms to compute the nodes of the associated shock scaffold.29

28

This is work in collaboration with Dr. Rania Wazir, as for the case of shock curves’ nodes. Groebner basis method have the reputation of being numerically unstable for higher degree systems, and alternatives such as “subdivision-based” methods based on Linear programming may be prefered [263, 188, Ch.4]. 29

Chapter 8

Conclusion 

) of In this thesis, we have proposed and defined a new representation for the medial axis ( Blum, the shock scaffold, and computational schemes for its recovery that presents a number of itself and over other proposed methods to compute the . important advantages over the Specifically, (i) the shock scaffold directly provides a representation useful for shape analysis and recognition in the form of a directed graph; (ii) it greatly simplifies the computations and data management issues, including visualization, since only special points need to be explicitly detected and tracked, i.e., shock sources, relays and sinks; (iii) it preserves the uniqueness property of Blum’s MA representation since all computations are based on the (isotropic) Euclidean metric, and either exact — for point clouds — or accurate methods — for polygonal clouds — are provided for all possible shock nodes; (iv) for similar reasons it preserves the completeness of Blum’s , i.e., it represents all shape features and permits to reconstruct the original outline. Because of the discrete nature of this new representation, in terms of an oriented network of connected nodes, we were able to develop a new computational scheme in the context of the Lagrangian framework of Chapter 4, which permits the real-time applications of the shock scaffold in practice. waste time and memory in Traditional approaches to the representation and computation of the explicitly tracing medial sheets and curves. At the core of this scheme are new visibility constraints for pairing generators, and a new clustering method, which together lead to high efficiency in the computation of shock scaffolds for arbitrarily complex sets of unorganized points. Furthermore, besides computational advantages, our new outlook on Blum’s led us to precisely relate it in Chapter 3 to the Voronoi diagram. We also took the stand of assuming virtually nothing about the input data, i.e., not relying on any a priori connectivity information, as is often done in other computational approaches. The principal reasons for doing so were two-folds: (i) practical datasets are either provided without connectivity or related information (such as the normal directions along an outline) or this information is unreliable due to gaps or overlaps and inconsistencies in the data; (ii) by starting with no assumptions on the data, we are lead to theoretical and computational developments of greater generality and scope. In Chapter 6 we started addressing applications of the shock scaffold by exploring an experimental scheme for segregating this graph based on the recovery of a surface interpolant. This lead us, on the one hand, to propose a new way of reconstructing surfaces from unorganized point samples, and on the other hand, to recover coarse-scale approximations to ribs ( ) and axial curves ( ).













169



 

170



Then, in Chapter 7 we extended our study from point clouds to polygonal clouds, with the goal of generalizing the applicability of the shock scaffold, and thus Blum’s , to potentially arbitrary types of input datasets. Yet, in order to go further in applications and address pattern analysis and recognition issues, we will need to go one more step forward and consider the impact of perturbations and deformations on the shock scaffold. That is, what happens to the shock scaffold when we perturb the input data, or even deform the boundary of the object at hand? In a nutshell, the graph structure of the shock scaffold smoothly deforms most of the time, but will also go through sudden discrete changes which are called transitions [94]. It is fundamental to understand these in order to be able to tackle shape perturbations and deformations, as was demonstrated in 2D by Kimia et al. [218, 94, 225, 240, 75, 210, 211, 127], and we have started studying such transitions in 3D (e.g., see Figures 6.20 and 6.21 in Chapter 6). 1 The mastery of these transitions in 3D shall unlock the door to a multitude of important applications for 3D pattern analysis, object recognition and perceptual organization [96].

8.1 Other Future Developments Besides the topic of 3D transitions briefly touched upon in the above, a number of other important topics can be layed-out for near future developments of our research program. (i) Computational scheme for polygonal generators: as we concluded in Chapter 7, we now have all the tools in order to extend our detailed study of the computation of the shock scaffold from unorganized point clouds to unorganized polygonal clouds. (ii) Extension to curved surface generators: the following step will then be to use the gained experience with dealing with flat polygonal patches, to consider more general curving surface elements, such as quadrics and splines, useful in particular for CAD applications. (iii) Full symmetry transforms: in Chapter 6 we partially addressed the topic of symmetry transforms when dealing with surface reconstruction; by the combination of computational schemes dealing with polygonal and curving surface generators together with 3D transitions, we shall tackle this topic. (iv) Mixed Lagrangian-Eulerian computational schemes: we have yet to compare extensively the two computational schemes presented in Chapters 4 and 5; these can also be combined for potentially greater efficiency, in order to take advantage of their complementary nature; finally these methods should be extended to the classes of polygonal or curved surface patches. (v) Parallelism: this is a computational issue we have only started to explore; both our Lagrangian and Eulerian schemes have the necessary local properties which can be exploited by parallelism. (vi) Graph matching under transitions: graph-based methods used in 2D shape matching should be explored on the basis of our shock scaffold representation; combined with our understanding of transitions, we shall be able to address important applications such as 3D shape database indexing, shape-based regularization and morphing, or 3D molecular structure understanding (e.g., for docking analysis in drug design [143]).



1

This is the fruit of a collaboration with Professors Peter Giblin and Ben Kimia.

Appendix A

Adaptive boxes for Bucketing A simple strategy to generate “buckets,” i.e., clusters in the shape of boxes, which adapt their size to the local density of generators, is to consider the underlying grid for the data generated by the coordinate axes. integer values for the Let us consider a typical example. Assume we have input points as generators. The goal is to cluster this data so that in the end we have approximately  generators per bucket, where  is a small integer, for example 20, such that generators in such buckets are easy to query explicitly. During the bucketing process itself we would rather not sort explicitly the data for efficiency reasons, and rather delay this process until we have small buckets each with few generators. To create the buckets, we slice sequentially and recursively along each of the three spatial dimensions, in an arbitrary order, e.g., first along , then and finally . That is, we first slice along the axis to obtain a number of smaller regions, called -buckets. Second, we slice each -bucket independently along the axis, to obtain a larger number of even smaller regions called -buckets. Third and finally, we repeat this process with each -bucket, slicing them independently along the axis. The expected number of buckets after the first slicing is given as:

  





















      



Thus, along the





        

axis, we expect to have:





 regions along the                                -buckets, we Finally, at the end of the third series of slicing along the  axis of each of the   will have per   -buckets, i.e.:    -buckets and   generators                

generators per -bucket. After the second series of slicing of each of the  axis, we will have -buckets and  generators per such -bucket: 

























as desired. 171







172

A.1 Adaptive slicing along each axis



Consider the minimum bounding box aligned with the coordinate axes, which contains all the data. We will start slicing along the dimension, i.e., we will first slice the data with planes parallel to the plane. Because we do not order explicitly the generators at this stage, we do not know a  priori what are the slicing positions along the axis which will gives us the desired number of bucket regions.  to To resolve this “chicken and egg” problem, we first slice the axis regularly, from values given by the bounding box, with a high sampling rate resulting in a much higher number  . In practice we have simply used the sequence of integer values of regions than the target of along an axis to easily define such bins. 1 Then, the association of a generator to a bin is trivial: simply consider the integer part of its coordinates to determine bin membership. This gives us a first ordering of the data. We then combine these small “bins,” sequentially in the direction of increasing  values to create the desired number of -buckets. Because we do not order explicitly generators within a bin, we stop adding bins to a bucket as soon as we are “near” the desired number  of generators per bucket, e.g., within a tolerance of 5%. We proceed the same way when slicing along the remaining two dimensions. Thus, in the end we will have only an approximation of  in each -bucket, but a close one, without ever doing any explicit sorting amongst generators themselves. The main advantage of such a coarse bucket sort is that it degrades linearly in the number of inputs in practice (see Chapter 4 for experimental results). Note also that each -bucket adapts its sizes, as a function of the selected tolerance level, along each of the 3 spatial dimensions in order to closely meet the target of  generators. This relative flexibility is obtained by independently slicing - and -buckets in each successive pass.

 

































Refinement: Empty buckets: A possible refinement is to create buckets empty of generators when a sequence of bins is found, while building buckets, which is void of generators. This tends to occur in practice along the boundaries of the minimum bounding box containing all the data. It also tends to occur for bulky shapes, toward the central area of that box, i.e., in the hollow part of the shape (e.g., in the middle of a sphere). The latter is often encountered when scanning the surface of rather large or convex object, e.g., a complete pot. We may allow to build empty buckets by simply checking for sequences of empty bins of minimal length ; this is a user-defined parameter and it allows to avoid constructing too many empty buckets from isolated empty bins. Building empty buckets may be delayed until the third final pass -buckets. in the bucket construction, i.e., when building the







A.2 Queries Once a coarse clustering is obtained via the above bucketing technique, an important set of questions to address are query times, i.e., (i) given a shock point, identify in which bucket it is, and, (ii) as a function of the associated contact sphere radius, determine which neighboring buckets may need to 1

The smallest possible bins take the form of voxels.

173

be visited to perform the shock validation test. We combine the above bucketing technique with a 3D look-up table to address this issue with improved efficiency.

A.2.1 Query of type 1: Bucket membership of a shock One possible way to solve the first type of query, i.e., “identify which bucket are we in,” is by building a 3D look-up table. Consider the 3D grid defined by the integer coordinates along each axis, . We can associate to each grid point the labels of nearby buckets. For example, once we have built the -buckets, each such bucket has a set of 6 values delimiting its bounding planes,    . For each axial range, e.g.,  , we find the i.e., a set interval of integer coordinates which covers this range, i.e., the sequential set of integers given by   . Hence we obtain three sets of integer coordinates for each axial dimension, which identify a set of grid points at which to keep track of the label of the given bucket. If we perform this operation for all buckets, all grid points will have an associated list of closest buckets. The above operation further justifies that it is advantageous when building the buckets to define slicing along each axis such that a slice always fall at integer coordinates. This proves easy to implement, since we are using a tolerance level (e.g., 5%) on the number of generators per bucket. Then, each grid point will have a unique bucket label associated to it. Next, when a query point is issued, i.e., when  a candidate shock is found, we simply apply the “floor” operation on each , which gives us the lower and closest integer value to . This assumes that coordinate, e.g., membership in buckets is also defined with respect to the “floor” operation on coordinates of sources. -bucket by the concatenation of many bins, where a bin This is indeed the case when we build a is simply a voxel, as was suggested in the previous section. Using the fixed grid of integer coordinates as a 3D look-up table as above permits to have a constant time query to identify bucket membership for a new shock point. In fact that constant will be 1 in this case.

              

  

 

   

   





 

  





A.2.2 Query of type 2: Ball cover Given a shock, we will need to find out if its associated contact sphere is empty. To do so we need to identify all buckets intersected by the sphere, or a contrario the minimum set of neighboring buckets needed to entirely cover the sphere. Determining which buckets are neighbors of a given bucket can be performed in a number of ways. We may for example again use the 3D look-up table provided by the grid. As an approximation we may simply consider the minimum bounding box containing the ball and walk through it to identify all “internal” grid points, with respect to that box. Along the way we simply collect all encountered bucket labels at grid points. 2 Having collected all the necessary bucket labels to cover the domain of the ball in space we are ready to test the validity of the shock. To do so we will compare this shock with the generators in each of the identified bucket.

  

2

There will be duplicates of labels. This is not a problem: when we process/visit a bucket we will set a flag, so that we do not re-visit wastefully.

174

An alternative is to have pre-built bucket neighboring relationships, i.e., for each bucket know precisely its direct neighbors. Since our buckets are boxes by construction, we only need to know neighbors on each of the six faces. Then, we can grow our domain of investigation outward with respect to the initial “central” bucket in which the shock is located, seeking new sources which may invalidate this shock. Note that, if the bucket which contains the shock is itself entirely contained with the contact sphere (as a function of the associated radius), then we can safely rule-out this shock without further tests, since our buckets all contain a number of generators much greater than the one giving rise to the shock (i.e., 2, 3 or 4).

A.3 Pseudocode The pseudocode for the computation of buckets in 3 hierarchical layers is presented in box 6.

175

 

Algorithm 6 Building buckets from bins. for generators do  Add a generator to its corresponding bin using the floor operation: will contain a list of generator labels. end for











   

       

— each bin

 for     do Fill-in -bucket with all bins having floor coordinate  ; if the number of generators is below the target    , increment    and keep filling-in; otherwise, initiate the filling of a new bucket,  with and  . end for  -buckets each containing on average  generators. We now have  for each of the -bucket do









 







 

   



     do for  Fill-in -bucket with all bins having floor coordinate  , i.e.,  ; if the number of keep filling-in; otherwise, initiate the generators is below the target   , increment   and  filling of a new bucket, with and   . end for The result is a partition along the axis of the -bucket; goto next -bucket. end for  We now have -buckets each containing on average  generators.  for each of the -bucket do







  





 













 

     

     do for  Fill-in -bucket with all bins having floor coordinate  , i.e.,  ; if number of generators is below the target  , increment  and keep filling-in; otherwise, initiate the filling of a     new bucket, with and   . end for The result is a partition along the axis of the -bucket; goto next -bucket. end for  We finally have -buckets, each containing on average  sources.

 

 











Appendix B

Dynamics of creation of shock sheets for polygonal generators We study in the following, the dynamics of the creation of the shock sheets given by a vector field which is the gradient,   , of the radius,  , of the associated maximal contact spheres. We can study these dynamics by tracing values of the levels set for different values of  , i.e., such that the pair

 . The following observation summarizes the of distance functions collide in space: dynamics of creation of the six types of shock sheets.

   

  

Observation B.1 (Shock sheet dynamics (generic configurations) ) The shock sheet dynamics describing the creation of the six types of quadrics in Theorem 7.2.1 are such that the shock source is located as the midpoint of the line (segment) of closest approach between the pair of gen

erators, , and the locus of intersection of the corresponding pair of waves at latter time is either a quartic, a conic or a line segment, as detailed below. (a) CC case: The initial shock source occurs at the “flat” of the saddle-shaped bisector, from which the sheet expands radially as successive quartics whose layout is given by the intercept of two cylindrical waves for a given radius value. (b) CS case: The initial shock source occurs at mid-distance between the point generator and the closest point on the line generator; it corresponds to the apex of a parabola as a vertical shock, the sheet expands radially as successive cross-section of the shock sheet. From this quartics whose layout is given by the intercept of a cylindrical and a spherical waves for a given radius value.  (c) CP case: The initial collision occurs at a point where either (i) the line pierces the plane 

, or (ii) at the midpoint between the vertex of which is closest to

and

itself. The shock sheet is traced from this shock source by ellipses, i.e., conics at the intercept of a planar and cylindrical waves. The ellipses are of augmenting eccentricity according to , the angle      between the line segment director,    , and the plane normal,  . (d) PS case: The initial collision between the plane and sphere waves takes place at the midpoint along a straight ray from the point generator to the plane. From this shock source, the shock wave is a sequence of increasing concentric circle tracing out in space the paraboloid of revolution, i.e., a sequence of conics at the intercept of the planar and spherical waves.

 

  



  



  

  





 

176

  











177

(e) PP case: The initial collision takes place at mid-distance for the line of closest approach between the two planes. This line necessarily has one of its end (footpoint) on either an edge or vertex of either polygonal generator. Then the two planar waves intersect in a line which moves away from the shock. (f) SS case: The shock point is the midpoint between the pair of point generators, from which the sheet expands radially as successive circles (conics) whose layout is given by the intercept of two spherical waves for a given radius value.

  

  

  

  

To identify shock sources, consider that any point of a shock sheet must be simultaneously

at equal distance from two generators, which gives us a first set of conditions to satisfy, i.e., where the distance to generator functions are any of the three possible ones given by equations (7.1), (7.2) and (7.3). In order to pick the particular point of a shock sheet which is its source we need one more set of conditions, namely one which minimizes the distance constraint. Consider the gradients

of each distance functions, i.e.,  . These are normal vector fields which indicate the  direction of propagation of wavefronts (from generators). Then, a necessary condition for the pair of equal distance functions to be at a minimum is for their vector product to vanish: 1

  



          Then, the two gradient vectors face each other, i.e.,  



  



. The geometry of this configuration indicates that the shock source is always at the midpoint of the line of closest approach between any pair of generators, i.e., along the unique line linking two generators such that their distance gradient are parallel and face each other. In other words, this line is simultaneously normal to both generators. The points on each generator at which this condition is verified are called foot

points:  and   . Hence, an alternative to directly identifying the is to first find

the pair of footpoints, one per generator, such that the line  is perpendicular to at and to at  [114]. We now consider the special forms the shockwave take for the generation of each of the six types of shock sheets, out of their respective shock source. For each case, we derive a simple configuration illustrative of the generic case. Unless otherwise indicated, we start from the same generic configurations used in the proof of Theorem 7.2.1. Note that the degree of the space curve resulting from the intersection of a pair of waves is obtained by Bezout’s theorem [38] (Theorem 7.3.1).  , (a) CC case: Consider the two line segments and in a special configuration where i.e., the skewness angle is maximized and equal to . Let us further rotate the system of two lines axes, respectively. Then, the parametric equations of so that they are aligned along the  and           the lines reduce to: and

, that is, the two lines are perpendicular at a distance from each other along the axis. Thus, the shock

 sheet is given as  . For this configuration, the pair of cylindrical waves   representing the distance to generator functions, have the following forms: 



   

  





                 

1











  



   

     

  

At an extremum of the radius function, its directional derivative in the tangent space to the shock sheet vanishes, which implies that the gradient of the distance functions are parallel to each other. Alternatively, we can introduce a regular parameterization of the shock sheet in terms of the radius function and compute its critical points. The result is then that at the critical points both gradients of the distance functions are simultaneously orthogonal to the tangential velocities of the sheet [188, pp.183–185] .

178

(a)

(b)

(c)

Figure B.1: Right hyperbolic paraboloid or “skew saddle” generated from two perpendicular and non-coplanar line segments. In (a) is illustrated how one of the two cylindrical wave generates the shock sheet into a 3D space curve of intersection, at a given time or radius of expansion. Four                . (c) Overlaying such such curves are shown in (b) for radius values: curves on the saddle-shaped shock sheet, initiated from the singularity of the gradient to the radius function, , at the     shock source. The radial expansion is illustrated by the few arrows.





  &     . The     shock source is located at the origin,     , i.e., and    from each line segments. For fixed values of   (i.e., the time at distance   as a quartic expanding to generate of initial shock) we get the trace of the shock at time  the saddle-like surface (Figure B.1). We obtain such traces by deriving a parameterization for the curves as follows. The radius, taken as a variable, must satisfy simultaneously the two cylindrical   &       & &   . Take the coordinate variable  as a parameter waves, i.e.:  , to obtain the following parametric equations for the coordinate variables:    ,        &   and . Then, transform these in the alternative parameterization, using     ,  .    &   and  & trigonometric formula, for ease of tracing:       , i.e., at time   (b) CS case: The     shock source is along the  axis at   &   and  .2 The cylindrical and spherical waves have the following form:   . For fixed values of    we get the trace of the shock sheet

   &   &    at time  as a quartic3 expanding to generate the gutter-like surface towards increasing and positive  values (Figure B.2).   &  &    (c) CP case: The cylindrical and planar waves have the following form:     &   (    and     . For fixed values of we get the trace  & 1    (in implicit form; of the shock sheet as successive ellipses:  &      Figure B.3). (d) PS case: The initial collision between the plane and sphere waves takes place along a straight           & ray from the point generator to the plane (at half distance), i.e.:  











 



 





 



 



 

 



 

!

2



  

"

"

# %$'&)(+* (+,.- /0&)12* 12,3- 3/0&54* 4,3- 76 8:9;=< &)(* (+,?>-@/ 8:AB;=< &)12* 12,?>C-?/ 8:D;=< &54E* 4,?>C-GF IH 

Note that we can always compute this mid-distance exactly using equation (7.2): 

3









 







This curve is closely related to Viviani’s curve of intersection of a cylinder and sphere [102, 8.6, pp. 201–202].



179

(b)

(a)

            

   

  

Figure B.2: (a) Parabolic cylinder or “gutter” generated from a line segment and a sphere/point.     . Parameterization used: , and . (b) 



(a)



,





 





.

(b) .







,



 







 

(c)

 



,



  

 

Elliptic cones generated from a line segment along the axis (in red),        , and a plane with normal,  (in green), making an angle 

                    . In blue are shown

   with the horizontal:

Figure B.3: 













         

the elliptic shocks sweeping the sheet as a function of time (radius). In (a) the normal and line coincide and the ellipses reduce to circles. Parameterization used: , and   . 

 



     

180

(a)

(b)



Figure B.4: (a) Paraboloid of revolution generated from a plane and point. In blue are shown the circular shocks sweeping the sheet as a function of time (radius). (b) In grey are an horizontal plane,  , and a another one, inclined at an angle   with some “shock ! respect !  ! to the ! vertical; ! . lines” sweeping the sheet — in blue — are shown for 





                  . For a later collision time,       , the two waves generated from each generator take the form:    and              . To trace out the  shock 













 







sheet through time, we either take or as the parameter , e.g.:  ,  and  . The gradient, , describes a radial expansion of the shock wave generating the sheet oriented towards increasing and positive values (Figure B.4.(a)). (e) PP case: Consider the two waves generated by an horizontal plane and a plane inclined at an an  with respect to the vertical (Figure ??), i.e.. such that:           gle               : . Then the two planar and        . To trace out the waves are described by:   and      , shock sheet in time, we take the independent variable as the parameter , i.e., here :     and  , where   is the sign of the angle  with respect to the   vertical (i.e., the normal of the horizontal plane). For any time after the initial collision, the   shock (Figure B.4.(b)).4 ,The two planar waves intersect in a line which moves away from the direction vector (tangent) to this line of intersection is given by the vector-product of the normals                . The bisecof each plane, i.e.:   trix of the two normal vectors gives the direction of propagation of the flow in the sheet, i.e., how the above line of intersection moves in space. This is a fixed direction in the plane of the normals (perpendicularly to the line of intersection). (f) SS case: Let the two point generators be at distance along the  axis, on each side of the origin:    and  .5 The two waves generated by these points take the following        . We already have from form:    and   



  

     













        





   

      

4





    

         

      

 







 

       



/   



  



"



"



 

  







      " !  #$! % " ! ' &)*,( +.- , i.e., 

"

#

#

#

4 4 4 4 4 We consider only the generic case here, i.e., when the two planes are not parallel. NB: At degree, the two planes are parallel (pointing in the same direction) and do not meet. At degrees, they are facing each other and the corresponding symmetry sheet is created spontaneously (with infinite speed). 5 The shock sheet is simply , (N.B.: independent of ).

-0 /

1324 * /

2

181



 





the equation for the shock sheet that the coordinate is fixed, i.e.: , thus we may take (or ) as a parameter , to obtain the following parametric the   equations to trace out the    intersections

,    of  spheres as a function of  : ,  , and . Since we have an initial collision at the origin. For varying   , we get concentric circles (around the axis) in the plane starting at the origin (Figure 7.4.(c)).





 

      















 

Bibliography [1] Shape Grabber 3D scanning systems, Inc. www.shapegrabber.com. [2] Andrew Adamatzky. Identification of cellular automata. Taylor & Francis, London, 1994. [3] Nina Amenta, Marsahll Bern, and Manolis Kamvysselis. A new Voronoi-based surface reconstruction algorithm. Computer Graphics (SIGGRAPH ’98), pages 415–421, July 1998. [4] Nina Amenta and Marshall Bern. Surface reconstruction by Voronoi filtering. Discrete and Computational Geometry, 22:481–504, 1999. [5] Nina Amenta, Sunghee Choi, and Ravi Kolluri. The power crust, unions of balls, and the medial axis transform. International Journal of Computational Geometry and its Applications, 19(2-3):127–153, 2001. [6] Alexis Angelidis and Marie-Paule Cani. Adaptive implicit modeling using subdivision curves and surfaces as skeletons. In Proceedings of the Seventh ACM Symposium on Solid Modeling and Applications, pages 45–52, Saarbr¨ucken, Germany, 2002. [7] Alan Arehart, Luc Vincent, and Benjamin B. Kimia. Mathematical Morphology: The Hamilton-Jacobi connection. In Proceedings of the IEEE International Conference on Computer Vision, pages 215–219, Berlin, Germany, May 1993. [8] Cecil G. Armstrong, S.J. Bridgett, R.I. Donaghy, R.W. McCune, R.M. McKeag, and D.J. Robinson. Techniques for interactive and automatic idealisation of CAD models. In Numerical Grid Generation in Computational Field Simulations, pages 643–662, July 1998. [9] Rudolf Arnheim. Art and Visual Perception: A Psychology of the Creative Eye. University of California Press, Berkeley, CA 94720, U.S.A., 1974. New version; expanded and revised edition of the 1954 original. 508 pages. [10] Vladimir I. Arnold. Mathematical Methods of Classical Mechanics, volume 60 of Graduate Texts in Mathematics. Springer Verlag, second edition, 1989. [11] Vladimir I. Arnold. Singularities of Caustics and Wave Fronts, volume 62 of Mathematics and its Applications. Soviet series. Kluwer Academic Publishers, Boston, MA, U.S.A., 1990. [12] Vladimir I. Arnold. Theory of Singularities and its Applications. Lezione Fermiane. Cambridge University Press, Cambridge, UK, 1991. 182

183 [13] Dominique Attali.  –regular shape reconstruction from unorganized points. Computational Geometry: Theory and Applications, 10(4):239–247, July 1998. [14] Dominique Attali and Annick Montanvert. Computing and simplifying 2D and 3D continuous skeletons. Computer Vision and Image Understanding, 67(3):261–273, 1997. [15] Franz Aurenhammer. Power diagrams: Properties, algorithms, and applications. SIAM Journal on Computing, 16(1):78–96, 1987. [16] Franz Aurenhammer. Voronoi diagrams — A survey of a fundamental geometric data structure. ACM Computing Surveys, 23(3):345–405, September 1991. [17] Franz Aurenhammer and Rolf Klein. Voronoi diagrams. In J.-R. Sack and J. Urrutia, editors, Handbook of Computational Geometry, chapter 5, pages 201–290. Elsevier Science, Amsterdam, the Netherlands, 2000. [18] Richard F. W. Bader. Atoms in Molecules — A Quantum Theory, volume 22 of International Series of Monographs on Chemistry. Clarendon Press, Oxford, UK, 1990. [19] Augustin Balliccioni. Coordonn´ees Barycentriques et G´eom´etrie; Applications: T´etra`edre, Surfaces et Lignes Remarquables Associ´ees. Math´ematiques Sup´erieures, Math´ematiques Sp´eciales, Pr´eparation aux Grandes Ecoles. Claude Hermant, Paris, France, 1950+. 322 pages. [20] Frederic Ban´egas, Marc Jaeger, Dominique Michelucci, and M. Roelens. The ellipsoidal skeleton in medical applications. In Proceedings of the Sixth ACM Symposium on Solid Modeling and Applications, pages 30–38, Ann Arbor, Michigan, USA, June 2001. [21] Jorgen Bang-Jensen and Gregory Gutin. Digraphs: Theory, Algorithms, and Applications. Monographs in Mathematics (SMM). Springer, 2001. [22] C. Bradford Barber, David P. Dobkin, and Hannu T. Huhdanpaa. The quickhull algorithm for convex hulls. ACM Transactions on Mathematical Software, 22(4):469–483, December 1996. [23] Gill Barequet, Christian A. Duncan, and Subodh Kumar. RSVP: A geometric toolkit for controlled repair of solid models. IEEE Transactions on Visualization and Computer Graphics, 4(2):162–177, April–June 1998. [24] Claude Berge. Hypergraphs. Combinatorics of finite sets, volume 45. North-Holland Mathematical Library, 1989. [25] Marcel Berger. Geometry. Universitext. Springer-Verlag, Berlin, 1987. Translation by M.Cole and S.Levy of the French 1977 edition. 2 volumes. [26] Thomas O. Binford. Generalized cylinder representation. In Encyclopedia of Artificial Intelligence, pages 321–323. John Wiley & Sons, 1987.

184

[27] Rob Blanding, Cole Brooking, Duane Storti, and Mark Ganter. A skeletal-based solid editor. In Proceedings of the Fifth ACM Symposium on Solid Modeling and Applications, pages 141– 154, Atlanta, GA, May 1999. [28] Rob Blanding, George Turkiyyah, Duane Storti, and Mark Ganter. Skeleton-based threedimensional geometric morphing. Journal of Computational Geometry: Theory and Applications, 15(1–3):129–148, February 2000. [29] Michael Blane, Zhibin Lei, Hakan Civi, and David B. Cooper. The 3L algorithm for fitting implicit polynomial curves and surfaces to data. IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(3):298–313, March 2000. [30] Jules Bloomenthal and Chek Lim. Skeletal methods of shape manipulation. In IEEE Proceedings of International Conference on Shape Modeling and Applications, pages 44–47, Aizu-Wakamatsu, Japan, March 1999. [31] Harry Blum. An associative machine for dealing with the visual field and some of its biological implications. In E. E. Bernard and M. R. Kare, editors, Biological Prototypes and  Annual Synthetic Systems, volume 1, pages 244–260, NY, 1962. Plenum Press. Proc. of Bionics Symposium, held at Cornell University, 1961. [32] Harry Blum. A machine for performing visual recognition by use of antenna-propagation concepts. Institute of Radio Engineers, Wescon Convention Record, 6, part 4, session 6.4, August 1962. Western Electronics Show and Convention, held in Los Angeles, CA, U.S.A. [33] Harry Blum. A transformation for extracting new descriptors of shape. In W. Wathen-Dunn, editor, Models for the Perception of Speech and Visual Form, pages 362–380. M.I.T. Press, Cambridge, MA, U.S.A., 1967. Proceedings of a Symposium held in Boston, MA, U.S.A.; November 1964. [34] Harry Blum. Biological shape and visual science. Journal of Theoretical Biology, 38:205– 287, 1973. [35] Harry Blum. A geometry for biology. In Annals of the New York Academy of Sciences (Mathematical Analysis of Fundamental Biological Phenomena), volume 231, pages 19–30, April 1974. Conference held on April 2, 1973. [36] Harry Blum. 3–D symmetric axis coordinates: An overview and prospectus. In NSF Workshop on Representations of Three Dimensional Objects, University of Pennsylvania, May 1979. NSF. Cited in [173]. [37] Harry Blum and Roger N. Nagel. Shape description using weighted symmetric axis features. Pattern Recognition, 10(3):167–180, 1978. [38] Wolfgang Boehm and Hartmut Prautzsch. Geometric concepts for geometric design. A.K. Peters, Wellesley, MA, USA, 1994.

185

[39] Ilya A. Bogaevsky. Metamorphoses of singularities of minimum functions and bifurcations of shock waves of the Burgers equation with vanishing viscosity. St. Petersburg Mathematical Journal, 1(4):807–823, 1990. [40] Ilya A. Bogaevsky. Singularities of viscosity solutions of Hamilton–Jacobi equation. In Singularity Theory and Differential Equations, Resarch Institute of Mathematical Science, Kyoto University, Japan, February 1999. [41] Ilya A. Bogaevsky. Singularities of linear waves in plane and space. In Preprints, number NI00021–SGT. Isaac Newton Institute for Mathematical Sciences, UK, 2000. [42] Jean-Daniel Boissonnat. Geometric structures for three-dimensional shape representation. ACM Transactions on Graphics, 3(4):266–286, October 1984. [43] Jean-Daniel Boissonnat and Fr´ed´eric Cazals. Smooth surface reconstruction via natural neighbour interpolation of distance functions. Computational Geometry, 22:185–203, 2002. [44] Jean-Daniel Boissonnat, O. Devillers, J. Duquesne, and M. Yvinec. Computing Connolly surfaces. Journal of Molecular Graphics, 12(1):61–62, 1994. [45] C. Paul Bonnington and Charles H.C. Little. The Foundations of Topological Graph Theory. Springer-Verlag, 1995. 178 pages. [46] Gunilla Borgefors, Ingela Nystr¨om, and Gabriella Sanniti di Baja. Computing skeletons in three dimensions. Pattern Recognition, 32(7):1225–1236, July 1999. [47] Gunilla Borgefors, Giuliana Ramella, and Gabriella Sanniti di Baja. Hierarchical decomposition of multiscale skeletons. IEEE Transactions on Pattern Analysis and Machine Intelligence, 23(11):1296–1312, November 2001. [48] Sylvain Bouix and Kaleem Siddiqi. Divergence-based medial surfaces. In Sixth European Conference on Computer Vision, Trinity College, Dublin, Ireland, June 2000. [49] Georges Bouligand. Introduction a` la G´eom´etrie Infinit´esimale Directe. Vuibert, Paris, France, 1932. [50] Michael Brady and Haruo Asada. Smoothed local symmetries and their implementation. Int. Jour. of Robotics Research, 3(3):36–61, Fall 1984. [51] Jonathan Brandt. Convergence and continuity criteria for discrete approximations of the continuous planar skeleton. CVGIP: Image Understanding, 59(1):116–124, 1994. [52] Jonathan Brandt and V. Ralph Algazi. Continuous skeleton computation by Voronoi diagram. CVGIP: Image Understanding, 55(3):329–338, 1992. [53] Roger W. Brockett and Petros Maragos. Evolution equations for continuous scale morphology. IEEE transactions on Signal Processing, 42:3377–3386, 1994.

186

[54] J. William Bruce. Wavefronts and parallels in Euclidean space. In Mathematical Proceedings of the Cambridge Philosophical Society, volume 93, pages 323–333, 1983. [55] J. William Bruce and Peter J. Giblin. Curves and Singularities: A Geometrical Introduction  to Singularity Theory. Cambridge University Press, Cambridge, U.K., edition, 1992. [56] J. William Bruce, Peter J. Giblin, and Chris G. Gibson. Symmetry sets. Proceedings of the Royal Society of Edinburgh, 101A:163–186, 1985. [57] William L. Burke. Applied Differential Geometry. Cambridge University Press, Cambridge. UK, 1985. 414 pages. [58] Lorenzo Calabi. A study of the skeletal graph. Research report AFCRL-68-0498, Air Force Cambridge Research Laboratories, Bedford, Mass., U.S.A., August 1968. Part II of the Final Report “Study of the Mathematical Foundations of the Medial Axis Transformation”. [59] Lorenzo Calabi and William E. Hartnett. Shape recognition, prairie fires, convex deficiencies and skeletons. American Mathematical Monthly, 75:335–342, April 1968. [60] John Case, D. S. Rajan, and A. M. Shende. Lattice computers for approximating Euclidean space. Journal of the ACM, 48(1):110–144, January 2001. [61] Arthur Cayley. On contour and slope lines. The London, Edinburgh and Dublin Philosophical Magazine and Journal of Science, 18:264–268, October 1859. [62] Michael S. Chapman and Michael L. Connolly. Molecular Surfaces: Calculations, Uses and Representations, volume F: Crystallography of Biological Macromolecules of International Tables for Crystallography, chapter 22.1.2. Kluwer, International Union of Crystallography, Chester, UK, July 2001. [63] Edga Chavez, Gonzalo Navarro, Ricardo Baeza-Yates, and Jose Luis Marroquin. Searching in metric spaces. ACM Computing Surveys, 33(3):273–321, September 2001. [64] Hyeong In Choi, Chang Yong Hana, Hwan Pyo Moona, Kyeong Hah Roha, and Nam-Sook Wee. Medial axis transform and offset curves by Minkowski Pythagorean hodograph curves. Computer-Aided Design, 31(1):59–72, January 1999. [65] Hyeong In Choi and Doo Seok Lee. Rational parametrization of canal surface by 4– dimensional Minkowski Pythagorean hodograph curves. In Geometric Modeling and Processing, pages 301–309, Hong Kong, April 2000. IEEE Computer Society. [66] Jen-Hui Chuang, Chi-Hao Tsai, and Min-Chi Ko. Skeletonization of three-dimensional object using generalized potential field. IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(11):1241–1251, November 2000. [67] Michael L. Connolly. Shape distributions of protein topography. Biopolymers, 32(9):1215– 1236, 1992.

187

[68] John H. Conway and N.J.A. Sloan. Sphere Packings, Lattices and Groups, volume 290 of Grundlehren der mathematischen Wissenschaften. Springer, 3rd edition, 1998. [69] Julian Lowell Coolidge. A History of Geometrical Methods. Oxford University Press, Oxford, U.K., 1940. [70] Julian Lowell Coolidge. A Treatise on the Circle and the Sphere. Chelsea, Bronx, N.Y., 1971. Reprint of the 1916 ed. 602 pages. [71] David A. Cox, John B. Little, and Don O’Shea. Ideals, Varieties, and Algorithms. SpringerVerlag, NY, 2nd edition, 1996. 536 pages. [72] Olivier Cuisenaire. Distance Transformations: Fast Algorithms and Applications to Medical Image Processing. PhD thesis, Universit´e Catholique de Louvain, Louvain-la-Neuve, Belgium, October 1999. [73] Olivier Cuisenaire and Benoit Macq. Fast Euclidean distance transformation by propagation using multiple neighborhoods. Computer vision and Image understanding, 76(2):163–172, November 1999. [74] Timothy Culver, John Keyser, and Dinesh Manocha. Accurate computation of the medial axis  Symposium on Solid Modeling and Applications, pages of a polyhedron. In Proc. of the 179–190, Ann Arbor, MI, USA, June 1999. ACM. [75] Christopher M. Cyr and Benjamin B. Kimia. 3D object recognition using shape similarity based aspect graph. In Proc. of the  International Conference on Computer Vision, pages 254–261, Vancouver, Canada, July 2001. IEEE Computer Society. [76] Silvester Czanner, Roman Durikovic, and H. Inoue. Growth simulation of human embryo brain. In IEEE 17th Spring Conference on Computer Graphics, pages 139–146, Budmerice, Slovakia, April 2001. [77] Per-Erik Danielsson. Euclidean distance mapping. Computer Graphics and Image Processing, 14:227–248, 1980. [78] Luc Devroye. Lecture Notes on Bucket Algorithms, volume 6 of Progress in Computer Science. Birkhauser, Boston, MA, USA, 1986. 146 pages. [79] Tamal K. Dey and W. Zhao. Approximate medial axis as a Voronoi subcomplex. In Proc. 7th ACM Symposium on Solid Modeling and Applications, pages 356–366, Germany, June 2002. [80] Andy R. Dill, Martin D. Levine, and Peter B. Noble. Multiple resolution skeletons. IEEE Transactions on Pattern Analysis and Machine Intelligence, 9(4):495–504, July 1987. [81] Debasish Dutta and Christoph M. Hoffmann. On the skeleton of simple CSG objects. Journal of Mechanical Design, 115:87–94, March 1993.

188

[82] Herbert Edelsbrunner. Geometry and Topology for Mesh Generation, volume 6 of Cambridge Monographs on Applied and Computational Mathematics. Cambridge University Press, UK, 2001. 177 pages. [83] Herbert Edelsbrunner and E. P. M¨ucke. Three-dimensional alpha shapes. ACM Transactions on Graphics, 13(1):43–72, January 1994.



[84] Hinnik Eggers. Two fast Euclidean distance transformations in based on sufficient propagation. Computer Vision and Image Understanding, 69(1):106–116, 1998. [85] Gershon Elber and Myung-Soo Kim. Computing rational bisectors. IEEE Computer Graphics and Applications,, 19(6), Nov./Dec. 1999. [86] Michal Etzion and Ari Rappoport. Computing the Voronoi diagram of a 3-D polyhedron by separate computation of its symbolic and geometric parts. In Proceedings of the Fifth Symposium on Solid Modeling and Applications, Ann Arbor, Michigan, June 1999. ACM/Siggraph. [87] Gerald Farin. Curves and Surfaces for Computer-Aided Geometric Design — A Practical Guide. The Morgan Kaufmann Series in Computer Graphics and Geometric Modeling. Mor edition, 2002. gan Kaufmann Publishers (Academic Press), [88] Eric Ferley, Marie-Paule Gascuel, and Dominique Attali. Skeletal reconstruction of branching shapes. Computer Graphics Forum, 16(5):283–293, December 1997. [89] Paul W. Finn and Lydia E. Kavraki. Computational approaches to drug design. Algorithmica, 25:347–371, 1999. [90] Martin A. Fischler and P. Barrett. An iconic transform for sketch completion and shape abstraction. Computer Graphics and Image Processing, 13:334–360, 1980. [91] Bill Fleming. 3D Modeling & Surfacing. Morgan Kaufmann, 1999. [92] John S. Gero. Representation and reasoning about shapes: Cognitive and computational studies in visual reasoning in design. In C. Freksa and D. Marks, editors, Spatial Information Theory, volume 1661 of Lecture Notes in Computer Science, pages 315–330. Springer, 1999. [93] Peter J. Giblin and Benjamin B. Kimia. On the intrinsic reconstruction of shape from its symmetries. In Proc. of CVPR, pages 79–84. IEEE Computer Society, 1998. [94] Peter J. Giblin and Benjamin B. Kimia. On the local form and transitions of symmetry sets,  and medial axes, and shocks in 2D. In Proc. of the International Conference on Computer Vision, volume 1, pages 385–391, Corfu, Greece, September 1999. IEEE Computer Society. [95] Peter J. Giblin and Benjamin B. Kimia. On the local form of symmetry sets, and medial axes, and shocks in 3D. In Proceedings of the Conference on Computer Vision and Pattern Recognition, pages 566–573, Hilton Head Island, South Carolina, June 2000. IEEE Computer Society.

189

[96] Peter J. Giblin and Benjamin B. Kimia. Transitions of the 3D medial axis under a oneparameter family of deformations. In Computer Vision — ECCV, number LNCS 2351 — Part II in Lecture Notes in Computer Science, pages 719–734, Copenhagen, Denmark, May 2002. Springer. [97] Peter J. Giblin and Benjamin B. Kimia. A formal classification of 3D medial axis points and their local geometry. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2003+. Submitted; under revision. [98] Jose Gomes and Olivier Faugeras. Reconciling distance functions and level sets. Journal of Visual Communication and Image Representation, 11:209–223, 2000. [99] A. W. Goodman. On a characterization of analytic functions. American Mathematical Monthly, 71:265–267, March 1964. [100] A. W. Goodman. A partial differential equation and parallel plane curves. American Mathematical Monthly, 71:257–264, March 1964.



: Theorems, examples, [101] Janko Gravner and David Griffeath. Cellular automaton growth on and problems. Advances in Applied Mathematics, 21:241–304, 1998. [102] Alfred Gray. Modern Differential Geometry of Curves and Surfaces with Mathematica. CRC Press, Boca Raton, FL, 2nd edition, 1997. [103] Jonathan Greer. Three-dimensional pattern recognition: An approach to automated interpretation of electron density maps of proteins. Journal of Molecular Biology, 82:279–301, 1974. [104] Jonathan Greer. Computer skeletonization and automatic electron density map analysis. Methods in Enzymology, 115:206–224, November 1985. [105] Joachim Gudmundsson, Mikael Hammar, and Marc van Kreveld. Higher order Delaunay triangulations. Computational Geometry, 23:85–98, 2002. [106] Andre Gueziec. Surface simplification with variable tolerance. In 2nd Annual International Symposium on Medical Robotics and Computer Assisted Surgery, pages 132–139, 1995. [107] Leonidas J. Guibas, Christopher Holleman, and Lydia E. Kavraki. A probabilistic roadmap planner for flexible objects with a workspace medial axis based sampling approach. In Proc. Intl. Conf. Intelligent Robots and Systems, pages 254–260, Kyongju, Korea, 1999. IEEE/RSJ. [108] Peter L. Hallinan, Gaile G. Gordon, Alan L. Yuille, Peter Giblin, and David Mumford. Twoand Three-Dimensional Patterns of the Face. A. K. Peters, 1999. 262 pages. [109] Martin Held. On the computational geometry of pocket machining. Number 500 in Lecture Notes in Computer Science. Springer-Verlag, Berlin, 1991. 178 pages.

190

[110] Masayuki Hisada, Alexander G. Belyaev, and Tosiyasu L. Kunii. A skeleton-based approach for detection of perceptually salient features on polygonal surfaces. Computer Graphics Forum, 21(4), November 2002. [111] Christoph M. Hoffmann. Geometric and Solid Modeling — An Introduction. Series in Computer Graphics and Geometric Modeling. Morgan Kaufmann, San Mateo, CA, 1989. 338 pages. [112] Christoph M. Hoffmann. A dimensionality paradigm for surface interrogation. CAGD, 7:517– 532, 1990. [113] Christoph M. Hoffmann. Computer vision, descriptive geometry, and classical mechanics. In B. Falcidieno and I. Herman, editors, Proceedings of the Eurographics Workshop in Computer Graphics and Mathematics, pages 229–244. Springer-Verlag, Genova, Italy, October 1991. [114] Christoph M. Hoffmann. How to construct the skeleton of CSG objects. In A. Bowyer and J. Davenport, editors, The Mathematics of Surfaces IV, pages 421–438. Oxford University Press, Oxford, UK, 1994. [115] Christoph M. Hoffmann and Jaroslaw R. Rossignac. A road map to solid modeling. IEEE Trans. on Visualization and Computer Graphics, 2(1):3–10, March 1996. [116] Christopher Holleman and Lydia E. Kavraki. A framework for using the workspace medial axis in PRM planners. In Proceedings of the International Conference on Robotics and Automation, pages 1408–1413, San Fransisco, CA, USA, 2000. [117] John Hamal Hubbard and Barbara Burke Hubbard. Vector Calculus, Linear Algebra, and Differential Forms: A Unified Approach. Prentice Hall, 2nd edition, 2002. [118] Daniel P. Huttenlocher, Klara Kedem, and Micha Sharir. The upper envelope of Voronoi surfaces and its applications. Discrete and Computational Geometry, 9:267–291, 1993. [119] Vincent Icke and R. van de Weygaert. The galaxy distribution as a Voronoi foam. Quaterly Journal of the Royal Astronomical Society, 32(2):85–112, 1991. [120] Thomas R. Ioerger and Jim C. Sacchettini. Automatic modeling of protein backbones in electron density maps via prediction of C-alpha coordinates. Acta Crystallographica, D58(12):2043–2054, 2002. [121] Bruno Jobard, Gordon Erlebacher, and M. Yousuff Hussaini. Lagrangian–Eulerian advection of noise and dye textures for unsteady flow visualization. IEEE Transactions on Visualization and Computer Graphics, 8(3):211–222, July–September 2002. [122] John K. Johnstone and C.-K. Shene. The representation of all hyperboloids of one sheet by two lines. Technical Report Report JHU 91/19, Johns Hopkins University, Dept. of Computer Science, Baltimore, Maryland, USA, July 1991. 26 pages.

191

[123] Pieter P. Jonker. Morphological operations on 3D and 4D images: From shape primitive detection to skeletonization. In Discrete Geometry for Computer Imagery, number 1953 in Lecture Notes in Computer Science, pages 371–391. Springer-Verlag, 2000. [124] Pieter P. Jonker. Skeletons in letters, 23(4):677–686, 2002.



dimensions using shape primitives. Pattern Recognition

[125] Pieter P. Jonker and A.M. Vossepoel. On skeletonization algorithms for 2, 3 ... N dimensional images. In D. Dori and A. Bruckstein, editors, Shape, Structure and Pattern Recognition, pages 71–80. World Scientific, Singapore, 1995. Proc. SSPR’94, Nahariya, Israel, Oct.4-6, 1994. [126] Benjamin B. Kimia. Toward a Computational Theory of Shape. PhD thesis, McGill University, Electrical Engineering Dept., Montreal, Canada, January 1991. 171 pages. [127] Benjamin B. Kimia. Content-based retrieval of images based on shape. In Vittorio Castelli and Larry Bergman, editors, Image Databases, Search and Retrieval of Digital Imagery, pages 345–372. Wiley Interscience, 2002. [128] Benjamin B. Kimia and Frederic F. Leymarie. Symmetry-based representation of volumetric imaging. In International Conference on Image Processing, volume 2, pages 581–584, Greece, October 2001. IEEE Computer Society. [129] Benjamin B. Kimia, Allen R. Tannebaum, and Steven W. Zucker. Toward a computational theory of shape: An overview. In Proc. of the First European Conf. on Computer Vision (ECCV), pages 402–407, Antibes, France, 1990. [130] Benjamin B. Kimia, Allen R. Tannenbaum, and Steven W. Zucker. Entropy scale-space. In C. Arcelli, L.P. Cordella, and G. S. di Baja, editors, Proceedings of the International Workshop on Visual Shape, pages 333–344, Capri, Italy, 1992. IAPR, Plenum Press. Conference held in May 1991. [131] Benjamin B. Kimia, Allen R. Tannenbaum, and Steven W. Zucker. Exploring the shape manifold: The role of conservation laws. In Shape In Picture: Mathematical Description of Shape in Grey-level Images, volume 126 of NATO ASI Series F, pages 601–620, Driebergen, the Netherlands, September 1992. Springer-Verlag. [132] Benjamin B. Kimia, Allen R. Tannenbaum, and Steven W. Zucker. On the evolution of curves via a function of curvature. I. The classical case. Journal of Math. An. Ap., 163(2):438–458, January 1992. [133] Benjamin B. Kimia, Allen R. Tannenbaum, and Steven W. Zucker. On the shape triangle. In C. Arcelli, L.P. Cordella, and G. Sanniti di Baja, editors, Aspects of Visual Form Processing, 2nd International Workshop on Visual Form, pages 307–323, Capri, Italy, May-June 1994. World Scientific.

192

[134] Benjamin B. Kimia, Allen R. Tannenbaum, and Steven W. Zucker. Shapes, shocks, and deformations. International Journal of Computer Vision, 15:189–224, 1995.



[135] Victor Klee. On the complexity of the -dimensional Voronoi diagrams. Archiv. de Mathematik, 34:75–80, 1980. [136] John Christopher Kotelly. A mathematical model of Blum’s theory of pattern recognition. Research report AFCRL-63-164, Air Force Cambridge Research Laboratories, Bedford, Mass., U.S.A., April 1963. [137] Richard Kunze, Franz-Erich Wolter, and Thomas Rausch. Geodesic Voronoi diagrams on parametric surfaces. In Proceedings of Computer Graphics International (CGI’97), pages 230–237. IEEE Computer Society, June 1997. [138] Louisa Lam, Seong-Whan Lee, and Ching Y. Suen. Thinning methodologies — A comprehensive survey. IEEE Transactions on Pattern Analysis and Machine Intelligence, 14(9):869– 885, September 1992. [139] Longin Jan Latecki, Rolf Lak¨amper, and Ulrich Eckhardt. Shape descriptors for non-rigid shapes with a single closed contour. In Computer Vision and Pattern Recognition (CVPR’00), volume 1, pages 1424–1429, Hilton Head, South Carolina, USA, June 2000. IEEE Computer Society. [140] Francis Lazarus, Sabine Coquillart, and Pierre Jancene. Axial deformations: An intuitive deformation technique. Computer Aided Design, 26(8):607–613, August 1994. [141] Francis Lazarus and Anne Verroust. Metamorphosis of cylinder–like objects. Journal of Visualization and Computer Animation, 8(3):131–146, July-Sept. 1997. [142] Marc Levoy et al. The digital Michelangelo project: 3D scanning of large statues. In Proc. Siggraph 2000, pages 131–144. ACM, July 2000. [143] Robert H. Lewis and Stephen Bridgett. Conic tangency equations and Apollonius problems in biochemistry and pharmacology. Mathematics and Computers in Simulation, 61(2):101–114, January 2003. [144] Frederic Leymarie and Martin D. Levine. Fast raster scan distance propagation on the discrete rectangular lattice. Computer Vision, Graphics and Image Processing – Image Uunderstanding, 55(1):84–94, 1992. [145] Frederic Leymarie and Martin D. Levine. Simulating the grassfire transform using an active contour model. IEEE Transactions on Pattern Analysis and Machine Intelligence, 14(1):56– 75, 1992. [146] Frederic Leymarie and Martin D. Levine. Tracking deformable objects in the plane using an active contour model. IEEE Transactions on Pattern Analysis and Machine Intelligence, 15(6):617–634, June 1993.

193

[147] Frederic F. Leymarie et al. The SHAPE Lab: New technology and software for archaeologists. In Computing Archaeology for Understanding the Past (CAA 2000), BAR International Series 931, pages 79–89. Archaeopress, Oxford, UK, 2001. [148] Frederic F. Leymarie and Benjamin B. Kimia. Discrete 3D wave propagation for computing morphological operations from surface patches and unorganized points. volume 18 of Computational Imaging and Vision, pages 351–360. Kluwer Academic, 2000. [149] Frederic F. Leymarie and Benjamin B. Kimia. The shock scaffold for representing 3D shape. In G. Sanniti di Baja C. Arcelli, L.P. Cordella, editor, Visual Form 2001, number LNCS 2059 in Lecture Notes in Computer Science, pages 216–229. Springer-Verlag, 2001. [150] Michael Leyton. Symmetry–curvature duality. Computer Vision, Graphics and Image Processing, 38:327–341, 1987. [151] Michael Leyton. A process grammar for shape. Artificial Intelligence Journal, 34(2):213– 247, 1988. [152] Michael Leyton. Symmetry, Causality, Mind. MIT press, Cambridge, MA, USA, 1992. 630 pages. [153] Michael Leyton. A Generative Theory of Shape. Number LNCS 2145 in Lecture Notes in Computer Science. Springer-Verlag, 2001. 554 pages. [154] Hongzhi Li. An integrated approach to protein backbone modeling. Master’s thesis, Queen’s University, Dept. of Computing and Information Science, Kingston, OT, Canada, October 2002. [155] Shuo Liang Lin, Ruth Nussinov, Daniel Fischer, and Haim J. Wolfson. Molecular surface representations by sparse critical points. Proteins: Structure, Function, and Genetics, 18:94– 101, 1994. [156] Alan Liu, Elizabeth Bullit, and Stephen M. Pizer. 3D/2D registration via skeletal near projective invariance in tubular objects. In W.M. Wells et al., editors, Proc. of MICCAI, number 1496 in Lecture Notes in Computer Science, pages 952–963. Springer-Verlag, October 1998. [157] Tyng-Luh Liu, Davi Geiger, and Robert V. Kohn. Representation and self–similarity of shapes. In Proceedings of the IEEE International Conference on Computer Vision, pages 1129–1138, Bombay, India, January 1998. [158] William E. Lorensen and Harvey E. Cline. Marching cubes. Computer Graphics (SIGGRAPH ’87), 21(4):163–169, 1987. [159] Cherng Min Ma and Milan Sonka. A fully parallel 3D thinning algorithm and its applications. Computer Vision and Image Understanding, 64(3):420–433, 1996. [160] Gr´egoire Malandain and Sara Fern´andez-Vidal. Euclidean skeletons. Image and Vision Computing, 16(5):317–327, 1998.

194

[161] Jean-Franc¸ ois Mangin, O. Coulon, and V. Frouin. Robust brain segmentation using histogram scale-space analysis and mathematical morphology. In W.M. Wells et al., editors, Proc. of MICCAI, number 1496 in Lecture Notes in Computer Science, pages 1230–1241. Springer– Verlag, October 1998. [162] Thomas M. Martinetz and K. J. Schulten. Topology representing networks. Neural Networks, 7(2):507–522, 1994. [163] James C. Maxwell. On hills and dales. The London, Edinburgh and Dublin Philosophical Magazine and Journal of Science, 40:421–425, December 1870. 4th series. [164] John W. Milnor. Morse theory. In Annals of Mathematics Studies, volume 51. Princeton University Press, 1963. 160 pages. [165] Ugo Montanari. A method for obtaining skeletons using a quasi-Euclidean distance. Journal of ACM, 15(4):600–624, 1968. [166] Ugo Montanari. Continuous skeletons from digitized images. Journal of ACM, 16(4):534– 549, 1969. [167] Hwan Pyo Moon. Minkowski Pythagorean hodographs. Computer Aided Geometric Design, 16(8):739–753, September 1999. [168] Richard J. Morris. The Liverpool Surface Modelling Package — A Toolkit for the Investigation and Presentation of Three Dimensional Geometry. University of Liverpool, 1998. Version 4.3. [169] Th. Motzkin. Sur quelques propri´et´es caract´eristiques des ensembles born´es non convexes. Atti Della Accademia Nazionale Dei Lincei, 21:773–779, 1935. [170] Th. Motzkin. Sur quelques propri´et´es caract´eristiques des ensembles convexes. Atti Della Accademia Nazionale Dei Lincei, 21:562–567, 1935. [171] E. M¨uller and J. Krames. Die Zyklographie. Franz Deuticke, Leipzig, Germany, 1929. [172] David B. Mumford. Mathematical theories of shape: Do they model perception? In Proc. Geometric Methods in Computer Vision Conference, volume SPIE–1570, pages 2–10. Society of Photo-optical and Ind. Engineers, 1991. [173] Lee R. Nackman. Curvature relations in three–dimensional symmetric axes. Computer Graphics and Image Processing, 20(1):43–57, September 1982. [174] Lee R. Nackman. Three-Dimensional Shape Description Using the Symmetric Axis Transform. PhD thesis, University of North Carolina, Computer Science Dept., Chapel Hill, NC, U.S.A., 1982. Published as TR81-016. [175] Lee R. Nackman. Two–dimensional critical point configuration graphs. IEEE Transactions on Pattern Analysis and Machine Intelligence, 6(4):442–450, July 1984.

195

[176] Lee R. Nackman and Stephen M. Pizer. Three-dimensional shape description using the symmetric axis transform I: Theory. IEEE Transactions on Pattern Analysis and Machine Intelligence, 7(2):187–202, 1985. [177] M. N¨af, Olaf K¨ubler, R. Kikinis, M.E. Shenton, and G´abor Sz´ekely. 3D Voronoi skeletons and their usage for the characterization and recognition of 3D organ shape. Computer Vision and Image Understanding, 66(2):147–161, 1997. [178] Robert Ogniewicz. A multiscale MAT from Voronoi diagrams: The skeleton-space and it application to shape description and decomposition. In C. Arcelli et al., editors, Aspects of Visual Form Processing, 2nd International Workshop on Visual Form, pages 430–439, Capri, Italy, May-June 1994. World Scientific. [179] Robert Ogniewicz and Markus Ilg. Skeletons with Euclidean metric and correct topology  International and their application in object recognition and document analysis. In Proc  Symposium on Spatial Data Handling, volume 1, pages 15–24, July 1990. [180] Atsuyuki Okabe, Barry Boots, Kokichi Sugihara, and Sung Nok Chiu. Spatial tessellations: Concepts and applications of Voronoi diagrams. Probability and Statistics. Wiley, NYC, 2nd edition, 2000. 671 pages. [181] Allison M. Okamura. Haptic Exploration of Unknown Objects. PhD thesis, Stanford University, Department of Mechanical Engineering, California, USA, June 2000. [182] Allison M. Okamura. Uniting haptic exploration and display. In Proc. of the 10th International Symposium on Robotics Research, Lorne, Victoria, Australia, November 2001. [183] Cornelius Van Overveld and Brian Wyvill. Polygon inflation for animated models: A method for the extrusion of arbitrary polygon meshes. Journal of Visualization and Computer Animation, 8(1):3–16, 1997. [184] Alan W. Paeth. Distance approximations and bounding polyhedra. In Graphics Gems V, pages 78–87. Academic Press, 1995. [185] David S. Paik, Christopher F. Beaulieu, R.B. Jeffrey, Geoffrey D. Rubin, and S. Napel. Automated flight path planning for virtual endoscopy. Medical Physics, 25(5):629–637, May 1998. [186] S.-H. Park and John S. Gero. Qualitative representation and reasoning about shapes. In Visual and Spatial Reasoning in Design, pages 55–68. Key Centre of Design Computing and Cognition, University of Sydney, Sydney, Australia, 1999. [187] David Parsons and John Canny. Geometric problems in molecular biology and robotics. In R. Altman, D. Brutlag, P. Karp, R. Lathrop, and D. Searls, editors, Proceedings of the Second International Conference on Intelligent Systems for Molecular Biology (ISMB-94), Menlo Park CA, August 1994. AAAI Press.

196

[188] Nicholas M. Patrikalakis and Takashi Maekawa. Shape Interrogation for Computer Aided Design and Manufacturing. Springer, 2002. 408 pages. [189] Martin Peternell. Geometric properties of bisector surfaces. Graphical Models, 62(3):202– 236, May 2000. [190] Martin Peternell and Helmut Pottmann. A Laguerre geometric approach to rational offsets. Computer Aided Geometric Design, 15(3):223–249, March 1998. [191] Sylvain Petitjean and Edmond Boyer. Regular and non-regular point sets: Properties and reconstruction. Computational Geometry, 19:101–126, 2001. [192] John L. Pfaltz. Surface networks. Geographical Analysis, 8(1):77–93, 1976. [193] Stephen M. Pizer, P. Thomas Fletcher, Andrew Thall, Martin Styner, Guido Gerig, and Sarang Joshi. Object models in multiscale intrinsic coordinates via -reps. Image and Vision Computing, 21(1):5–15, January 2003. [194] Stephen M. Pizer, D. Fritsch, Paul Yushkevich, V. Johnson, and E. Chaney. Segmentation, registration, and measurement of shape variation via image object shape. IEEE Transactions on Medical Imaging, 18:851–865, October 1999. [195] Helmut Pottmann and Martin Peternell. Applications of Laguerre geometry in CAGD. Computer Aided Geometric Design, 15(2):165–186, February 1998. [196] Helmut Pottmann and Johannes Wallner. Computational Line Geometry. Mathematics and Visualization. Springer, 2001. [197] Franco P. Preparata. The medial axis of a simple polygon. In Mathematical Foundations of Computer Science, number 53 in Lecture Notes in Computer Science, pages 443–450. Springer–Verlag, 1977. [198] Franco P. Preparata and Michael Ian Shamos. Computational Geometry — An Introduction. Texts and Monographs in Computer Science. Springer-Verlag, 1985. [199] William H. Press, Saul A. Teukolsky, William T. Vetterling, and Brian P. Flannery. Numerical Recipes in C: The Art of Scientific Computing. Cambridge University Press, Cambridge, UK, 2nd edition edition, 1993. http://www.nr.com/. [200] M.A. Price and Cecil G. Armstrong. Hexahedral mesh generation by medial surface subdivision: Part I. Solids with convex edges. International Journal for Numerical Methods in Engineering, 38(19):3335–3359, October 1995. [201] M.A. Price and Cecil G. Armstrong. Hexahedral mesh generation by medial surface subdivision: Part II. Solids with flat and concave edges. International Journal for Numerical Methods in Engineering, 40:111–136, January 1997.

197

[202] Chris Pudney. Distance-ordered homotopic thinning: A skeletonization algorithm for 3D digital images. CVIU, 72(3):404–413, 1998. [203] Ingemar Ragnemalm. Neighborhoods for distance transformations using ordered propagation. CVGIP: Image Understanding, 56(3):399–409, 1992. [204] Ingemar Ragnemalm. The Euclidean Distance Transform. Link¨oping studies in science and technology - dissertations - no.304, Link¨oping University, Dept. of Electrical Engineering, Link¨oping, Sweden, 1993. 276 pages. [205] Thomas Rausch, Franz-Erich Wolter, and Oliver Sniehotta. Computation of medial curves in surfaces. In The Mathematics of Surfaces VII, IMA Conference Series, pages 43–68. Institute of Mathematics and its Applications, Oxford University Pres, 1997. Proc. of Conference held on September 1996. [206] Jayachandra M. Reddy and George Turkiyyah. Computation of 3D skeletons by a generalized Delaunay triangulation approach. Computer Aided Design, 27(9):677–694, September 1995. [207] H. Scherthan, R. Eils, E. Trelles-Sticken, S. Dietzel, T. Cremer, H. Walt, and A. Jauch. Aspects of three-dimensional chromosome reorganization during the onset of human male meiotic prophase. Journal of Cell Science, 111(16):2337–2351, July 1998. [208] Michel Schmitt. Some examples of algorithms in computational geometry by means of mathematical morphological techniques. In Geometry and Robotics, number 391 in Lecture Notes in Computer Science, pages 225–246. Springer-Verlag, 1989. [209] Thomas B. Sebastian. Shape-based Object Recognition. PhD thesis, Brown University, Division of Engineering, Providence, RI, USA, 2001. [210] Thomas B. Sebastian, Philip N. Klein, and Benjamin B. Kimia. Recognition of shapes by  International Conference on Computer Vision, editing their shock graphs. In Proc. of the  pages 755–762, Vancouver, Canada, July 2001. IEEE Computer Society. [211] Thomas B. Sebastian, Philip N. Klein, and Benjamin B. Kimia. Shock-based indexing into large shape databases. In ECCV, pages Part III:731 – 746, 2002. [212] Thomas B. Sebastian, Huseyin Tek, Scott W. Wolfe, Joseph J. Crisco, and Benjamin K. Kimia. Segmentation of Carpal Bones from 3D CT images using Skeletally Coupled Deformable Models. In MICCAI, pages 1184–1194, October 1998.



[213] Raimund Seidel. Exact upper bounds for the number of faces in -dimensional Voronoi diagrams. In Applied Geometry and Discrete Mathematics: The Victor Klee Festschrift, volume 4 of DIMACS Series in Discrete Mathematics and Theoretical Computer Science, pages 517–530. American Mathematical Society, Providence, RI, USA, 1991. [214] Jean Serra. Image Analysis and Mathematical Morphology, volume 1. Academic Press, London, UK, 1982.

198

[215] Jean Serra, editor. Image Analysis and Mathematical Morphology: Theoretical Advances, volume 2. Academic Press, London, England, 1988. [216] Jean Serra. Cube, cube-octahedron or rhombododecahedron as bases for 3-D shape descriptions. In Advances in Visual Form Analysis, pages 502–519. World Scientific, 1997. [217] James A. Sethian. Level Set Methods: Evolving Interfaces in Geometry, Fluid Mechanics, Computer Vision and Materials Sciences. Cambridge University Press, UK, 1996. [218] Daniel Sharvit, Jacky Chan, H¨useyin Tek, and Benjamin B. Kimia. Symmetry-based indexing of image databases. Journal of Visual Communication and Image Representation, 9(4):366– 380, December 1998. [219] Damian J. Sheehy, Cecil G. Armstrong, and Desmond J. Robinson. Shape description by medial surface construction. IEEE Transactions on Visualization and Computer Graphics, 2(1):62–72, 1996. [220] Eric C. Sherbrooke, Nicholas M. Patrikalakis, and Franz-Erich Wolter. Differential and topological properties of medial axis transforms. Graphical Models and Image Processing, 58(6):574–592, November 1996. [221] Jonathan Richard Shewchuk. Adaptive precision floating-point arithmetic and fast robust geometric predicates. Technical Report CMU-CS-96-140, Carnegie Mellon University, May 1996. [222] Jonathan Richard Shewchuk. Delaunay Refinement Mesh Generation. PhD thesis, School of Computer Science, Carnegie Mellon University, Philadelphia, Pennsylvania, May 1997. 207 pages. [223] Ilya Shlyakhter, Max Rozenoer, Julie Dorsey, and Seth Teller. Reconstructing 3D tree models from instrumented photographs. IEEE Computer Graphics and Applications, 21(3):53–61, 2001. [224] R. Sibson. A brief description of natural neighbor interpolation. In V. Barnet, editor, Interpreting Multivariate Data, pages 21–36. Wiley, Chichester, UK, 1981. [225] Kaleem Siddiqi, Benjamin B. Kimia, Allen R. Tannenbaum, and Steven W. Zucker. Shocks, shapes, and wiggles. Image and Vision Computing, 17(5-6):365–373, 1999. [226] Kaleem Siddiqi, A. Shokoufandeh, S.J. Dickinson, and Steven W. Zucker. Shock graphs and shape matching. International Journal of Computer Vision, 35(1):13–32, November 1999. [227] Dirk Siersma. Properties of conflict sets in the plane. In Geometry and Topology of Caustics, volume 50, pages 267–276. Banach Center Publications, 1999. [228] Dirk Siersma. Voronoi diagrams and Morse theory of the distance function. In O. E. Barndorff-Nielsen and E. B. Vedel Jensen, editors, Geometry in Present Day Science. World Scientific, March 1999. Conference held at the University of Aarhus, Denmark, Jan. 1998.

199

[229] Michiel Smid. Closest-point problems in computational geometry. In Handbook of Computational Geometry, pages 877–935. Elsevier, 2000. [230] Jorge Sotomayor, Dirk Siersma, and Ronaldo Garcia. Curvatures of conflict surfaces in Euclidean 3-space. In Geometry and Topology of Caustics, volume 50, pages 277–285. Banach Center Publications, 1999. [231] Orestes N. Stavroudis. The Optics of Rays, Wavefronts, and Caustics, volume 38 of Pure and Applied Physics. Academic Press, 1972. 313 pages. [232] Stina Svensson. Representing and Analyzing 3D Digital Shape Using Distance Information. Acta universitatis agriculturae sueciae, silvestria 211, Centre for Image Analysis, Swedish University of Agricultural Sciences, Uppsala, Sweden, 2001. [233] G´abor Sz´ekely. Shape Characterization by Local Symmetries. Habilitationsschrift, ETH Zurich, Switzerland, 1996. [234] Marek Teichmann and Seth Teller. Assisted articulation of closed polygonal models. In Proc. 9th Eurographics Workshop on Animation and Simulation, Lisbon, Portugal, August 31 September 1 1998. [235] H¨useyin Tek. The Role of Symmetry Maps in Representing Objects in Images. PhD thesis, Brown University, Division of Engineering, Providence, RI, USA, 1999. [236] Huseyin Tek and Benjamin B. Kimia. Volumetric segmentation of medical images by threedimensional bubbles. CVIU, 65(2):246–258, 1997. [237] Huseyin Tek and Benjamin B. Kimia. Curve evolution, wave propagation, and mathematical morphology. volume 12 of Computational Imaging and Vision, pages 115–126. Kluwer  Int. Symp. on Math. Morpho. (ISMM’98) held in AmsAcad., 1998. Proceedings of the  terdam, The Netherlands, June 3-5, 1998. [238] Huseyin Tek and Benjamin B. Kimia. Perceptual organization via symmetry map and symmetry transforms. In IEEE Proc. of CVPR, Forth Collins, Colorado, June 1999. [239] Huseyin Tek and Benjamin B. Kimia. Symmetry maps of free-form curve segments via wave  propagation. In Proc. of the International Conference on Computer Vision, volume 1, pages 362–369, Corfu, Greece, September 1999. IEEE Computer Society. [240] Huseyin Tek and Benjamin B. Kimia. Boundary smoothing via symmetry transforms. Journal of Mathematical Imaging and Vision, 14(3):211–223, May 2001. [241] Huseyin Tek, Frederic Leymarie, and Benjamin B. Kimia. Interpenetrating waves and multiple generation shocks via the CEDT. In Advances in Visual Form Analysis, pages 582–593. World Scientific, 1997.

200

[242] Demetri Terzopoulos and Dimitris Metaxas. Dynamic 3D models with local and global deformations: Deformable superquadrics. IEEE Transactions on Pattern Analysis and Machine Intelligence, 13(7):703–714, July 1991. [243] David Charles Thompson. Feasibility of a Skeletal Modeler for Conceptual Mechanical Design. PhD thesis, University of Texaas at Austin, December 2000. [244] George Turkiyyah, Duane Storti, Mark Ganter, Hao Chen, and Munikumar Vimawala. An accelerated triangulation method for computing skeletons of free-form solid models. Computer Aided Design, 29(1):5–19, 1997. [245] Gert J. van Tonder, M. J. Lyons, and Y. Ejima. Visual structure of a Japanese Zen garden. Nature, 419:359–360, September 2002. [246] Pamela Jean Vermeer. Medial Axis Transform to Boundary Representation Conversion. PhD thesis, Purdue University, CS Dept., West Lafayette, IN 47907, USA, May 1994. [247] Anne Verroust and Francis Lazarus. Extracting skeletal curves from 3D scattered data. In IEEE Proc. of Shape Modeling International, Aizu, Japan, March 1999. [248] Anne Verroust and Francis Lazarus. Extracting skeletal curves from 3D scattered data. The Visual Computer, 16(1):15–25, 2000. [249] Ben J. H. Verwer, Piet W. Verbeek, and Simon T. Dekker. An uniform cost algorithm applied to distance transforms. IEEE Transactions on Pattern Analysis and Machine Intelligence, 11(4):425–429, 1989. [250] Luc Vincent. Exact Euclidean distance function by chain propagations. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 520–525, Maui, Hawaii, U.S.A., 1991. [251] Lawson Wade and Richard E. Parent. Automated generation of control skeletons for use in animation. The Visual Computer, 18(2):97–110, March 2002. [252] Yongmei Wang, B. S. Peterson, and Lawrence H. Staib. Shape–based 3D surface correspondence using geodesics and local geometry. In Proceedings of the Conference on Computer Vision and Pattern Recognition, volume 2, pages 644–651, Hilton Head Island, South Carolina, June 2000. IEEE Computer Society. [253] Steven A. Wilmarth, Nancy M. Amato, and Peter F. Stiller. Motion planning for a rigid body using random networks on the medial axis of the free space. In Proc. of the 15th Annual Symposium of Computational Geometry, pages 173–180, Miami, FL, June 1999. ACM. [254] Franz-Erich Wolter. Cut locus and medial axis in global shape interrogation and representation. Sea grant report, MIT, Cambridge, MA, USA, 1992.

201

[255] Franz-Erich Wolter and K.-I. Friese. Local and global geometric methods for analysis interrogation, reconstruction, modification and design of shape. In Proceedings of Computer Graphics International (CGI’00), pages 137–151, Geneva, Switzerland, June 2000. IEEE Computer Society. [256] J.D. Wood and S. Rana. Construction of weighted surface networks for the representation and analysis of surface topology. In Proceedings of the 5th International Conference on GeoComputation, University of Greenwich, UK, 2000. http://www.geocomputation.org/2000/. [257] Mark W. Wright, Roberto Cipolla, and Peter J. Giblin. Skeletonization using an extended Euclidean distance transform. Image and Vision Computing, 13(5):367–375, 1995. [258] Mark William Wright. The Extended Euclidean Distance Troansform. PhD thesis, Department of Engineering, University of Cambridge, UK, June 1995. [259] Alan L. Yuille and Michael Leyton. 3-D symmetry–curvature duality theorems. Computer Vision, Graphics and Image Processing, 52:124–140, 1990. [260] Paul Yushkevich, P. Thomas Fletcher, Sarang Joshi, Andrew Thall, and Stephen M. Pizer. Continuous medial representations for geometric object modeling in 2D and 3D. Image and Vision Computing, 21(1):17–27, January 2003. [261] Mourad Zerroug and Ramakant Nevatia. Three-dimensional descriptions based on the analysis of the invariant and quasi-invariant properties of some curved-axis generalized cylinders. IEEE Transactions on Pattern Analysis and Machine Intelligence, 18(3):237–253, 1996. [262] Hong-Kai Zhao, Stanley Osher, B. Merriman, and M. Kang. Implicit and non-parametric shape reconstruction from unorganized points using variational level set method. Computer Vision and Image Understanding, 80:295–319, 2000. [263] J. Zhou, Evan C. Sherbrooke, and Nicholas M. Patrikalakis. Computation of stationary points of distance. Engineering with Computers, 9:231–246, 1993. [264] Yong Zhou, Arie Kaufman, and Arthur Toga. Three-dimensional skeleton and centerline generation based on an approximate minimum distance field. The Visual Computer, 14(7):303– 314, 1998. [265] Song Chun Zhu and Alan L. Yuille. FORMS: A flexible object recognition and modeling system. International Journal of Computer Vision, 20(3):187–212, 1996.

Suggest Documents