Esempio n. 1
0
        private static EdgeTable PrepareEdgeTable(Polygon polygon)
        {
            EdgeTable edgeTable = new EdgeTable((int)polygon.GetMaxY() + 1);

            foreach (Edge e in polygon.Edges)
            {
                if (e.Vertices[0].GetY() == e.Vertices[1].GetY())
                {
                    continue;
                }
                EdgeNode node  = new EdgeNode(e);
                int      index = (int)e.GetMinY();
                edgeTable.AddAtIndex(index, node);
            }
            return(edgeTable);
        }