GenerateNormalsAssumingTriangleMode method

void GenerateNormalsAssumingTriangleMode()

Implementation

void GenerateNormalsAssumingTriangleMode() {
  List<VM.Vector3> normals =
      List.generate(vertices.length, (i) => VM.Vector3.zero());
  VM.Vector3 temp = VM.Vector3.zero();
  VM.Vector3 norm = VM.Vector3.zero();
  for (Face3 f3 in faces3) {
    NormalFromPoints(
        vertices[f3.a], vertices[f3.b], vertices[f3.c], temp, norm);
    normals[f3.a] = norm.clone();
    normals[f3.b] = norm.clone();
    normals[f3.c] = norm.clone();
  }

  for (Face4 f4 in faces4) {
    NormalFromPoints(
        vertices[f4.a], vertices[f4.b], vertices[f4.c], temp, norm);
    normals[f4.a] = norm.clone();
    normals[f4.b] = norm.clone();
    normals[f4.c] = norm.clone();
    normals[f4.d] = norm.clone();
  }
  attributes[aNormal] = normals;
}