public void method_5(VattiClipper2I.Class200 edge1, VattiClipper2I.Class200 edge2) { VattiClipper2I.Class197 resultPolygon1 = edge1.ResultPolygon; VattiClipper2I.Class197 resultPolygon2 = edge2.ResultPolygon; int num; for (num = Vector2I.CompareAngles(new Vector2I(edge1.Edge.Dx, edge1.Edge.Dy), new Vector2I(edge2.Edge.Dx, edge2.Edge.Dy)); num == 0 && (edge1.Previous != null && edge2.Previous != null); num = Vector2I.CompareAngles(new Vector2I(edge1.Edge.Dx, edge1.Edge.Dy), new Vector2I(edge2.Edge.Dx, edge2.Edge.Dy))) { Point2I endPoint = new Point2I(edge1.XBottom + edge1.Edge.Dx, edge1.Edge.YTop); Point2I startPoint1 = new Point2I(edge1.XBottom, edge1.Edge.YTop - edge1.Edge.Dy); VattiClipper2I.Class195.smethod_0(resultPolygon1, startPoint1, endPoint); Point2I startPoint2 = new Point2I(edge2.XBottom, edge2.Edge.YTop - edge2.Edge.Dy); VattiClipper2I.Class195.smethod_0(resultPolygon2, startPoint2, endPoint); edge1 = edge1.Previous; edge2 = edge2.Previous; } if (num < 0) { for (LinkedListNode <Point2I> linkedListNode = resultPolygon1.Last; linkedListNode != null; linkedListNode = linkedListNode.Previous) { resultPolygon2.AddFirst(linkedListNode.Value); } } else if (num >= 0) { foreach (Point2I point2I in (LinkedList <Point2I>)resultPolygon1) { resultPolygon2.AddLast(point2I); } } edge1.Previous.ResultPolygon = resultPolygon2; }
public int Compare(VattiClipper2I.Class200 a, VattiClipper2I.Class200 b) { double num1 = a.Edge.method_1(this.int_0); double num2 = b.Edge.method_1(this.int_0); if (num1 < num2) { return(-1); } if (num1 > num2) { return(1); } return(Vector2I.CompareAngles(new Vector2I(a.Edge.Dx, a.Edge.Dy), new Vector2I(b.Edge.Dx, b.Edge.Dy))); }
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; }