// first loop
vertices = set()
foreach triangle:
foreach vertex of triangle:
vertices.add(vertex.x, vertex.y, vertex.z, vertex.nx, vertex.ny, vertex.nz, vertex.u, vertex.v)
// second loop
indices = array()
foreach triangle:
foreach vertex of triangle:
indices.add(vertices.indexof(vertex.x, vertex.y, vertex.z, vertex.nx, vertex.ny, vertex.nz, vertex.u, vertex.v))