![Page 1: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/1.jpg)
Mesh Representation, part II
based on: Data Structures for Graphics, chapter 12 inFundamentals of Computer Graphics, 3rd ed.
(Shirley & Marschner)Slides by Marc van Kreveld
1
![Page 2: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/2.jpg)
3D objects
facets
edges vertices
2
![Page 3: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/3.jpg)
3D objects
• We typically represent the boundary; the interior is implied to be the bounded subspace
• We will assume linear boundaries here, so we have facets, edges, and vertices (and the interior)
3
![Page 4: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/4.jpg)
Triangle meshes
• Many freeform shapes consist of (many) triangles
4
![Page 5: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/5.jpg)
Triangle meshes
• How are triangles, edges, and vertices allowed to connect?
• How do we represent (store) triangle meshes?• How efficient are such schemes?
Separate triangle meshIndexed triangle meshTriangle neighbor structureWinged-edge structure
5
![Page 6: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/6.jpg)
Winged-edge structure
• Stores connectivity at edges instead of vertices• For one edge, say, e1:– Two vertices are important: v4 and v6
– Two triangles are important: T5 and T6
– Four edges are important: e2, e14, e5, and e8
T6T5
T4T3
T2
T1
T7
v7
v6
v5
v4
v3
v2
v1
v8
e7
e6
e5
e4
e3
e2
e1
e8
e12
e11
e10e9
e13
e14
6
![Page 7: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/7.jpg)
Winged-edge structure
• Give e1 a direction, then– v4 is the tail and v6 is the head
– T5 is to the left and T6 is to the right
– e2 is previous on the left side, e14 is next on the left side, e5 is previous on the right side, and e8 is next on the right side
T6T5
T4T3
T2
T1
T7
v7
v6
v5
v4
v3
v2
v1
v8
e7
e6
e5
e4
e3
e2
e1
e8
e12
e11
e10e9
e13
e14
7
![Page 8: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/8.jpg)
Winged-edge structure
• Give e1 a direction, then– v4 is the tail and v6 is the head
– T5 is to the left and T6 is to the right
– e2 is previous on the left side, e14 is next on the left side, e5 is previous on the right side, and e8 is next on the right side
T6T5
v6
v4
e5
e2
e1
e8e14 lnext
left
head
tail
right
lprev
rnext
rprev
8
![Page 9: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/9.jpg)
Winged-edge structure
lnext
left
head
tail
right
lprev
rnext
rprev
Edge { Edge lprev, lnext, rprev, rnext; Vertex head, tail; Triangle left, right}
Vertex { double x, y, z; Edge e; // any incident}
Triangle { Edge e; // any incident}
9
![Page 10: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/10.jpg)
Winged-edge structure
• Also works for meshes that do not only use triangles– There is still one head and one tail– There is still one left face and one right face– There are still previous and next edges in the left face and
in the right face: e13, e7, e6, and e8
e7
e6e4
e3 e1
e8
e12
e11
e10
e13
Note: The triangle neighbor structure does not generalize
10
![Page 11: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/11.jpg)
Winged-edge structure
• It also works for planar subdivisions like country maps
11
![Page 12: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/12.jpg)
Winged-edge structure
Edge { Edge lprev, lnext, rprev, rnext; Vertex head, tail; Face left, right}
Vertex { double x, y; Edge e; // any incident}
Face { Edge e; // any incident}
e7
e6e4
e3 e1
e8
e12
e11
e10
e13
12
![Page 13: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/13.jpg)
Winged-edge structure, storage
• A triangular mesh with nv vertices has 3nv edges and 2nv triangles
• A vertex needs 3(4) units of storage (with z coord.)• An edge needs 8 units of storage• A triangle needs 1 unit of storage
3(4) + 38 + 21 = 29(30) nv units of storage
13
![Page 14: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/14.jpg)
Winged-edge structure
• However, the arbitrary orientation of edges makes traversal of the boundary of a face awkward
e7
e6e4
e3 e1
e8
e12
e11
e10
e13e2
e5
F5
With consistent orientations, we could report the vertices of a face iteratively:
while ( e estart ) { e = e.lnext; report e.tail.coordinates;}
But consistent orientations usually do not exist
x
14
![Page 15: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/15.jpg)
Winged-edge structure
while ( e estart ) { if (forward) { report e.tail.coordinates; enew = e.lnext; if (enew.head == e.head) forward = false; } else { report e.head.coordinates; enew = e.rprev; if (enew.tail == e.tail) forward = true; } e = enew;}
eface
enew
eface
enew
15
![Page 16: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/16.jpg)
Half-edge structure
• A.k.a. doubly-connected edge list, DCEL• Allows the purely forward traversal of the boundary
of a face• Every edge is represented as two half-edges
(split lengthwise!)
16
![Page 17: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/17.jpg)
Half-edge structure
• A consistent orientation around every face now works!• Every half-edge is
incident only tothe face to its left(by convention)
then every facehas its half-edges oriented counterclockwise
17
![Page 18: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/18.jpg)
Half-edge structureHEdge { HEdge next, pair; Vertex head; Face f;}
Vertex { double x, y; HEdge h; // any incident half-edge // pointing to this vertex}
Face { HEdge h; // any incident half-edge in its boundary}
next
f
head
pair
18
![Page 19: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/19.jpg)
Half-edge structure
• A half-edge h can find itstail as h.pair.head
• A half-edge h can findthe other face incidentto the edge it is part ofas h.pair.f
• A half-edge cannot find its prev easily (prev is the opposite of next); it is a design choice to include an extra prev in HEdge or not
next
f
head
pair
19
![Page 20: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/20.jpg)
Half-edge structure, storage
• A triangular mesh with nv vertices has 3nv edges and 2nv triangles
• A vertex needs 3(4) units of storage (with z coord.)• A half-edge needs 4 units of storage• A triangle needs 1 unit of storage
3(4) + 324 + 21 = 29(30) nv units of storage
20
![Page 21: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/21.jpg)
Half-edge structure, storage
• A half-edge needs 5 units of storage when prev is also stored
3(4) + 325 + 21 = 35(36) nv units of storage
21
![Page 22: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/22.jpg)
Half-edge structure, storage
• For country maps instead of triangular meshes, a map with nv vertices has nv edges and << nv faces
3 + 24 = 11 nv units of storage
22
![Page 23: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/23.jpg)
Half-chain structure
• For country maps instead of triangular meshes, a map with nv vertices has nv edges and << nv faces
• In GIS, the long sequences of degree-2 vertices (chains) defining the shape of a border are stored differently, with the vertices in an array, so next and prev are not needed
• We can define half-chains• The whole half-chain has the same left face• Each half-chain has a next half-chain, a prev half-chain,
and a pair half-chain23
![Page 24: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/24.jpg)
24
Half-chain structure
• Chains are made by splitting the subdivision at all vertices of degree at least 3 or exactly 1; onlythese vertices are objects in the half-chainstructure
• All vertices in between two suchvertices have degree 2
• A chain always starts and ends at a vertex of degree 1 or at least 3, and has zero or more degree 2 vertices
• Half-chains are the two “sides”of a chain, splitting length-wise
![Page 25: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/25.jpg)
Half-chain structure
25
next
pair
head
f
Sequences of degree-2 vertices inside a chain are stored in an array, referenced by both half-chains that form a pair
prev
![Page 26: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/26.jpg)
Half-chain structure, storage
• Assume nv vertices of which nw are of degree 1 or at least 3 (so only nw vertex objects)
• If nw << nv, then we have nv edges, < 3nw chains, and < 2nw faces
• The total storage requirements are just 2nv + 29nw units (much better than the 11nv units for the half-edge structure!)
• For example, a part of Europe with 20 three-country points and 100,000 vertices (for the shape of borders) requires less than 200,600 units
26
![Page 27: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/27.jpg)
Half-edge structure, disconnected
27
Subdivisions have loose components like island
![Page 28: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/28.jpg)
Half-edge structure, disconnected
28
Internal holes can also exist
![Page 29: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/29.jpg)
Half-edge structure
• Planar subdivisions may have “islands/holes” in faces: faces from which pieces are excluded
• In this case the graph of vertices and edges is not a connected graph
f
29
![Page 30: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/30.jpg)
Half-edge structure
• Faces with holes are common in 3D CAD/CAM models too
30
![Page 31: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/31.jpg)
Half-edge structure for subdivisions with holes
HEdge { HEdge next, pair; Vertex head; Face f;}
Vertex { double x, y, x; HEdge h; // any incident half-edge // pointing to this vertex}
Face { HEdge h; // any incident half-edge in its boundary HEdge inner[k]; // for each hole, any incident half-edge; // allows up to k holes in the face}
31
![Page 32: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/32.jpg)
Half-edge structure for subdivisions with holes
f
f.h
f.inner[0]
f.inner[1]
32
![Page 33: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/33.jpg)
Half-edge structure for subdivisions with holes
• Every bounded face has exactly one counterclockwise cycle of half-edges bounding it from the outside, and zero or more clockwise cycles of half-edges bounding that face from the inside (holes)
• The structure also works for any planar straight-line graph (PSLG), with possibly:– dangling edges or other dangling structures– loose edges
33
![Page 34: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/34.jpg)
Planar versus non-planar
• None of the structures allow edge-crossings, as faces would not be well-defined, and points can lie in multiple faces at once
34
![Page 35: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/35.jpg)
3D meshes• So far, we can represent 2D subdivisions
and boundaries of 3D solids, but not 3D subdivisions
35
![Page 36: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/36.jpg)
3D tetrahedral meshes
• The 3D version of a triangle is a tetrahedron• The 3D version of a triangular mesh is a tetrahedral
mesh (and triangulation vs. tetrahedralization)
36
![Page 37: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/37.jpg)
3D tetrahedral meshes
• A 3D tetrahedral mesh has the following features:– vertices (0-dimensional)– edges (1-dimensional)– triangles (2-dimensional)– tetrahedra (3-dimensional)
37
![Page 38: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/38.jpg)
3D tetrahedral meshes
• In a proper 3D tetrahedral mesh:– Every vertex is endpoint of some edge– For every edge, both endpoints are vertices of the mesh– Every edge is a side of some triangle– For every triangle, its three sides are edges of the mesh– Every triangle is a facet of some tetrahedron– For every tetrahedron, its four facets are triangles of the
mesh– If edges, triangles, and tetrahedra are considered to be
open, then no two features of the mesh intersect
38
![Page 39: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/39.jpg)
3D tetrahedral meshes
• Every polygon can be converted into a triangular mesh without needing extra vertices, but polyhedra exist that cannot be converted into a tetrahedral mesh without extra edges and vertices
Schönhardt polyhedron39
![Page 40: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/40.jpg)
3D tetrahedral meshes
• Representation of 3D tetrahedral meshes:– Indexed tetrahedron mesh: classes for vertex and
tetrahedron; a tetrahedron can access its four vertices
– Tetrahedron neighbor structure: classes for vertex and tetrahedron; a tetrahedron can access its four vertices and its (up to) four neighbor tetrahedra
– Simplices structure (described next; for any dimension): classes for vertex, edge, triangle, and tetrahedron
40
![Page 41: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/41.jpg)
Simplices structure
• A k-simplex is the convex hull defined by k+1 points that do not lie in any single (k-1)-dim. linear variety
• Equivalent: the k+1 points p0, ..., pk are such that the vectors p0p1, p0p2, ..., p0pk are linearly independent
– 0-simplex: point / vertex– 1-simplex: line segment / edge– 2-simplex: triangle– 3-simplex: tetrahedron– 4-simplex: convex hull of 5 non-co-hyperplanar
points in 4-space41
![Page 42: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/42.jpg)
Simplices structure
• A vertex has access to one incident edge• An edge has access to its vertices and one
incident triangle• A triangle has access to
its three edges and both incident tetrahedra
• A tetrahedron has access to its four triangles
vertex
edge
triangle
tetrahedron
some
some
both all 4
all 3
both
42
![Page 43: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/43.jpg)
Simplices structure
• Can also be used for 4D and even higher-D• 4D can be space-time for changing objects• Higher-D can be the space of location and orientation
of a rigid 3D object (6D)
43
![Page 44: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/44.jpg)
Simplices structure
• Always: k-simplices have access to (k-1)-simplices and (k+1)-simplices
0-dim
1-dim
(d-1)-dim
d-dim
some
some
both all d+1
all 3
both
some all d
44
![Page 45: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/45.jpg)
Quadrilateral meshes
45
![Page 46: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/46.jpg)
Quadrilateral meshes
46
![Page 47: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/47.jpg)
Not every subdivision with triangular faces is a triangular mesh
47
![Page 48: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/48.jpg)
Meshes have multi-resolution possibilities
48
![Page 49: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/49.jpg)
Representation of 3D models: summary
• Boundary or solid model representation• Triangle mesh, quadrilateral mesh, general faces
(good for maps)• Meshes that store incidence/adjacency of features
allow efficient traversal on the mesh faster (local) operations
• Triangle strips may be useful for transmitting meshes• Higher-dimensional mesh representations exist as
well
49
![Page 50: Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56649d015503460f949d3ec4/html5/thumbnails/50.jpg)
Questions
1. Write code to report all vertices adjacent to a given vertex v in a half-edge structure for a triangular mesh. Is your solution clockwise or counter-clockwise? Now do it the other way around
2. Do the same for general subdivisions, clockwise and counter-clockwise
3. Write code to report all vertices in the boundary of a face that may have holes and is given in a half-edge structure
4. How do you access the four 3-simplices adjacent to a given 3-simplex in a simplices structure in 3D?
5. How many units of storage are needed in the different structures for representing tetrahedrilizations?
50