computeEdges method

void computeEdges()

Computes uniqueEdges

Implementation

void computeEdges() {
  final List<List<int>> faces = this.faces;
  final List<Vec3> vertices = this.vertices;
  final List<Vec3> edges = uniqueEdges;

  edges.clear();

  Vec3 edge = Vec3();

  for (int i = 0; i != faces.length; i++) {
    final List<int> face = faces[i];
    int numVertices = face.length;
    for (int j = 0; j != numVertices; j++) {
      int k = (j + 1) % numVertices;
      vertices[face[j]].vsub(vertices[face[k]], edge);
      edge.normalize();
      bool found = false;
      for (int p = 0; p != edges.length; p++) {
        if (edges[p].almostEquals(edge) || edges[p].almostEquals(edge)) {
          found = true;
          break;
        }
      }

      if (!found) {
        edges.add(edge.clone());
      }
    }
  }
}