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 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 override void vmethod_0( VattiClipper2I.Class35 eventQueue, VattiClipper2I.Class195 scanBeam) { scanBeam.method_2(this.class200_0); }
public virtual void vmethod_0( VattiClipper2I.Class35 eventQueue, VattiClipper2I.Class195 scanBeam) { }