Nella computer grafica, la struttura dati del winged edge è un metodo per rappresentare mesh poligonali nella memoria del computer. È un tipo di rappresentazione dei confini e descrive sia la geometria che la topologia di un modello. Vengono utilizzati tre tipi di record: record di vertice, record di bordo e record di faccia. Dato un riferimento a un record di bordo, è possibile rispondere a diversi tipi di query di adiacenza (su bordi, vertici e facce vicini) in tempo costante. Questo tipo di informazioni di adiacenza è utile per algoritmi come la superficie di suddivisione.

La struttura dati del winged edge descrive in modo esplicito la geometria e la topologia di facce, bordi e vertici quando tre o più superfici si uniscono e si incontrano su un bordo comune. L'ordinamento è tale che le superfici sono ordinate in senso antiorario rispetto all'orientamento innato del bordo di intersezione. Inoltre la rappresentazione consente situazioni numericamente instabili.
I record di faccia e vertice sono relativamente semplici, mentre il record di bordo è più complesso.
In breve, il record di bordo ha riferimenti a tutti i record adiacenti, sia quando si sposta attorno a un vertice adiacente che attorno a una faccia adiacente.
class Edge {
Vertex *vert_origin, *vert_destination;
Face *face_left, *face_right;
Edge *edge_left_cw,
*edge_left_ccw,
*edge_right_cw,
*edge_right_ccw;
}
class Vertex {
float x, y, z;
Edge *edge;
}
class Face {
Edge *edge;
}