ExtractWireframe function
Implementation
MeshData ExtractWireframe(RenderProgram prog, MeshData md) {
assert(false);
assert(md._drawMode == GL_TRIANGLES);
MeshData out = prog.MakeMeshData(md.name, GL_LINES);
out.AddVertices(md._vertices);
final List<int> faces = md._faces!;
// Probably wrong
List<int> lines = List.generate(faces.length * 2, (i) => i);
for (int i = 0; i < faces.length; i += 3) {
lines[i * 2 + 0] = faces[i + 0];
lines[i * 2 + 1] = faces[i + 1];
lines[i * 2 + 2] = faces[i + 1];
lines[i * 2 + 3] = faces[i + 2];
lines[i * 2 + 4] = faces[i + 2];
lines[i * 2 + 5] = faces[i + 0];
}
out.AddFaces(lines);
return out;
}