Esempio n. 1
0
        private static void ClipNextEar(ICollection <Triangle> triangles)
        {
            //find the triangle
            Vertex ear  = earVertices[0].Value;
            Vertex prev = polygonVertices[polygonVertices.IndexOf(ear) - 1].Value;
            Vertex next = polygonVertices[polygonVertices.IndexOf(ear) + 1].Value;

            triangles.Add(new Triangle(ear, next, prev));

            //remove the ear from the shape
            earVertices.RemoveAt(0);
            polygonVertices.RemoveAt(polygonVertices.IndexOf(ear));
            //Log("\nRemoved Ear: {0}", ear);

            //validate the neighboring vertices
            ValidateAdjacentVertex(prev);
            ValidateAdjacentVertex(next);

            //write out the states of each of the lists
#if DEBUG
            /*StringBuilder rString = new StringBuilder();
             * foreach (Vertex v in reflexVertices)
             *  rString.Append(string.Format("{0}, ", v.Index));
             * Log("Reflex Vertices: {0}", rString);
             * StringBuilder cString = new StringBuilder();
             * foreach (Vertex v in convexVertices)
             *  cString.Append(string.Format("{0}, ", v.Index));
             * Log("Convex Vertices: {0}", cString);
             * StringBuilder eString = new StringBuilder();
             * foreach (Vertex v in earVertices)
             *  eString.Append(string.Format("{0}, ", v.Index));
             * Log("Ear Vertices: {0}", eString);*/
#endif
        }
Esempio n. 2
0
        private static void ClipNextEar(ICollection <Triangle> triangles)
        {
            //find the triangle
            Vertex ear  = earVertices[0].Value;
            Vertex prev = polygonVertices[polygonVertices.IndexOf(ear) - 1].Value;
            Vertex next = polygonVertices[polygonVertices.IndexOf(ear) + 1].Value;

            triangles.Add(new Triangle(ear, next, prev));

            //remove the ear from the shape
            earVertices.RemoveAt(0);
            polygonVertices.RemoveAt(polygonVertices.IndexOf(ear));

            //validate the neighboring vertices
            ValidateAdjacentVertex(prev);
            ValidateAdjacentVertex(next);
        }