Topological Data Structures Jorge Stolfi Instituto de Computa c - - PowerPoint PPT Presentation

topological data structures
SMART_READER_LITE
LIVE PREVIEW

Topological Data Structures Jorge Stolfi Instituto de Computa c - - PowerPoint PPT Presentation

Topological Data Structures Jorge Stolfi Instituto de Computa c ao Universidade Estadual de Campinas (UNICAMP) Caixa Postal 6176 13084-971 Campinas, SP, Brasil stolfi@ic.unicamp.br Talk at Theory Seminar, IC-UNICAMP, 2009-10-30.


slide-1
SLIDE 1

Topological Data Structures

Jorge Stolfi Instituto de Computa¸ c˜ ao Universidade Estadual de Campinas (UNICAMP) Caixa Postal 6176 – 13084-971 Campinas, SP, Brasil stolfi@ic.unicamp.br Talk at Theory Seminar, IC-UNICAMP, 2009-10-30. Joint work with Arnaldo Jovanini Montagner

October 30, 2009

Abstract We describe in detail a novel data structure for d-dimensional triangulations. In an arbitrary d-dimension triangulation, there are d! ways in which a specific facet of an simplex can be glued to a specific facet of another simplex. Therefore, in data structures for general d-dimensional triangulations, this information must be encoded using ⌈log2(d!)⌉ bits for each adjacent pair of simplices. We study a special class of triangulations, called the colored triangulations, in which there is a only one way two simplices can share a specific facet. The gem data structure, described here, makes use of this fact to greatly simplify the repertoire of elementary topological operators.

1

slide-2
SLIDE 2

Gems: A General Data Structure for d-Dimensional Triangulations

Arnaldo Jovanini Montagner and Jorge Stolfi

Computer Science Institute (IC) State University of Campinas (UNICAMP) Campinas, SP, Brasil stolfi@ic.unicamp.br 2

slide-3
SLIDE 3

SUMMARY

  • Triangulations.
  • Winged-edge, half-edge, etc..
  • Quad-edge.
  • Facet-edge.
  • N-G-maps/cell-tuple.
  • Corner-stitching, 4-8, SMC, ....
  • The gem data structure.
  • Conclusions ans future work.

3

slide-4
SLIDE 4

Triangulations Triangulation: set of d-simplices, glued by facets.

4

slide-5
SLIDE 5

Triangulation data structures Pointer data structures:

  • One record per cell.
  • One pointer per facet, to adjacent cell.

b e a c d

Problem: which pointer is the right one?

  • Check all links (D. T. Lee & B. J. Schachter 1980 [7]).
  • Add ⌈log2((d + 1)!)⌉ permutation bits per link

(J. R. Shewchuck 1996 [10], J.-D. Boisonnat & al. 2002 [1], .. . )

5

slide-6
SLIDE 6

Quad-Edge and Voronoi

With Leo Guibas (TOG 4(2), 1985).

6

slide-7
SLIDE 7

Quad-Edge and Voronoi (2)

7

slide-8
SLIDE 8

Quad-Edge and Voronoi (3)

8

slide-9
SLIDE 9

Quad-Edge and Voronoi (4)

37

9

slide-10
SLIDE 10

Quad-Edge and Voronoi (5)

10

slide-11
SLIDE 11

Quad-Edge and Voronoi (6)

11

slide-12
SLIDE 12

Quad-Edge and Voronoi (7)

12

slide-13
SLIDE 13

Toposcope

With Rober M. Rosi (Graph Drawing ’96).

13

slide-14
SLIDE 14

Toposcope (2)

14

slide-15
SLIDE 15

Toposcope (3)

15

slide-16
SLIDE 16

Toposcope (4)

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

With Lu´ ıs A. P. Lozada (SIBGRAPI 2000).

16

slide-17
SLIDE 17

Toposcope (5)

17

slide-18
SLIDE 18

3D Triangulations (1) 3D Triangulations for animation of elastic objects. Rog´ erio L. W. Liesenfeld, IC-UNICAMP, 1994

18

slide-19
SLIDE 19

3D Triangulations (2)

19

slide-20
SLIDE 20

Colored triangulations Colored triangulation:

  • Vertices are labeled with “colors” 0, 1, . . . , d.
  • Each element has at most one vertex of each color.

d e

A B C D E F G H I J K L

1 1 1 2 2 2 2 1 2

a a b c b c d e

1 1 2 2 3

20

slide-21
SLIDE 21

Gems (1) Gem = the dual graph of a colored triangulation:

d e

A B C D E F G H I J K L

1 1 1 2 2 2 2 1 2

a a b c b c d e

2 1

A D F H I K E B L J G C

