示例#1
0
 public AETEntry(Edge e, AETEntry next = null)
 {
     yMax = Math.Max(e.Y1, e.Y2);
     xMin = yMax == e.Y1 ? e.X2 : e.X1;
     dxdy = (e.X2 - e.X1) / (e.Y2 - e.Y1);
     Next = next;
 }
示例#2
0
        private void FillET(List <Edge> edges)
        {
            foreach (var e in edges)
            {
                if ((int)e.Y1 == (int)e.Y2)
                {
                    continue;
                }

                int      index = (int)Math.Min(e.Y1, e.Y2);
                AETEntry entry = new AETEntry(e, ET[index]);
                ET[index] = entry;
            }
        }