protected void addNewFaces(FaceList newFaces, Vertex eyeVtx, ArrayList horizon) { newFaces.clear(); HalfEdge hedgeSidePrev = null; HalfEdge hedgeSideBegin = null; foreach (object o in horizon) { HalfEdge horizonHe = (HalfEdge)o; HalfEdge hedgeSide = addAdjoiningFace(eyeVtx, horizonHe); if (debug) { Console.WriteLine( "new face: " + hedgeSide.face.getVertexString()); } if (hedgeSidePrev != null) { hedgeSide.next.setOpposite(hedgeSidePrev); } else { hedgeSideBegin = hedgeSide; } newFaces.add(hedgeSide.getFace()); hedgeSidePrev = hedgeSide; } hedgeSideBegin.next.setOpposite(hedgeSidePrev); }