Knowledge

Quad-edge

Source 📝

22: 138: 225:
Each quad-edge contains four references to adjacent quad-edges. Each of the four references points to the next edge counter-clockwise around either a vertex or a face. Each of these references represent either the origin vertex of the edge, the right face, the destination vertex, or the left face.
275:
Using a quad-edge structure, iterating through the topology is quite easy. Often, the interface to quad-edge topologies is through directed edges. This allows the two vertices to have explicit names (start and end), and this gives faces explicit names as well (left and right, relative to a person
252:
The quad-edge structure gets its name from the general mechanism by which they are stored. A single Edge structure conceptually stores references to up to two faces, two vertices, and 4 edges. The four edges stored are the edges starting with the two vertices that are attached to the two stored
276:
standing on start and looking in the direction of end). The four edges are also given names, based on the vertices and faces: start-left, start-right, end-left, and end-right. A directed edge can be reversed to generate the edge in the opposite direction.
148:
The quad-edge data structure represents an edge, along with the edges it is connected to around the adjacent vertices and faces to encode the topology of the graph. An example implementation of the quad-edge data-type is as follows
279:
Iterating around a particular face only requires having a single directed edge to which that face is on the left (by convention) and then walking through all of the start-left edges until the original edge is reached.
145:
The fundamental idea behind the quad-edge structure is the recognition that a single edge, in a closed polygonal mesh topology, sits between exactly two faces and exactly two vertices.
51: 398: 73: 240:
the dual of the graph can be obtained simply by reversing the convention on what is a vertex and what is a face; and
44: 363: 393: 373: 226:
Each quad-edge reference points to a quad-edge and the rotation (from 0 to 3) of the 'arm' it points at.
299: 34: 377: 38: 30: 321:"Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams" 55: 243:
can represent the most general form of a map, admitting vertices and faces of degree 1 and 2.
272:. The mesh itself does not need to be closed in order to form a valid quad-edge structure. 266: 8: 342: 294: 122: 114: 346: 332: 90: 387: 364:
https://www.cs.cmu.edu/afs/andrew/scs/cs/15-463/2001/pub/src/a2/quadedge.html
265:, quad-edge structures are used in programs to store the topology of a 2D or 269: 118: 110: 337: 320: 289: 262: 126: 234: 106: 374:
http://www.ic.unicamp.br/~stolfi/EXPORT/software/c/2000-05-04/libquad/
102: 98: 94: 367: 137: 319:Stolfi, Jorge; Guibas, Leonidas J. (April 1985). 385: 43:but its sources remain unclear because it lacks 318: 229:Due to this representation, the quad-edge: 336: 74:Learn how and when to remove this message 136: 386: 15: 13: 14: 410: 399:Computer graphics data structures 357: 125:. It is a variant of the earlier 20: 376:A quad-edge implementation in 366:A quad-edge implementation in 312: 1: 305: 325:ACM Transactions on Graphics 141:The Quad-Edge Data Structure 117:. It was first described by 7: 283: 132: 10: 415: 300:Doubly connected edge list 247: 233:represents a graph, its 151: 29:This article includes a 256: 237:, and its mirror image. 58:more precise citations. 142: 97:representation of the 394:Computer-aided design 338:10.1145/282918.282923 140: 105:or three-dimensional 113:drawn on a (closed) 295:Combinatorial maps 143: 123:Leonidas J. Guibas 31:list of references 84: 83: 76: 406: 351: 350: 340: 316: 221: 218: 215: 212: 209: 206: 203: 200: 197: 194: 191: 188: 185: 182: 179: 176: 173: 170: 167: 164: 161: 158: 155: 129:data structure. 79: 72: 68: 65: 59: 54:this article by 45:inline citations 24: 23: 16: 414: 413: 409: 408: 407: 405: 404: 403: 384: 383: 360: 355: 354: 317: 313: 308: 286: 259: 250: 223: 222: 219: 216: 213: 210: 207: 204: 201: 198: 195: 192: 189: 186: 183: 180: 177: 174: 171: 168: 165: 162: 159: 156: 153: 135: 103:two-dimensional 80: 69: 63: 60: 49: 35:related reading 25: 21: 12: 11: 5: 412: 402: 401: 396: 382: 381: 371: 359: 358:External links 356: 353: 352: 310: 309: 307: 304: 303: 302: 297: 292: 285: 282: 270:polygonal mesh 258: 255: 249: 246: 245: 244: 241: 238: 152: 134: 131: 91:data structure 82: 81: 39:external links 28: 26: 19: 9: 6: 4: 3: 2: 411: 400: 397: 395: 392: 391: 389: 379: 375: 372: 369: 365: 362: 361: 348: 344: 339: 334: 331:(2): 74‒169. 330: 326: 322: 315: 311: 301: 298: 296: 293: 291: 288: 287: 281: 277: 273: 271: 268: 264: 254: 242: 239: 236: 232: 231: 230: 227: 150: 146: 139: 130: 128: 124: 120: 116: 112: 109:, that is, a 108: 104: 100: 96: 92: 89: 78: 75: 67: 57: 53: 47: 46: 40: 36: 32: 27: 18: 17: 328: 324: 314: 278: 274: 260: 251: 228: 224: 217:quadedge_ref 163:quadedge_ref 147: 144: 119:Jorge Stolfi 87: 85: 70: 64:January 2021 61: 50:Please help 42: 290:Winged edge 263:Winged Edge 127:winged edge 56:introducing 388:Categories 306:References 261:Much like 88:quad-edge 347:52852815 284:See also 202:unsigned 190:quadedge 175:quadedge 133:Overview 99:topology 95:computer 253:faces. 248:Details 181:typedef 154:typedef 115:surface 52:improve 345:  184:struct 157:struct 343:S2CID 111:graph 101:of a 93:is a 37:, or 257:Uses 235:dual 196:next 121:and 368:C++ 333:doi 208:rot 205:int 107:map 390:: 341:. 327:. 323:. 267:3D 86:A 41:, 33:, 380:. 378:C 370:. 349:. 335:: 329:4 220:; 214:} 211:; 199:; 193:* 187:{ 178:; 172:} 169:; 166:e 160:{ 77:) 71:( 66:) 62:( 48:.

Index

list of references
related reading
external links
inline citations
improve
introducing
Learn how and when to remove this message
data structure
computer
topology
two-dimensional
map
graph
surface
Jorge Stolfi
Leonidas J. Guibas
winged edge

dual
Winged Edge
3D
polygonal mesh
Winged edge
Combinatorial maps
Doubly connected edge list
"Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams"
doi
10.1145/282918.282923
S2CID
52852815

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.