public void method_1(VattiClipper2I.Class191 localMinimum) { this.class196_0.Y = this.int_0; VattiClipper2I.Class200 edge1 = new VattiClipper2I.Class200() { Edge = localMinimum.Left }; this.list_0.Insert(this.list_0.BinarySearch(edge1, (IComparer <VattiClipper2I.Class200>) this.class196_0), edge1); VattiClipper2I.Class199 class199 = localMinimum.Right; while (class199.Dy == 0) { class199 = class199.Successor; } VattiClipper2I.Class200 edge2 = (VattiClipper2I.Class200)null; if (class199 != null) { edge2 = new VattiClipper2I.Class200() { Edge = class199 }; this.list_0.Insert(this.list_0.BinarySearch(edge2, (IComparer <VattiClipper2I.Class200>) this.class196_0), edge2); } this.class35_0.Add((VattiClipper2I.Class192) new VattiClipper2I.Class194(edge1)); if (edge2 == null) { return; } this.class35_0.Add((VattiClipper2I.Class192) new VattiClipper2I.Class194(edge2)); }
public static void Clip( IList <Polygon2I> clip, IList <Polygon2I> subject, VattiClipper2I.PolygonFillMode fillMode) { List <VattiClipper2I.Class191> localMinimumList = new List <VattiClipper2I.Class191>(); foreach (Polygon2I polygon in (IEnumerable <Polygon2I>)clip) { VattiClipper2I.smethod_0(polygon, (byte)1, localMinimumList); } foreach (Polygon2I polygon in (IEnumerable <Polygon2I>)subject) { VattiClipper2I.smethod_0(polygon, (byte)2, localMinimumList); } localMinimumList.Sort(); VattiClipper2I.Class191 localMinimum = (VattiClipper2I.Class191)null; if (localMinimumList.Count > 1) { VattiClipper2I.Class191 class191_1 = localMinimumList[localMinimumList.Count - 1]; for (int index = localMinimumList.Count - 2; index >= 0; --index) { VattiClipper2I.Class191 class191_2 = localMinimumList[index]; class191_2.Next = class191_1; class191_1 = class191_2; } localMinimum = class191_1; } VattiClipper2I.Class195 class195 = new VattiClipper2I.Class195(); if (localMinimum == null) { return; } class195.EventQueue.Add(localMinimum); }
public void Add(VattiClipper2I.Class191 localMinimum) { this.Add((VattiClipper2I.Class192) new VattiClipper2I.Class193(localMinimum)); while (localMinimum.Next != null && localMinimum.Y == localMinimum.Next.Y) { localMinimum = localMinimum.Next; this.Add((VattiClipper2I.Class192) new VattiClipper2I.Class193(localMinimum)); } }
private static void smethod_1( Point2I p, List <VattiClipper2I.Class191> localMinimumList, VattiClipper2I.Class199 e0, VattiClipper2I.Class199 e1) { VattiClipper2I.Class191 class191 = new VattiClipper2I.Class191() { Y = p.Y }; localMinimumList.Add(class191); VattiClipper2I.Class199 class199_1; VattiClipper2I.Class199 class199_2; if (Vector2I.CompareAngles(new Vector2I(e0.Dx, e0.Dy), new Vector2I(e1.Dx, e1.Dy)) <= 0) { class199_1 = e1; class199_2 = e0; } else { class199_1 = e0; class199_2 = e1; } if (class199_1.Dy == 0) { class191.Left = class199_1.Successor; class199_1.Successor = class199_2; class199_1.method_3(); class191.Right = class199_1; } else { class191.Left = class199_1; class191.Right = class199_2; } e1.XBottom = p.X; }
public override void vmethod_0( VattiClipper2I.Class35 eventQueue, VattiClipper2I.Class195 scanBeam) { scanBeam.method_1(this.class191_0); for (VattiClipper2I.Class191 localMinimum = this.class191_0; localMinimum.Next != null; localMinimum = localMinimum.Next) { if (localMinimum.Y == localMinimum.Next.Y) { scanBeam.method_1(localMinimum); } else { scanBeam.EventQueue.Add(localMinimum.Next); break; } } bool flag1 = false; bool flag2 = false; VattiClipper2I.Class197 outputPolygon = (VattiClipper2I.Class197)null; for (int index = 0; index < scanBeam.ActiveEdges.Count; ++index) { VattiClipper2I.Class200 activeEdge = scanBeam.ActiveEdges[index]; if (activeEdge.Edge.Type == (byte)1) { this.method_0(activeEdge, flag1, flag2, ref outputPolygon); flag1 = !flag1; } else { this.method_0(activeEdge, flag2, flag1, ref outputPolygon); flag2 = !flag2; } } }
public Class193(VattiClipper2I.Class191 localMinimum) : base(localMinimum.Y) { this.class191_0 = localMinimum; }