A regular graph, edge-colored with colors 0, 1, . . . , d. (M. Ferri 1976 [5], S. Lins 1982 [9].

21

slide-22
SLIDE 22

Gems (2) Self-loops denote unglued facets (free border).

1 1 2 2 3

2 1 3

22

slide-23
SLIDE 23

Data structure The Gem data structure:

a d

2 1

b c

Step(a,i) = φi(a) = follow pointer i of node a.

23

slide-24
SLIDE 24

Gem structure operations: Makenode Makenode() creates an unattached simplex:

24

slide-25
SLIDE 25

Gem structure operations: Swap Swap(a,b,i) exchanges the i-pointers of a and b: Unsafe - to be used by authorized personnel only!

25

slide-26
SLIDE 26

Gem structure operations: Splice Splice(a,b,i) exchanges four pointers of color i:

Splice(v,w,0):

Safe for any parameters!

26

slide-27
SLIDE 27

Barycentric subdivision Barycentric gems and representation of general maps:

  • n-G-maps (P. Lienhardt 1989 [8]).
  • Cell-tuple structure (E. Brisson 1989 [2]).

27

slide-28
SLIDE 28

Relationship to quad-edge structure (1) Quad-edge data structure for 2D maps

  • L. J. Guibas and J. Stolfi 1985 [6].

28

slide-29
SLIDE 29

Relationship to quad-edge structure (2) The barycentric gem partitions into (0, 2)-colored squares:

2 2 1

29

slide-30
SLIDE 30

Relationship to quad-edge structure (3)

2 2 1

30

slide-31
SLIDE 31

Relationship to facet-edge structure (1) Facet-edge data structure for 3D maps

  • D. P. Dobkin and M. J. Laszlo 1987 [4].

31

slide-32
SLIDE 32

Relationship to facet-edge structure (2) The barycentric gem partitions into (0, 3)-colored squares:

2 1 3

32

slide-33
SLIDE 33

Relationship to facet-edge structure (3)

33

slide-34
SLIDE 34

Generalizing quad-edge/facet-edge Barycentric gem property (Lienhardt’s n-G-map axiom 2 [8]): φiφj = φjφi if |i − j| ≥ 2 Generalizes quad-edge/facet-edge for d dimensions!

Example for d = 7:

  • edges colored 0, 2, 5, 7 comprise disjoint 4-cubes.
  • store 16 nodes as 16 parts of same record.
  • add 4 bits per pointer to identify which part.
  • φ0, φ2, φ5, φ7 need no pointers.
  • save more pointers using φ5 = φ2φ5φ2.
  • structure supports duality.

34

slide-35
SLIDE 35

Applications: True convex hull (1) Application of barycentric gems (n-G-maps, cell-tuple): True exact convex hull, with non-simplicial facets. Gift-wrapping algorithm (D. R. Chand & S. S. Kapur 1970 [3]).

35

slide-36
SLIDE 36

Application: True convex hull (2)

Rhombic dodecahedron (3D) Regular 24-cell (4D)

36

slide-37
SLIDE 37

Non-barycentric gems (1) Gems need not be barycentric subdivisions:

37

slide-38
SLIDE 38

Non-barycentric gems (2) The free border of a gem need not be of color d:

1 1 2 2 2 1

38

slide-39
SLIDE 39

Applications: Adaptive subdivision (1) Application of non-barycentric gems: Approximation by adaptive triangular mesh.

39

slide-40
SLIDE 40

Applications: Adaptive subdivision (2) Most popular subdivision schemes don’t work:

2 1 1 2 ? 1 2 ?

40

slide-41
SLIDE 41

Applications: Adaptive subdivision (3) Local colored refinement schemes do exist:

41

slide-42
SLIDE 42

Applications: Adaptive subdivision (4)

42

slide-43
SLIDE 43

Applications: Adaptive subdivision (5) Can be done with minimum-angle guarantee:

43

slide-44
SLIDE 44

Disadvantages Disadvantages of gem data structure:

  • Restricted triangulations (e.g. no Delaunay).
  • Restricted operations (gluing, subdivision).
  • More wasteful than quad-edge or facet-edge for maps.

44

slide-45
SLIDE 45

Advantages Advantages of gem data structure:

  • Extends n-G-maps and cell-tuple:

– Non-barycentric triangulations. – Arbitrary free borders.

  • Very simple data structure.
  • Very simple topological operators.
  • Simplified connection to geometry.
  • Residues are gems too.
  • Poly-ality (d! views) vs. duality (2 views).

45

slide-46
SLIDE 46

Conclusions and extensions Conclusions:

  • ∆s: barycentric ⊂ colored ⊂ general.
  • Colored ∆s are usable for modeling.
  • Gem data structure for colored ∆s.
  • Gem data structure and operations are very simple.
  • Generalized quad-edge/facet-edge structures.

46

slide-47
SLIDE 47

Further work Future work and open problems:

  • Efficient adaptive subdivision in d dimensions.
  • Colorizing general ∆s by frugal splitting.

47

slide-48
SLIDE 48

References [1] J.-D. Boisonnat, O. Devillers, S. Pion, M. Teillaud, and M. Yvinec. Triangulations in CGAL. Com- putational Geometry, 22(1–3):5–19, 2002. [2] Erik Brisson. Representing geometric structures in d dimensions: Topology and order. Proc. 5th Annual ACM Symp. on Computational Geometry, pages 218–227, June 1989. [3] Donald R. Chand and Sham S. Kapur. An algorithm for convex polytopes. Journal of the ACM, 17(1):78–86, 1970. [4] David P. Dobkin and Michel J. Laszlo. Primitives for the manipulations of three-dimensional subdi-

  • visions. In Proc. 3rd ACM Symp. on Comp. Geometry, pages 86–99. ACM Press, June 1987.

[5] M. Ferri. Una rappresentazione delle variet` a topologiche triangolabili medianti grafi (n + 1)-colorati. Bolletino dell’Unione Matematica Italiana, 13-B:250–260, 1976. [6] Leonidas J. Guibas and Jorge Stolfi. Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams. ACM Transactions on Graphics, 4(2):74–123, April 1985. [7] D.-T. Lee and B. J. Schachter. Two algorithms for constructing a delaunay triangulation. Int. J. Computer Information Science, 9:219–242, 1980. [8] Pascal Lienhardt. Subdivisions of n-dimensional spaces and n-dimensional generalized maps. Proc. 5th Annual ACM Symp. on Computational Geometry, pages 228–236, June 1989. [9] S´

  • stenes Lins. Graph-encoded maps. Journal of Combinatory Theory (B), 32:171–181, 1982.

[10] Jonathan R. Shewchuck. Triangle: Engineering a 2D quality mesh generator and Delaunay triangu-

  • lator. In Proceedings of the 1st Workshop on Applied Computational Geometry, pages 124–133, May

1996.

48