Beispiel #1
0
 public void method_0()
 {
     for (double?nullable = this.class28_0.method_4(); nullable.HasValue; nullable = this.class28_0.method_4())
     {
         this.double_1 = nullable.Value;
         bool flag = false;
         while (this.class103_0 != null && this.class103_0.point2D_0.Y == this.double_1)
         {
             VattiClipper2DV3.Class100 edge1 = new VattiClipper2DV3.Class100((VattiClipper2DV3.Class102) this.class103_0, this.class103_0.class102_0);
             edge1.double_2 = edge1.point2D_0.X;
             VattiClipper2DV3.Class100 edge2 = new VattiClipper2DV3.Class100((VattiClipper2DV3.Class102) this.class103_0, this.class103_0.class102_1);
             int index = this.list_1.BinarySearch(edge1, (IComparer <VattiClipper2DV3.Class100>)VattiClipper2DV3.Class100.Class101.class101_0);
             if (index < 0)
             {
                 index = ~index;
             }
             this.list_1.Insert(index, edge1);
             this.list_1.Insert(index + 1, edge2);
             this.method_1(edge1);
             this.method_1(edge2);
             this.class103_0 = this.class103_0.class103_0;
             flag            = true;
         }
         if (flag && this.class103_0 != null)
         {
             this.class28_0.TryAdd(this.class103_0.point2D_0.Y);
         }
         this.list_3.Clear();
         this.double_0 = double.NegativeInfinity;
         for (this.int_0 = 0; this.int_0 < this.list_1.Count; ++this.int_0)
         {
             VattiClipper2DV3.Class100 edge = this.list_1[this.int_0];
             if (edge.double_2 != this.double_0 && !double.IsNegativeInfinity(this.double_0))
             {
                 this.method_3();
             }
             this.double_0 = edge.double_2;
             if (edge.point2D_0.Y == this.double_1)
             {
                 this.method_2(edge);
             }
             else if (edge.point2D_1.Y == this.double_1)
             {
                 if (edge.class102_1.class102_0 != null)
                 {
                     this.method_2(new VattiClipper2DV3.Class100(edge.class102_1, edge.class102_1.class102_0));
                 }
             }
             else
             {
                 this.method_5(edge);
             }
         }
         this.method_3();
         List <VattiClipper2DV3.Class100> list1 = this.list_1;
         this.list_1 = this.list_3;
         this.list_3 = list1;
     }
 }
Beispiel #2
0
 private void method_2(VattiClipper2DV3.Class100 edge)
 {
     if (edge.IsHorizontal)
     {
         this.list_2.Add(edge);
     }
     else
     {
         edge.method_0();
         edge.double_2 = edge.point2D_0.X;
         this.method_5(edge);
         this.class28_0.TryAdd(edge.point2D_1.Y);
     }
 }
Beispiel #3
0
 private void method_1(VattiClipper2DV3.Class100 edge)
 {
     while (edge.IsHorizontal && edge.class102_1.class102_0 != null)
     {
         edge          = new VattiClipper2DV3.Class100(edge.class102_1, edge.class102_1.class102_0);
         edge.double_2 = edge.point2D_0.X;
         int index = this.list_1.BinarySearch(edge, (IComparer <VattiClipper2DV3.Class100>)VattiClipper2DV3.Class100.Class101.class101_0);
         if (index < 0)
         {
             index = ~index;
         }
         this.list_1.Insert(index, edge);
     }
 }
Beispiel #4
0
            internal void method_5(VattiClipper2DV3.Class100 edge)
            {
                bool flag = false;

                for (int index = this.list_3.Count - 1; index >= 0; --index)
                {
                    if (edge.double_2 >= this.list_3[index].double_2)
                    {
                        this.list_3.Insert(index + 1, edge);
                        flag = true;
                        break;
                    }
                }
                if (flag)
                {
                    return;
                }
                this.list_3.Insert(0, edge);
            }