ExtractWireframe function

MeshData ExtractWireframe(
  1. RenderProgram prog,
  2. MeshData md
)

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;
}