예제 #1
0
  /**
   * creates a new face in the triangulation, with the given incident vertices and adjacent
   * triangles.
   */
  public TriangulationDSFace_2<X> createFace(
      TriangulationDSVertex_2<X> v1,
      TriangulationDSVertex_2<X> v2,
      TriangulationDSVertex_2<X> v3,
      TriangulationDSFace_2<X> c1,
      TriangulationDSFace_2<X> c2,
      TriangulationDSFace_2<X> c3) {

    TriangulationDSFace_2<X> newFace = new TriangulationDSFace_2<X>(v1, v2, v3, c1, c2, c3);
    for (int i = 0; i < 3; i++) {
      TriangulationDSFace_2<X> face = newFace.neighbors.get(i);
      if (face != null) {
        // update neighbor pointer in neighboring cell
        face.setNeighbor(face.index(newFace), newFace);
      }
    }
    this.faces.add(newFace);
    return newFace;
  }