public NodeAET(int Ymax, double X, double d, NodeAET next) { this.Ymax = Ymax; this.X = X; this.d = d; this.next = next; }
public (List <NodeAET>[], int) createET() { int edgeCounter = 0; List <NodeAET>[] ET = new List <NodeAET> [MAX]; foreach (Edge e in edges) { int ind; double m; int Ymax; int Xmin; NodeAET node; if (e.A.Y == e.B.Y) { continue; } edgeCounter++; if (e.A.Y < e.B.Y) { m = (double)(e.B.X - e.A.X) / (double)(e.B.Y - e.A.Y); Ymax = e.B.Y; Xmin = e.A.X; ind = e.A.Y; } else { m = (double)(e.A.X - e.B.X) / (double)(e.A.Y - e.B.Y); Ymax = e.A.Y; Xmin = e.B.X; ind = e.B.Y; } node = new NodeAET(Ymax, Xmin, m, null); if (ET[ind] != null) { ET[ind].Add(node); } else { ET[ind] = new List <NodeAET> { node } }; } return(ET, edgeCounter); }