(s, nv, vfHead, slotNext, slotPrev, slotVert)
| 309 | } |
| 310 | |
| 311 | // ── Linked-list vertex-face incidence ──────────────────────────────────────── |
| 312 | // Replaces the old Array<Set<number>> adjacency. For each face f and vertex |
| 313 | // position k, slot s = f*3+k tracks face f in vertex v = faces[f*3+k]'s list. |
| 314 | // |
| 315 | // vfHead[v] → first slot for vertex v (-1 = empty) |
| 316 | // slotFace[s] → face tracked by slot s |
| 317 | // slotVert[s] → vertex that currently owns slot s |
| 318 | // slotNext[s] → next slot in vertex's list (-1 = end) |
| 319 | // slotPrev[s] → prev slot in vertex's list (-1 = head) |
| 320 | // faceSlot[f*3+k] → slot for face f's k-th vertex incidence |
| 321 | |
| 322 | function buildLinkedAdj(faces, faceCount, vertCount) { |
no test coverage detected