TopMesh A Tool for Extracting Topological Information From Non-Manifold Objects

1,343 views

Published on

Full paper presentation at the GRAPP2010 international conference.

We present TopMesh, a tool for extracting topological information from non-manifold three-dimensional
objects with parts of non-uniform dimensions. The boundary of such objects is discretized as a mesh of
triangles and of dangling edges, representing one-dimensional parts of the object. The geometrical and
topological information extracted include the number of elements in the mesh, the number of non-manifold
singularities and the Betti numbers, which characterize the topology of an object independently of the discretization of its boundary. TopMesh also computes a decomposition of the mesh into connected parts of uniform dimension, into edge-connected components formed by triangles, and into oriented edge-connected sub-meshes. We describe the functionalities of TopMesh and the algorithms implementing them.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,343
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Several techniques for segmenting the boundary of a 3D manifold shape [Shamir, 2006] - survey. Such techniques try to decompose an object into meaningful components Some methods have been developed in CAD/CAM for extracting the so-called form features (protrusions, depressions…), which produce a boundary-based decomposition of a 3D object guided by geometric, topological and semantic criteria, see [Shah, 1991 - for a survey]. Much less work has been done on decomposition of non-manifold shapes. A common approach to represent a non-manifold shape consists of decomposing it into manifold components (PUNTO 3) PUNTO 4  (Pesco et al., 2004) decomposition of a 2D cell complex based on a combinatorial stratification of the complex, inspired by Whitney stratification and a set of topological operators for manipulating it. In (Delfinado and Edelsbrunner, 1995) an incremental algorithm is proposed for computing the ranks of the homology groups (Betti numbers) for simplicial 3-complexes embeddable in the 3D Euclidean space.  (Dey and Guha, 1998) present an approach to compute the generators of the homology groups for compacted triangulated 3-manifolds in R3. Then, they show that this approach can be applied to arbitrary simplicial complexes in R3, after thickening the complex to produce a 3-manifold homotopic to it.
  • The IA data structure encodes only the vertices and the triangles of the mesh and, for each triangle, the references to its adjacent triangles. the TS encodes all vertices, and top simplexes, i.e., triangles and edges not bounding triangles, that we call wire edges. The wire-edges and triangles are defined by their bounding vertices, namely by the relations wire-edge-vertex and triangle-vertex For each edge e of a triangle t , the TS stores the triangle-triangle-at-edge relation, encoding the triangle(s) immediately preceding and succeeding t around e , when the triangles incident at e are sorted in counter-clockwise order around e . When there is no triangle adjacent to t along e , the predecessor and the successor in the triangle-triangle-at-edge relation are both t . When edge e is an interior manifold edge, the predecessor and the successor are identical and consist of the only other triangle t0 which share e with t Note that, when e is a non-manifold edge , the predecessor and the successor of t around e are two different triangles to simplify the task of navigating around a vertex, the TS encodes, for each vertex v , the vertex-triangle relation which associates with v one triangle for each 1-connected component incident at v (Fig. 5 (d)) and the vertex-wire-edge relation which associates with v all the wire edges incident at v (Fig. 5 (e)) It has been shown that the TS provides a very compact representation of the initial model [18]. A relevant property of the TS is its scalability to the manifold case and, also, it supports topological navigation in optimal time.
  • Explicit information for a non-manifold shape  so we extract them.. Also for structuring the shape for successive processing.
  • An oriented surface OS may enclose a void. Folded surface: an OS with boundary, such that for each t-side s that belongs to S the other side s” of the same triangle also belongs to S (cannot include any void). NOTE: a 1-connected component with only one oriented surface is a folded surface. If G consists of two triangulated cubes sharing a face, then there are three oriented surfaces associated. In this case, there exists exactly one oriented surface, Sout, such that the normals to the triangle sides forming it point towards the outside space. Sout defines a cycle of triangles which can be expressed as the linear combination of the other oriented surfaces associated with G. Thus, Sout does not define a 2-cycle, since it contains the remaining oriented surfaces.
  • To clarify the definition of oriented surface, consider the example shown in Fig. 6(c) and an ant walking on the upper side of triangle t (that is T 1). It reaches the triangle side U 1 by crossing edge ( a,b ). It reaches the opposite side of t ( T 2) by crossing edge ( a,c ), because ( a,c ) is a boundary edge. An oriented surface is basically the surface formed by all the triangle sides that are reachable by a walking ant. An oriented surface may enclose a void. An oriented surface S with boundary, such that for each triangle side s that belongs to S the other side s” of the same triangle also belongs to S , cannot include any void. We call such oriented surfaces folded surfaces . Note that a 1-connected component G may consist of only one oriented surface, and in this case it must be a folded surface. G may consist of two surfaces, as it is always the case if it contains only manifold edges. For instance, if G is a triangulated sphere, G consists of two oriented surfaces, each of which corresponding to an orientation of the surface of the sphere. If G consists of two triangulated cubes sharing a face, then there are three oriented surfaces associated with G, namely the two cubes with normals pointing towards the inside and the oriented surface consisting of the union of the two cubes with the normals pointing towards the external empty space. It can be easily seen that, if we consider G, there exists exactly one oriented surface in the set of oriented surfaces associated with G, that we denote Sout, such that the normals to the triangle sides forming it point towards the outside space. Sout defines a cycle of triangles which can be expressed as the linear combination of the other oriented surfaces associated with G. Thus, unlike the other oriented surfaces in G, Sout does not define a 2-cycle, since it contains the remaining oriented surfaces. Note that, if G consists of one folded surface, this latter does not define a 2-cycle as well. Since there is exactly one oriented surface for each 1-connected component which does not define a 2-cycle, we have that the number of 2-cycles in the model is equal to the total number of oriented surface minus the number of 1-connected components.
  • If we consider all the triangle sides corresponding to the nodes in the strongly-connected component HA, they form a maximal edge-connected set of triangle sides such that any pair of triangle sides s′ and s′′ are connected through a path on the complex formed by edgeadjacent triangles which are consistently oriented. Thus, they form an oriented surface.
  • TopMesh A Tool for Extracting Topological Information From Non-Manifold Objects

    1. 1. TopMesh A Tool for Extracting Topological Information From Non-Manifold Objects Leila De Floriani*, Laura Papaleo*^ * University of Genova (ITALY) ^ICT Department, Province of Genova (ITALY) Annie Hui University of Maryland (USA) 20/05/10 GRAPP2010 - Geometric Modeling
    2. 2. Overview <ul><li>Motivations </li></ul><ul><li>Background </li></ul><ul><ul><li>Non-manifold singularities </li></ul></ul><ul><ul><li>TS library </li></ul></ul><ul><li>TopMesh </li></ul><ul><ul><li>Extracting topological information </li></ul></ul><ul><ul><li>Computing the 2-cycles </li></ul></ul><ul><li>Results </li></ul><ul><li>Conclusions </li></ul>GRAPP2010 - Geometric Modeling 20/05/10
    3. 3. Non-manifold shapes: what? <ul><li>Manifold shapes shapes in which every point has a neighborhood homeomorphic to either an open ball (internal point), or to an open half-ball (boundary point) </li></ul><ul><li>Non-manifold singularities : set of points in a non-manifold shape which do not satisfy the manifold condition </li></ul><ul><li>Non-manifold shapes : shapes with a complex geometric and topological structure </li></ul><ul><ul><li>non-manifold singularities </li></ul></ul><ul><ul><li>parts of different dimensions (2D, 1D, …) </li></ul></ul>GRAPP2010 - Geometric Modeling 20/05/10
    4. 4. Non-manifold shapes: when? <ul><li>Result of a process of abstraction (idealization) applied to manifold shapes to produce iconic (idealized) models </li></ul><ul><li>Applications: </li></ul><ul><ul><li>Finite element analysis and simulation </li></ul></ul><ul><ul><li>Animation </li></ul></ul><ul><li>Non-manifold shapes often described through simplicial meshes </li></ul>GRAPP2010 - Geometric Modeling Original Idealized 20/05/10
    5. 5. Objective of the work <ul><li>To address the problem of extracting topological characteristics from non-manifold 3D shapes containing parts of different dimensions, discretized as simplicial complexes </li></ul><ul><li>To design and develop a tool to compute the topological information from non-manifold shapes </li></ul><ul><li>Useful for: </li></ul><ul><ul><li>Build a structural model based on topology </li></ul></ul><ul><ul><li>Be the basis for semantic annotation and understanding of complex shapes </li></ul></ul>GRAPP2010 - Geometric Modeling Semantic model 20/05/10 Geometric model Structural model Motor Blade Blade Blade Blade
    6. 6. Related work <ul><li>Segmentation techniques for manifold simplicial shapes [Shamir, 2006, Eurographics STAR] </li></ul><ul><li>Techniques for form feature (protrusions, handles…) extraction and identification from manifold CAD objects [Shah et al., 2001, survey] </li></ul><ul><li>Representations of uniformly dimensional non-manifold shapes as collections of manifolds for CAD modeling and compression [Falcidieno et al., 1992; Gueziec et al., 1998] </li></ul><ul><li>On Homology groups and simplicial complexes: </li></ul><ul><ul><li>combinatorial stratification for 2D cellular models [Pesco et al., 2004] </li></ul></ul><ul><ul><li>incremental algorithm for Betti numbers in simplicial 3-complexes [Delfinado Edelsbrunner, 1998] </li></ul></ul><ul><ul><li>approach to compute generators of the homology groups for compacted triangulated 3-manifolds [Dey Guha 1998] </li></ul></ul>GRAPP2010 - Geometric Modeling 20/05/10
    7. 7. Background: triangle-segment mesh <ul><li>Definition : it is a 2D mesh discretizing the boundary of a non-manifold, non-regular three-dimensional object. </li></ul><ul><ul><li>It is a 2D simplicial complex embedded in the 3D Euclidean space [Agoston, 2005]. </li></ul></ul><ul><li>Entities: triangles, wire-edges (edges that do not bound any triangles), vertices. </li></ul><ul><li>The collection of all the vertices and edges form the 1- skeleton of the mesh . </li></ul><ul><li>No wire-edges  “simple” triangle mesh. </li></ul><ul><li>At least one edge bounding only one triangle  triangle mesh with boundary . </li></ul>20/05/10 GRAPP2010 - Geometric Modeling yes no no
    8. 8. Background: Vertex: manifold & non-manifold <ul><li>Be T a triangle-segment mesh, v a vertex </li></ul><ul><ul><li>v is a manifold vertex if it belongs only to one or two wire-edges or the Link(v) consists of a closed or open chains of edges </li></ul></ul><ul><ul><li>v is non-manifold otherwise </li></ul></ul><ul><li>Recall: </li></ul><ul><ul><li>Star(v): set of triangles & edges incident at v . </li></ul></ul><ul><ul><li>Link(v): set of edges & vertices in the Star( v ) not incident in v </li></ul></ul>20/05/10 GRAPP2010 - Geometric Modeling A manifold vertex v A non-manifold vertex v
    9. 9. Background: Edge: manifold & non-manifold <ul><li>Be T a triangle-segment mesh, e an edge </li></ul><ul><ul><li>e is a manifold edge if its Link consists of one or two vertices </li></ul></ul><ul><ul><li>otherwise e is non-manifold </li></ul></ul><ul><li>Recall: </li></ul><ul><ul><li>Star(e): set of triangles sharing e . </li></ul></ul><ul><ul><li>Link(e): set of vertices of the triangles in Star( e ) not included in e </li></ul></ul>20/05/10 GRAPP2010 - Geometric Modeling e A manifold edge e A non-manifold edge
    10. 10. Background: The Betti numbers <ul><li>Fundamental characterization of a 3D object </li></ul><ul><ul><li>β0: number of connected components, </li></ul></ul><ul><ul><li>β1: number of 1-cycles (independent tunnels, through holes…) </li></ul></ul><ul><ul><li>β2 : number of 2-cycles (parts of the object which enclose empty space -voids). </li></ul></ul><ul><li>Betti numbers together in the Euler Poincare’s formula v – e + f = β0 – β1 + β2 </li></ul>20/05/10 GRAPP2010 - Geometric Modeling one 1-cycle and one 2-cycles two 2-cycles
    11. 11. The TS data structure: Encoding a Non-Manifold Model <ul><li>Generalizes the Indexed structure with Adjacencies to the non-manifold case </li></ul><ul><li>Encodes all vertices and top simplexes (triangles & wire edges) </li></ul><ul><li>Relations: </li></ul><ul><ul><li>wire-edge-vertex (for each e its vertices) </li></ul></ul><ul><ul><li>triangle-vertex (for each t its vertices) </li></ul></ul><ul><ul><li>triangle-triangle-at-edge [partial] ( for a triangle t and for each e those triangle(s) immediately preceding and succeeding t around e ) </li></ul></ul><ul><ul><li>vertex-triangle (for each v one triangle for each 1-connected component incident at v ) </li></ul></ul><ul><ul><li>vertex-wire-edge (for each v all the wire edges incident v ) </li></ul></ul>20/05/10 GRAPP2010 - Geometric Modeling *De Floriani et al. CAD Journal (2004)
    12. 12. TopMesh: basic functionalities <ul><ul><li>1) non-manifold singularities </li></ul></ul><ul><ul><ul><li>non-manifold vertices, non-manifold edges and wire-edges </li></ul></ul></ul><ul><ul><li>2) components with various degrees of connectivity </li></ul></ul><ul><ul><ul><li>connected components </li></ul></ul></ul><ul><ul><ul><li>wire-webs (maximal connected components formed by the wire-edges) </li></ul></ul></ul><ul><ul><ul><li>edge-connected components ( parts which do not contain non-manifold vertices) </li></ul></ul></ul><ul><ul><li>3) Number of 2-cycles  deducing the Betti numbers </li></ul></ul>20/05/10 GRAPP2010 - Geometric Modeling
    13. 13. Extracting Non-manifold Singularities & Wire-Edges <ul><li>We provide algorithms for counting and extracting </li></ul><ul><ul><li>non-manifold vertices, </li></ul></ul><ul><ul><li>non-manifold edges </li></ul></ul><ul><ul><li>wire edges </li></ul></ul>20/05/10 GRAPP2010 - Geometric Modeling Wire-edges explicitly encoded in the TS  retrieval and counting is trivial Non-Manifold Vertices for each vertex v take Vertex-triangle and vertex-wire-edge v is manifold if only one of the two relations is not empty if the vertex-triangle relation is not empty, it consists only one triangle if the vertex-wire-edge relation is not empty, it consists of either one or two wire-edges  non-manifold otherwise Non-manifold edges For each e consider a triangle t incident at e  e is non-manifold if the predecessor and successor in the triangle-triangle-at-edge of t at e, are different
    14. 14. Computing: Connected compontens, 1-Connected Components & Wire-webs <ul><li>To detect parts with certain connectivity, a traversal of the entire model is necessary </li></ul>20/05/10 GRAPP2010 - Geometric Modeling Connected Components Apply a labeling approach to the 1-skeleton. BF traversal in the TS with a queue. Visit all the triangles t in the vertex-triangle and all the wire-edges e in the vertex-wire-edge .  Betti number b0 , is the total number of connected components. Wire-webs connected components formed only of wire-edges. Apply a BF traversal considering for each vertex v , only the incident wire-edges and the corresponding vertices 1-connected components Consider the sub-mesh cutting all the wire-webs . The 1-connected components correspond to connected components of its dual graph G (where nodes are triangles and arcs exists for edges shared by two or more triangles) Used for the computation of the 2-cycles
    15. 15. Computing the 2-Cycles: General idea <ul><li>They are maximal 1-connected sub-meshes enclosing voids and not containing triangles dangling at non-manifold edges </li></ul><ul><li>We use the 1-connected components and we cut the maximal 1-connected sub-meshes of triangles not bounding void s </li></ul><ul><ul><li> 2  number of 2-cycles in the model </li></ul></ul><ul><ul><li> 2 computed   1 can be derived by the Euler’s formula ( v -e+f=  0-  1+  2 ) </li></ul></ul>20/05/10 GRAPP2010 - Geometric Modeling
    16. 16. Computing the 2-cycles: Triangle sides / adiacency <ul><li>triangle sides A triangle t has two triangle sides (with opposite normals) defined by the two possible orderings of its vertices </li></ul><ul><li>Two triangle sides are adjacent at their common edge e if one is reachable from the other by crossing e </li></ul>20/05/10 GRAPP2010 - Geometric Modeling Two triangle sides of two different triangles which are adjacent
    17. 17. Computing the 2-cycles: Oriented surfaces <ul><li>Definition a maximal edge-connected set of triangles sides, such that, for each pair of triangle sides s′, s′′ in the set sharing an edge e s′ is the successor of s′′ according to one orientation of e, and s′′ is the successor of s′ according to the opposite orientation of e. </li></ul><ul><li>An oriented surface may enclose a void. </li></ul>20/05/10 GRAPP2010 - Geometric Modeling An oriented surface is basically the surface formed by all the triangle sides that are reachable (via adjacency) by a walking ant.
    18. 18. <ul><li>Def : An oriented surface S with boundary such that for each t-side s in S the other t-side s” of the same triangle is in S ( cannot include any void ). </li></ul><ul><li>Property there is exactly one oriented surface for each 1-connected component which does not define a 2-cycle </li></ul><ul><li> #2-cycles = #OrientedSurface – #1ConnectedComponents </li></ul>Computing the 2-cycles: Folded Surfaces 20/05/10 GRAPP2010 - Geometric Modeling C defines a cycle of triangles which can be expressed as the linear combination of the A and B . Thus, unlike A and B , C does not define a 2-cycle, since it contains the remaining oriented surfaces C A B C A B
    19. 19. Computing the 2-Cycles Oriented adjacency di-graph <ul><li>Algorithm: For each 1-connected component A </li></ul><ul><ul><li>Extract connected collections of triangle sides </li></ul></ul><ul><ul><li>Extract oriented surfaces traversing the model taking the triangle sides and simulating the walk of an ant on a surface </li></ul></ul><ul><li>Oriented adjacency di-graph G of A </li></ul><ul><ul><li>nodes are triangle sides, </li></ul></ul><ul><ul><li>there is a directed arc a from a node s′ to a node s′′ iff the two sides s′ and s′′ share an edge e , and side s′′ is the successor of s′ at e . </li></ul></ul>20/05/10 GRAPP2010 - Geometric Modeling
    20. 20. Computing the 2-Cycles Oriented adjacency di-graph <ul><li>Each strongly connected sub-graph of the oriented adjacency di-graph G defines an oriented surface </li></ul><ul><li>NOTE: </li></ul><ul><ul><li>We do not build the oriented adjacency di-graph </li></ul></ul><ul><ul><li>we simulate the di-graph G on the TS data structure, using an incremental labeling approach. </li></ul></ul>20/05/10 GRAPP2010 - Geometric Modeling
    21. 21. TopMesh <ul><li>TopMesh is a command line tool written in C++. </li></ul><ul><li>Webservice for the AIM@SHAPE Digital shapes repository http://www.aimatshape.net </li></ul><ul><li>Tested on several data sets </li></ul><ul><li>Web pages </li></ul><ul><ul><li>http:// ggg.disi.unige.it / topmesh / the sw and the results </li></ul></ul><ul><ul><li>http://indy.disi.unige.it/nmcollection/ a repository of non-manifold models </li></ul></ul>20/05/10 GRAPP2010 - Geometric Modeling
    22. 22. Complexity <ul><li>Extracting singularities & C. </li></ul><ul><ul><li>time complexity linear in the size of the input triangle-segment mesh </li></ul></ul><ul><li>Computing the 2-cycles </li></ul><ul><ul><li>The algorithm performs a visit on the di-graph G </li></ul></ul><ul><ul><li>the number of nodes in G is proportional to the number of triangles and edges in the input mesh, </li></ul></ul><ul><ul><li>the algorithm complexity is linear in the size of the mesh. </li></ul></ul>
    23. 23. Results (1/3) 20/05/10 GRAPP2010 - Geometric Modeling
    24. 24. Results (2/3) 20/05/10 GRAPP2010 - Geometric Modeling
    25. 25. Results (3/3) <ul><li>All information extracted can be attached to the initial model using ontology-driven metadata </li></ul><ul><li>instances of the concept NonManifoldMesh are automatically created </li></ul>20/05/10 GRAPP2010 - Geometric Modeling COMMON SHAPE ONTOLOGY defined within AIM@SHAPE
    26. 26. Conclusions <ul><li>TopMesh: </li></ul><ul><ul><li>a tool for the extraction of topological information form a 3D object represented as a triangle-segment mesh encoded in the TS data structure. </li></ul></ul><ul><ul><li>Webservice for a digital shape repository online </li></ul></ul><ul><ul><li>integrated as core module in a Semantic Web system for inspecting, structuring annotating 3D shapes and scenes according to ontology-driven metadata </li></ul></ul><ul><li>We are extending the tool for: </li></ul><ul><ul><li>performing a semantic-oriented decomposition of a shape. </li></ul></ul><ul><ul><li>managing large non-manifold meshes using spatial indexing techniques </li></ul></ul>20/05/10 GRAPP2010 - Geometric Modeling
    27. 27. Thanks for your attention. …Questions? Laura Papaleo [email_address] 20/05/10 GRAPP2010 - Geometric Modeling This work has been partially supported by the MIUR-FIRB project SHALOM under contract number RBIN04HWR8, by the National Science Foundation under grant CCF-0541032, and by the MIUR-PRIN project on Multi-resolution modeling of scalar fields and digital shapes.

    ×