halfedge mesh representation

19
Halfedge Mesh Representation David Gu 1,2 1 Computer Science Department Stony Brook University Yau Mathematical Sciences Center Tsinghua University Tsinghua University David Gu Conformal Geometry

Upload: others

Post on 30-Apr-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Halfedge Mesh Representation

Halfedge Mesh Representation

David Gu1,2

1Computer Science DepartmentStony Brook University

Yau Mathematical Sciences CenterTsinghua University

Tsinghua University

David Gu Conformal Geometry

Page 2: Halfedge Mesh Representation

Halfedge Data Structure

David Gu Conformal Geometry

Page 3: Halfedge Mesh Representation

Discrete Surfaces

Acquired using 3D scanner.

David Gu Conformal Geometry

Page 4: Halfedge Mesh Representation

Discrete Surfaces

Our group has developed high speed 3D scanner, which cancapture dynamic surfaces 180 frames per second.

David Gu Conformal Geometry

Page 5: Halfedge Mesh Representation

Generic Surface Model - Triangular Mesh

Surfaces are represented as polyhedron triangularmeshes.

Isometric gluing of triangles in E2.

Isometric gluing of triangles in H2,S2.

David Gu Conformal Geometry

Page 6: Halfedge Mesh Representation

Discrete structures

Topology - Simplicial Complex , combinatorics

Conformal Structure - Corner angles (and other variantdefinitions)

Riemannian metrics - Edge lengths

Embedding - Vertex coordinates

David Gu Conformal Geometry

Page 7: Halfedge Mesh Representation

Generic Surface Model - Triangular Mesh

Σ′

e

v

f

David Gu Conformal Geometry

Page 8: Halfedge Mesh Representation

Triangle mesh

Definition (Mesh)

A triangle mesh is a oriented two dimensional simplicalcomplex, generally embedded in R

3.

Our goal is to design a data structure to efficiently representgeneral meshes.

David Gu Conformal Geometry

Page 9: Halfedge Mesh Representation

Generic Surface Model - Triangular Mesh

David Gu Conformal Geometry

Page 10: Halfedge Mesh Representation

halfedge data structure

fundamental classes

Vertex

Halfedge, oriented edge

Edge, non-oriented edge

Face, oriented

Links

All objects are linked together through pointers, such that1 The local Eucler operation can be easily performed2 The memory cost is minimized

David Gu Conformal Geometry

Page 11: Halfedge Mesh Representation

Generic Surface Model - Triangular Mesh

halfedge

vertex

face

face halfedge

prev

next

halfedge

edgeedge

halfedge[2]

David Gu Conformal Geometry

Page 12: Halfedge Mesh Representation

Halfedge class

Pointers

Halfedge pointers: prev, next halfedge;

Vertex pointers: target vertex, source vertex;

Edge pointer: the adjacent edge;

face pointer: the face it belongs to;

next

prev

edge

face

target

source

David Gu Conformal Geometry

Page 13: Halfedge Mesh Representation

Vertex class

Pointers

Halfedge pointers: the first in halfedge

vertex

ℎalfedge

David Gu Conformal Geometry

Page 14: Halfedge Mesh Representation

Edge class

Pointers

Halfedge pointers: to the adjacent two halfedges.

if the edge is on the boundary, then the second halfedgepointer is null.

ℎalfedge

David Gu Conformal Geometry

Page 15: Halfedge Mesh Representation

Face class

Pointers

Halfedge pointers: to the first halfedge.

face

ℎalfedge

David Gu Conformal Geometry

Page 16: Halfedge Mesh Representation

Mesh class

Data members

A list of vertices;

A list of halfedges;

A list of edges;

A list of faces;

Σ′

e

v

f

David Gu Conformal Geometry

Page 17: Halfedge Mesh Representation

Euler Operation

circulating neighbors of a vertex v → v/e/f/h

iterate out-halfedges counter-clock-wisely

iterate in-halfedges counter-clock-wisely

iterate neighboring faces CCWly

iterate neighboring vertices CCWly

Rotate a halfedge about its target vertex clwly:

he = he → next()→ dual();

Rotate a halfedge about its target vertex ccwly:

he = he → dual()→ prev();

David Gu Conformal Geometry

Page 18: Halfedge Mesh Representation

Euler Operation

circulating neighbors of a face f → v/e/f/h

iterate halfedges ccwly

iterate edges ccwly

iterate vertices ccwly

iterate faces ccwly

Circulate halfedges of a face ccwly:

he = he → next()

circulate halfedge of a face clwly:

he = he → prev();

David Gu Conformal Geometry

Page 19: Halfedge Mesh Representation

Attributes

Attributes

Each object stores attributes (traits) which defines otherstructures on the mesh:

metric structure: edge length

angle structure: halfedge

curvature : vertex

conformal factor: vertex

Laplace-Beltrami operator: edge

Ricci flow edge weight; edge

holomorphic 1-form: halfedge

David Gu Conformal Geometry