Polygonal Mesh (half-edge)

Polygonal Mesh (half-edge)

Per fare geometry processing, quindi applicare tutti gli algoritmi visti finora, ne necessario prima di tutto garantire la possibilità di operazioni ancora più basilari che hanno lo scopo di darmi le informazioni che poi sfrutto per il geometry processing.
Queste operazioni basilari non sono applicabili con la lista facce e la lista vertici (connettività e geometria) mi servono strutture dati più adatte a queste operazioni basilari:
notion image
Nuova soluzione: half-edge
half-edge = edge orientato, detto half-edge perché rappresenta “la metà di un edge”. Ogni edge della mesh è composto da due half-edge
  • H_k = indice half edge
  • V = vertice di inizio HE
  • F = faccia adiacente all’HE interno
    • se esterno nn c’è nulla
  • NEXT= HE successivo
ESEMPIO
  • H0 è half-edge esterno, senza faccie adiacenti. Il HE successivo è H2 e quello opposto (interno) è H1
    • se V mi dive il vertice di inizio, quello di fine lo ottengo al V di NEXT oppure di OPP
notion image
OSSERVAZIONI
caratteristiche a confronto (lettura veloce)
notion image
notion image
Pro e contro
notion image
notion image
  • Ci sono anche varianti di strutture half edge per mesh NON 2 manifold
esempi d’uso
notion image
notion image
notion image
notion image
notion image
  • Funziona anche su mesh con “dangling edge” → semplicemente edge esterni