Exemple #1
0
        private void addNewFaces(FaceList newFaces, Vertex eyeVtx, List <HalfEdge> horizon)
        {
            newFaces.clear();
            HalfEdge hedgeSidePrev  = null;
            HalfEdge hedgeSideBegin = null;

            for (int i = 0; i < horizon.Count; i++)
            {
                HalfEdge horizonHe = horizon[i];
                HalfEdge hedgeSide = addAdjoiningFace(eyeVtx, horizonHe);
                if (debug)
                {
                    Print("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);
        }