The document discusses various topics in geometry and topology used in computer graphics and design, including:
1) Different data models used to represent geometry like NURBS (non-uniform rational basis splines) and boundary representations.
2) Concepts of dimensionality where a 0D object is a point, 1D is a curve, 2D is a surface, and 3D is a solid.
3) Terminology used in different fields, with graph theory using objects and links, topology using vertices and edges, and geometry using points and lines.
young call girls in Green Parkπ 9953056974 π escort Service
Β
GEOMETRY-TOPOLOGY
1. 11
Geometry & Topology in Computer Geometry & Design
Dr.ir. Pirouz Nourian
Assistant Professor of Design Informatics
Department of Architectural Engineering & Technology
Faculty of Architecture and Built Environment
2. 22
A Line is something that looks like a line & works like a line!
βIf it looks like a duck, swims like a duck, and quacks like a duck, then
it probably is a duck.β
Image: DUCK: GETTY Images; ILLUSTRATION: MARTIN O'NEILL, from
http://www.nature.com/nature/journal/v484/n7395/full/484451a.html?message-global=remove
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
11. 1111
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
1D 2D 3D
Curved Spaces
12. 1212
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
1D 2D 3D
13. 1313
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
0D: Point (the space therein everywhere resembles a 0-dimensional Euclidean Space)
1D: Curve (the space therein everywhere resembles a 1-dimensional Euclidean Space)
2D: Surface (the space therein everywhere resembles a 2-dimensional Euclidean Space)
3D: Solid (the space therein everywhere resembles a 3-dimensional Euclidean Space)
14. 1414
On terminology
β’ Geometry: Point (0D), Curve(1D), Surface(2D), Solid (3D) [free-form]
β’ Geometry: Point (0D), Line(1D), Polygon(2D), Polyhedron (3D) [piecewise linear]
β’ Topology: Vertex(0D), Edge(1D), Face(2D), Body(3D)
β’ Graph Theory: Object, Link, (and n-Cliques)
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
15. 1515
On terminology
n-D features
Graph Theory Topology Geometry
0D
Object Vertex Point
1D
Link Edge Line (Curve)
2D
Cycle* Face Polygon (Surface)
3D
Clique* Body Polyhedron (Solid)
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Configraphics: Graph Theoretical Methods of Design and Analysis of Spatial Configurations, Nourian, P, 2016
16. 1616
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
β’ 1D: Curves (t parameter)
β’ 2D: Surfaces (u & v parameters)
β’ 3D: B-Reps (each face is a surface)
NURBS Objects
Non Uniform Rational Basis Splines are used for accurately
modeling free-form geometries
17. 1717
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
NURBS Representation
Non Uniform Rational Basis Splines (NURBS) are used for
modeling free-form geometries accurately
Image courtesy of http://www.boatdesign.netImage courtesy of Wikimedia
β’ An elegant mathematical description of a physical drafting aid as a (set of)
parametric equation(s).
18. 1818
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Parametric Curves in General
How do numeric weights correspond to physical weights?
19. 1919
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Splines in Computer Graphics
All types of curves can be modeled as splines
β’
20. 2020
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Bezier interpolation
21. 2121
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
NURBS equations
All from a summary by Markus Altmann:
http://web.cs.wpi.edu/~matt/courses/cs563/talks/nurbs.html
22. 2222
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
NURBS Representation
Non Uniform Rational Basis Splines (NURBS) are used for
modeling free-form geometries accurately
β’ An elegant mathematical description of a physical drafting aid as a (set of)
parametric equation(s).
β’ offer one common mathematical form for both, standard analytical shapes
(e.g. conics) and free form shapes;
β’ provide the flexibility to design a large variety of shapes;
β’ can be evaluated reasonably fast by numerically stable and accurate
algorithms;
β’ are invariant under affine as well as perspective transformations;
β’ are generalizations of non-rational B-splines and non-rational and rational
Bezier curves and surfaces.
23. 2323
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
NURBS Surfaces
Rectangular Patches
24. 2424
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Parametric Space
Images courtesy of David Rutten, from Rhinoscript 101
25. 2525
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Parametric Locations:
26. 2626
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Bilbao Guggenheim Museum
Bus stop near Sebastiaansbrug Delft
27. 2727
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
1D Curvature
πΎ =
1
π
One over the radius of the osculation (kissing) circle
Why did people [for such a long time] believe that the Earth was flat?
28. 2828
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
2D Curvature: Gaussian
Images courtesy of Raja Issa, Essential Mathematics for Computational Design
πΎ πΊ = πΎ πππ πΎ πππ₯
30. 3030
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Blending Surfaces & Continuity
Images courtesy of Raja Issa, Essential Mathematics for Computational Design
31. 3131
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
2D Curvature: Mean
πΎ πΊ =
πΎ πππ +πΎ πππ₯
2
Anish Kapoor, Marsyas, 2002, installation view, Tate Modern
https://en.wikipedia.org/wiki/Mean_curvature
32. 3232
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Boundary Representations
33. 3333
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Boundary Representations
β’ 0D: Point
β’ 1D: Curve (represented by boundary Points)
β’ 2D: Surface (represented by boundary Curves)
β’ 3D: Solid (represented by boundary Surfaces)
34. 3434
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Imagine the Boundary of Manifolds
β’ 0D: Point (the space therein everywhere resembles a 0-dimensional Euclidean Space)
β’ 1D: Curve (the space therein everywhere resembles a 1-dimensional Euclidean Space)
β’ 2D: Surface (the space therein everywhere resembles a 2-dimensional Euclidean Space)
β’ 3D: Solid (the space therein everywhere resembles a 3-dimensional Euclidean Space)
35. 3535
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Boundary Representations
β’ 0D: Point
β’ 1D: Curve (represented by boundary Points)
β’ 2D: Surface (represented by boundary Curves)
β’ 3D: Solid (represented by boundary Surfaces)
β’ Free-Form Parametric surfaces
β’ Piecewise Linear: Polygon Meshes
36. 3636
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
The simplex cell is defined as the locus of points defined by linear interpolations of the corner
vertices with barycentric coordinates denoted by πΌπ, as follows:
π£0, π£1, β¦ , π£ π β β π
πΆ = {πΌ0 π£0 + πΌ1 π£1 + β― . +πΌ π π£ π|πΌπ β₯ 0, 0 β€ π β€ π, ΰ·
π
πΌπ = 1}
β’ 0-simplex: Point
β’ 1-simplex: Line
β’ 2-simplex: Triangle
β’ 3-simplex: Tetrahedron
37. 3737
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
https://sites.google.com/site/dengwirda/jigsaw
https://www.researchgate.net/publication/287398529_An_E
fficient_Approach_for_Solving_Mesh_Optimization_Proble
ms_Using_Newton%27s_Method/figures?lo=1
38. 3838
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
β’ Example:
β’ Important note:
the geometry of faces is not stored; only rendered when needed!
What you see on the screen is not necessarily what you store!
Polygon Mesh Representation
A light-weight model composed of points and a set of topological
relations among them.
Points >Vertices Lines > Edges Polygons > Faces Mesh
T1: {0,4,3}
T2:{0,1,4}
Q1:{1,2,5,4}
39. 3939
β’ The geometry of a Mesh can be represented by its points (known as [geometrical] vertices
in Rhino), i.e. a βlistβ of 3D points in β3
β’ The topology of a Mesh can be represented based on its [topological] vertices, referring to a
βsetβ of 3D points in β3
, there are multiple ways to describe how these vertices are spatially
related (connected or adjacent) to one another and also to edges and faces of the Mesh
β’ Same topology and different geometries:
Mesh
Mesh Geometry versus Mesh Topology
T1: {0,4,3}
T2:{0,1,4}
Q1:{1,2,5,4}T1
T2
Q1
T1
T2
Q1
0
3
1
4
5
2 0
3
1
4 5
2
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
40. 4040
Triangulated Meshes
Some preliminary definitions: fan, star, strip
A triangle strip=:ABCDEF
ο¨ ABC, CBD, CDE, and EDF
A
B
C
D
E
F
A Closed Triangle Fan or a βstarβ=:ABCDEF
A
B
C
D
E
F
ο¨ ABC, ACD, ADE, and AEF
A Triangle Fan=: ABCDE
AB
C
D
E
ο¨ ABC, ACD, and ADE
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
41. 4141
Mesh Boundary
Some preliminary definitions: free* vertices, free* edges
β’ If an edge has less than two faces adjacent to it then it is considered free;
β’ If a vertex is part of such an edge it is considered as free too.
* In Rhinocommon free vertices/edges are referred to as naked.
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
42. 4242
Mesh Border denoted as π (ππππππππππ ππ β²
πππππβ² ππ β²π ππβ²)
β’ A 1D border is the set of connected edges incident to only one face of a 2-
manifold, i.e. composed of free edges. We can conclude that:
β’ If every vertex has a closed fan, or there is no edge of valence (number of
neighbors) less than 2, the given manifold has no border. Example: a box!
non-manifold border manifold borderno [1D] border
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
43. 4343
Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological
University
β’ if a Mesh is supposed to be a 2D manifold then it should meet these criteria:
1. each edge is incident to only one or two faces; and
2. the faces incident to a vertex form a closed or an open fan.
Non manifold Mesh examples: (note why!)
Manifold Mesh
A 2-manifold [everywhere] locally resembles a flat surface
β’ if a Mesh is supposed to be orientable then, it should be possible to find
βcompatibleβ orientations for any two adjacent faces; in which, for each pair of
adjacent faces, the common edge of the two faces has opposite orders.
β’ Example: MΓΆbius band is a 2D manifold Mesh that is non-printable.
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
44. 4444
Image Source: http://prateekvjoshi.com/2014/11/16/homomorphism-vs
homeomorphism/
Mesh Topology: Homeomorphism
clay models that are all topologically equal!
Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological University
Two 2-manifold Meshes A and B are
homeomorphic if their surfaces can be
transformed to one another by topological
transformations (bending, twisting, stretching,
scaling, etc.) without cutting and gluing.
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
45. 4545
Mesh Topology: Homeomorphism
Euler-Poincare Characteristic: key to homeomorphism
Only for 2D boundary representations*
Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological University
π π = π β πΈ + πΉ = 2 1 β π β π
β’ πΏ is the number of [connected] borders
β’ π is the number of βgeneraβ (pl. of genus) or holes
β’ Irrespective of tessellation!
π π = π β πΈ + πΉ = 2 1 β 2 β 0 = β2
* For 3D BReps the Euler characteristic equation will take the form of V-E+F-B
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
47. 4747
Mesh Topology: Homeomorphism
Euler-Poincare Characteristic: key to homeomorphism
β’ Irrespective of tessellation!
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
48. 4848
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Valid Mesh (often expected to be a 2βManifold Surface)
49. 4949
Mesh Topology: Homeomorphism
Euler-Poincare Characteristic: key to homeomorphism
β’ N-Manifold/Non-Manifold: Each point of an n-dimensional manifold has a
neighborhood that is homeomorphic to the Euclidean space of dimension n
β’ Riddle: The above definition implies that for mapping some local geographic features 2D
maps are fine. What about the whole globe? That is not homoeomorphic to a rectangular
surface! How do we do it then?
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
50. 5050
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Poincare Duality
a pairing between k-dimensional features and dual features
of dimension n-k in β π
PRIMAL DUAL
0D vertex (e.g. as a point) 1D edge
1D edge (e.g. as a line segment) 0D vertex
PRIMAL DUAL
0D vertex (e.g. a point) 2D face
1D edge (e.g. a line segment) 1D edge
2D face (e.g. a triangle or a pixel) 0D vertex
PRIMAL DUAL
0D vertex (e.g. a point) 3D body
1D edge (e.g. a line segment) 2D face
2D face (e.g. a triangle or a pixel) 1D edge
3D body (e.g. a tetrahedron or a voxel) 0D vertex
β
β3
β2
Configraphics: Graph Theoretical Methods of Design and Analysis of Spatial Configurations, Nourian, P, 2016
51. 5151
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Poincare Duality
a pairing between k-dimensional features and dual features
of dimension n-k in β π
PRIMAL DUAL
0D vertex (e.g. as a point) 1D edge
1D edge (e.g. as a line segment) 0D vertex
β
A hypothetical street network (a), a Junction-to-Junction adjacency graph (b) versus a Street-to-Street adjacency graph (c), both βundirectedβ,
after Batty (Batty, 2004): red dots represent graph nodes, and blue arcs represent graph links.
Batty, M., 2004. A New Theory of Space Syntax. CASA Working Paper Series, March.
52. 5252
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Poincare Duality
a pairing between k-dimensional features and dual features
of dimension n-k in β π
PRIMAL DUAL
0D vertex (e.g. a point) 2D face
1D edge (e.g. a line segment) 1D edge
2D face (e.g. a triangle or a pixel) 0D vertex
β2
A Voronoi tessellation of 2D space and its dual that is a Delaunay triangulation
53. 5353
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Poincare Duality
a pairing between k-dimensional features and dual features
of dimension n-k in β π
PRIMAL DUAL
0D vertex (e.g. a point) 3D body
1D edge (e.g. a line segment) 2D face
2D face (e.g. a triangle or a pixel) 1D edge
3D body (e.g. a tetrahedron or a voxel) 0D vertex
β3
representing adjacencies between 3D cells or bodies via their dual vertices (Lee, 2001)
54. 5454
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Topological Structure
β’ Mesh Topological Data Models:
Face-Vertex: e.g. πΉ0 = {π0, π5, π4} & π0 β πΉ0, πΉ1, πΉ12, πΉ15, πΉ7
Images courtesy of David Dorfman, from Wikipedia
Face-Vertex (as implemented in Rhinoceros)
55. 5555
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Vertex-Vertex: e.g. π0~{π1, π4, π3}
Face-Vertex: e.g. πΉ0 = π0, π5, π4 , π0 β πΉ0, πΉ1, πΉ12, πΉ15, πΉ7
Winged-Edge: e.g. πΉ0 = πΈ4, πΈ8, πΈ9 , πΈ0 = π0, π1 , πΈ0~ πΉ1, πΉ12 , πΈ0~ πΈ9, πΈ23, πΈ10, πΈ20
Half-Edge: each half edge has a twin edge in opposite direction, a previous and a next
Mesh Topological Structures
Image courtesy of David Dorfman, from Wikipedia
What is explicitly stored as topology of a Mesh: E.g. Face-
Vertex (as implemented in Rhinoceros)
http://doc.cgal.org/latest/HalfedgeDS/index.html
56. 5656
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Topological Structure
β’ Mesh Topological Data Models:
Face-Vertex Example:
http://4.rhino3d.com/5/rhinocommon/html/AllMembers_T_Rhino_Geometry_Collections_MeshTopologyVertexList.htm
Face-Vertex (as implemented in Rhinoceros)
Name Description
ConnectedFaces Gets all faces that are connected to a given vertex.
ConnectedTopologyVertices(Int32) Gets all topological vertices that are connected to a given vertex.
ConnectedTopologyVertices(Int32, Boolean) Gets all topological vertices that are connected to a given vertex.
The MeshTopologyVertexList type exposes the following members.
Half-Edge: Half-Edge Mesh Data Structure, example implementation by Daniel Piker:
http://www.grasshopper3d.com/group/plankton
57. 5757
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Geometry
β’ Polygon vs Face
β’ Triangulate
β’ Quadrangulate
59. 5959
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Normal Vectors of a Mesh
β’ Topological Vertices versus Geometrical Points
β’ Joining Mesh objects: What is a Mesh box?
β’ Welding Meshes: how does it work?
β’ Face Normal versus Vertex Normal
Where do they come from and what do they represent?
60. 6060
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
How to Compute Mesh Normals?
00,
00 ),(
vvuuv
p
u
p
vun
ο½ο½
ο·
οΈ
οΆ
ο§
ο¨
ο¦
οΆ
οΆ
ο΄
οΆ
οΆ
ο½
1
( ) ( )
0
( )( )
N
x i next i i next i
i
N y y z z
ο
ο½
ο½ ο ο«ο₯
1
( ) ( )
0
( )( )
N
z i next i i next i
i
N x x y y
ο
ο½
ο½ ο ο«ο₯
1
( ) ( )
0
( )( )
N
y i next i i next i
i
N z z x x
ο
ο½
ο½ ο ο«ο₯
Martin Newell at Utah (remember the teapot?)
Why?
61. 6161
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Repairing/Reconstructing Geometry
β’ Example: Coonsβ Patch
β’ Code it and get bonus points!
Image courtesy of CVG Lab
62. 6262
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Smoothing
for (int k = 0; k <= L - 1; k++) {
List<Point3d> SmoothV = new List<Point3d>();
for (int i = 0; i <= M.Vertices.Count - 1; i++) {
List<Point3d> Neighbours = Neighbors(M, i);
Point3d NVertex = new Point3d(0, 0, 0);
foreach (point3d neighbor in Neighbours ) {
NVertex = NVertex + neighbor;
}
NVertex = (1 / Ngh.Count) * NVertex;
SmoothV.Add(NVertex);
}
M.Vertices.Clear();
M.Vertices.AddVertices(SmoothV);
A = M;
}
63. 6363
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Smoothing (Relaxation)
Kangaroo Physics: https://vimeo.com/27484394
64. 6464
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
65. 6565
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Literal Boundary Representation
A strategy for design modeling/3D sketching
Curves Surfaces Solids
Curves
From Objects
Points
http://forums.newtek.com/showthread.php?143633-Can-Lightwave-Model-an-airplane-boat-Hull-Like-the-way-they-do-in-this-C4D-tutorial
66. 6666
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Transformative Modeling
A different strategy for design modeling/3D sketching
Solids
Topological
Transformations
Transformed
Solids
Curves
From Objects
https://3dprint.com/88049/3d-printed-topology-joke/
67. 6767
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Subdivision Modelling
A strategy for design modeling/3D sketching
Model a Simple BRep Subdivide to Smoothen
http://slodive.com/design/3ds-max-modeling-tutorials/
68. 6868
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Implicit modelling as level sets
A strategy for design modeling/3D sketching
Model a Scalar Field Get Iso-surfaces