25.01.2015 Views

Digital Geometry Processing Basics DCEL (cont.)

Digital Geometry Processing Basics DCEL (cont.)

Digital Geometry Processing Basics DCEL (cont.)

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Digital</strong> <strong>Geometry</strong> <strong>Processing</strong><br />

<strong>Basics</strong><br />

<strong>DCEL</strong> (Doubly-Connected Edge List)<br />

<br />

Record for each face, edge and vertex:<br />

<br />

<br />

<br />

Geometric information<br />

Topological information<br />

Attribute information<br />

<br />

aka Half-Edge Structure<br />

University of<br />

British Columbia<br />

27<br />

<strong>DCEL</strong> (<strong>cont</strong>.)<br />

<br />

<br />

<br />

<br />

University of<br />

British Columbia<br />

Vertex record:<br />

Coordinates<br />

next(e)<br />

Pointer to one<br />

half-edge that has<br />

prev(e) IncFace(e) e<br />

v as its origin<br />

twin(e)<br />

Face record:<br />

Pointer to one halfedge<br />

on its<br />

boundary<br />

origin(e)<br />

Half-edge record:<br />

Pointer to its origin, origin(e)<br />

Pointer to its twin half-edge, twin(e)<br />

Pointer to the face it bounds, IncidentFace(e) (face lies to left<br />

of e when traversed from origin to destination)<br />

Next and previous edge on boundary of IncidentFace(e)<br />

28<br />

Copyright 2002-2006 A. Sheffer & C. Gotsman<br />

UBC/ Technion<br />

Page 14


<strong>Digital</strong> <strong>Geometry</strong> <strong>Processing</strong><br />

<strong>Basics</strong><br />

<strong>DCEL</strong> (<strong>cont</strong>.)<br />

<br />

<br />

Operations supported:<br />

<br />

<br />

Walk around boundary of given face<br />

Visit all edges incident to vertex v<br />

Queries:<br />

Most queries are O(1)<br />

University of<br />

British Columbia<br />

29<br />

<strong>DCEL</strong> - example<br />

v 3<br />

f<br />

f 1 e<br />

e 3,2<br />

3,1<br />

f 2<br />

v<br />

e<br />

e 8,1<br />

5,1 4<br />

f 4<br />

3<br />

e 7,1<br />

v 5<br />

e 1,1<br />

e 6,1<br />

e 4,1<br />

e 7,2<br />

e 9,1<br />

v 1<br />

v 2<br />

e 2,1<br />

e 4,2<br />

v 6<br />

University of<br />

British Columbia<br />

Vertex<br />

coordinate<br />

V 1<br />

(x 1<br />

,y 1<br />

,z 1<br />

)<br />

v 2<br />

(x 2<br />

,y 2<br />

,z 2<br />

)<br />

v 3<br />

v 4<br />

(x 3<br />

,y 3<br />

,z 3<br />

)<br />

v 5<br />

(x 4<br />

,y 4<br />

,z 4<br />

)<br />

(x 5<br />

,y 5<br />

,z 5<br />

)<br />

v 6<br />

(x 6<br />

,y 6<br />

,z 6<br />

)<br />

IncidentEdge<br />

e 2,1<br />

e 5,1<br />

e 1,1<br />

e 7,1<br />

e 9,1<br />

e 7,2<br />

face<br />

edge<br />

f 1<br />

e 1,1<br />

f 2<br />

f 3<br />

e 5,1<br />

e 4,2<br />

f 4<br />

e 8,1<br />

30<br />

Copyright 2002-2006 A. Sheffer & C. Gotsman<br />

UBC/ Technion<br />

Page 15


<strong>Digital</strong> <strong>Geometry</strong> <strong>Processing</strong><br />

<strong>Basics</strong><br />

<strong>DCEL</strong> – example (<strong>cont</strong>.)<br />

v 3<br />

f<br />

f 1 e<br />

e 3,2<br />

3,1<br />

f 2<br />

v<br />

e<br />

e 8,1<br />

5,1 4<br />

f 4<br />

3<br />

e 7,1<br />

v 5<br />

e 1,1<br />

e 6,1<br />

e 4,1<br />

e 7,2<br />

e 9,1<br />

v 6<br />

v 1<br />

v 2<br />

Half-edge<br />

origin<br />

twin<br />

IncidentFace<br />

next<br />

prev<br />

e 3,1<br />

v 2<br />

e 3,2<br />

e 4,1<br />

v 3<br />

v 4<br />

e 4,2<br />

v 3<br />

e 2,1<br />

e 4,2<br />

e 6,1<br />

e 3,2<br />

e 3,1<br />

e 4,2<br />

e 4,1<br />

f 1<br />

f 2<br />

f 2<br />

f 3<br />

e 1,1<br />

e 5,1<br />

e 3,2<br />

e 7,1<br />

e 2,1<br />

e 4,1<br />

e 5,1<br />

University of<br />

British Columbia<br />

31<br />

<strong>DCEL</strong> – pros and cons<br />

<br />

Pros:<br />

<br />

<br />

All queries in O(1) time<br />

All operations are O(1) (usually)<br />

<br />

Cons:<br />

<br />

Represents only manifold meshes<br />

University of<br />

British Columbia<br />

32<br />

Copyright 2002-2006 A. Sheffer & C. Gotsman<br />

UBC/ Technion<br />

Page 16

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!