Esempio n. 1
0
 private static void FillColumn1(ref NineRectangle nqV, ref NineRectangle nqT, int columnStart, ref Color color, MeshBuffer m)
 {
     if (nqV.xx.y == nqV.yy.y)
     {
         if (nqV.yy.y == nqV.zz.y)
         {
             if (nqV.zz.y != nqV.ww.y)
             {
                 switch (columnStart)
                 {
                     case 0:
                     {
                         m.FastCell(nqV.xz, nqV.yw, nqT.xz, nqT.yw, ref color);
                         break;
                     }
                     case 1:
                     {
                         m.FastCell(nqV.yz, nqV.zw, nqT.yz, nqT.zw, ref color);
                         break;
                     }
                     case 2:
                     {
                         m.FastCell(nqV.zz, nqV.ww, nqT.zz, nqT.ww, ref color);
                         break;
                     }
                 }
             }
         }
         else if (nqV.zz.y != nqV.ww.y)
         {
             int num = m.Alloc(PrimitiveKind.Grid1x2, 0f, color);
             switch (columnStart)
             {
                 case 0:
                 {
                     m.v[num].x = nqV.xx.x;
                     m.v[num].y = nqV.yy.y;
                     m.v[num].u = nqT.xx.x;
                     m.v[num].v = nqT.yy.y;
                     m.v[num + 1].x = nqV.yy.x;
                     m.v[num + 1].y = nqV.yy.y;
                     m.v[num + 1].u = nqT.yy.x;
                     m.v[num + 1].v = nqT.yy.y;
                     m.v[num + 2].x = nqV.xx.x;
                     m.v[num + 2].y = nqV.zz.y;
                     m.v[num + 2].u = nqT.xx.x;
                     m.v[num + 2].v = nqT.zz.y;
                     m.v[num + 3].x = nqV.yy.x;
                     m.v[num + 3].y = nqV.zz.y;
                     m.v[num + 3].u = nqT.yy.x;
                     m.v[num + 3].v = nqT.zz.y;
                     m.v[num + 4].x = nqV.xx.x;
                     m.v[num + 4].y = nqV.ww.y;
                     m.v[num + 4].u = nqT.xx.x;
                     m.v[num + 4].v = nqT.ww.y;
                     m.v[num + 5].x = nqV.yy.x;
                     m.v[num + 5].y = nqV.ww.y;
                     m.v[num + 5].u = nqT.yy.x;
                     m.v[num + 5].v = nqT.ww.y;
                     break;
                 }
                 case 1:
                 {
                     m.v[num].x = nqV.yy.x;
                     m.v[num].y = nqV.yy.y;
                     m.v[num].u = nqT.yy.x;
                     m.v[num].v = nqT.yy.y;
                     m.v[num + 1].x = nqV.zz.x;
                     m.v[num + 1].y = nqV.yy.y;
                     m.v[num + 1].u = nqT.zz.x;
                     m.v[num + 1].v = nqT.yy.y;
                     m.v[num + 2].x = nqV.yy.x;
                     m.v[num + 2].y = nqV.zz.y;
                     m.v[num + 2].u = nqT.yy.x;
                     m.v[num + 2].v = nqT.zz.y;
                     m.v[num + 3].x = nqV.zz.x;
                     m.v[num + 3].y = nqV.zz.y;
                     m.v[num + 3].u = nqT.zz.x;
                     m.v[num + 3].v = nqT.zz.y;
                     m.v[num + 4].x = nqV.yy.x;
                     m.v[num + 4].y = nqV.ww.y;
                     m.v[num + 4].u = nqT.yy.x;
                     m.v[num + 4].v = nqT.ww.y;
                     m.v[num + 5].x = nqV.zz.x;
                     m.v[num + 5].y = nqV.ww.y;
                     m.v[num + 5].u = nqT.zz.x;
                     m.v[num + 5].v = nqT.ww.y;
                     break;
                 }
                 case 2:
                 {
                     m.v[num].x = nqV.zz.x;
                     m.v[num].y = nqV.yy.y;
                     m.v[num].u = nqT.zz.x;
                     m.v[num].v = nqT.yy.y;
                     m.v[num + 1].x = nqV.ww.x;
                     m.v[num + 1].y = nqV.yy.y;
                     m.v[num + 1].u = nqT.ww.x;
                     m.v[num + 1].v = nqT.yy.y;
                     m.v[num + 2].x = nqV.zz.x;
                     m.v[num + 2].y = nqV.zz.y;
                     m.v[num + 2].u = nqT.zz.x;
                     m.v[num + 2].v = nqT.zz.y;
                     m.v[num + 3].x = nqV.ww.x;
                     m.v[num + 3].y = nqV.zz.y;
                     m.v[num + 3].u = nqT.ww.x;
                     m.v[num + 3].v = nqT.zz.y;
                     m.v[num + 4].x = nqV.zz.x;
                     m.v[num + 4].y = nqV.ww.y;
                     m.v[num + 4].u = nqT.zz.x;
                     m.v[num + 4].v = nqT.ww.y;
                     m.v[num + 5].x = nqV.ww.x;
                     m.v[num + 5].y = nqV.ww.y;
                     m.v[num + 5].u = nqT.ww.x;
                     m.v[num + 5].v = nqT.ww.y;
                     break;
                 }
             }
         }
         else
         {
             switch (columnStart)
             {
                 case 0:
                 {
                     m.FastCell(nqV.xy, nqV.yz, nqT.xy, nqT.yz, ref color);
                     break;
                 }
                 case 1:
                 {
                     m.FastCell(nqV.yy, nqV.zz, nqT.yy, nqT.zz, ref color);
                     break;
                 }
                 case 2:
                 {
                     m.FastCell(nqV.zy, nqV.wz, nqT.zy, nqT.wz, ref color);
                     break;
                 }
             }
         }
     }
     else if (nqV.yy.y == nqV.zz.y)
     {
         if (nqV.zz.y != nqV.ww.y)
         {
             switch (columnStart)
             {
                 case 0:
                 {
                     m.FastCell(nqV.xx, nqV.yy, nqT.xx, nqT.yy, ref color);
                     m.FastCell(nqV.xz, nqV.yw, nqT.xz, nqT.yw, ref color);
                     break;
                 }
                 case 1:
                 {
                     m.FastCell(nqV.yx, nqV.zy, nqT.yx, nqT.zy, ref color);
                     m.FastCell(nqV.yz, nqV.zw, nqT.yz, nqT.zw, ref color);
                     break;
                 }
                 case 2:
                 {
                     m.FastCell(nqV.zx, nqV.wy, nqT.zx, nqT.wy, ref color);
                     m.FastCell(nqV.zz, nqV.ww, nqT.zz, nqT.ww, ref color);
                     break;
                 }
             }
         }
         else
         {
             switch (columnStart)
             {
                 case 0:
                 {
                     m.FastCell(nqV.xx, nqV.yy, nqT.xx, nqT.yy, ref color);
                     break;
                 }
                 case 1:
                 {
                     m.FastCell(nqV.yx, nqV.zy, nqT.yx, nqT.zy, ref color);
                     break;
                 }
                 case 2:
                 {
                     m.FastCell(nqV.zx, nqV.wy, nqT.zx, nqT.wy, ref color);
                     break;
                 }
             }
         }
     }
     else if (nqV.zz.y != nqV.ww.y)
     {
         int num1 = m.Alloc(PrimitiveKind.Grid1x2, 0f, color);
         switch (columnStart)
         {
             case 0:
             {
                 m.v[num1].x = nqV.xx.x;
                 m.v[num1].y = nqV.xx.y;
                 m.v[num1].u = nqT.xx.x;
                 m.v[num1].v = nqT.xx.y;
                 m.v[num1 + 1].x = nqV.yy.x;
                 m.v[num1 + 1].y = nqV.xx.y;
                 m.v[num1 + 1].u = nqT.yy.x;
                 m.v[num1 + 1].v = nqT.xx.y;
                 m.v[num1 + 2].x = nqV.xx.x;
                 m.v[num1 + 2].y = nqV.yy.y;
                 m.v[num1 + 2].u = nqT.xx.x;
                 m.v[num1 + 2].v = nqT.yy.y;
                 m.v[num1 + 3].x = nqV.yy.x;
                 m.v[num1 + 3].y = nqV.yy.y;
                 m.v[num1 + 3].u = nqT.yy.x;
                 m.v[num1 + 3].v = nqT.yy.y;
                 m.v[num1 + 4].x = nqV.xx.x;
                 m.v[num1 + 4].y = nqV.zz.y;
                 m.v[num1 + 4].u = nqT.xx.x;
                 m.v[num1 + 4].v = nqT.zz.y;
                 m.v[num1 + 5].x = nqV.yy.x;
                 m.v[num1 + 5].y = nqV.zz.y;
                 m.v[num1 + 5].u = nqT.yy.x;
                 m.v[num1 + 5].v = nqT.zz.y;
                 m.v[num1 + 6].x = nqV.xx.x;
                 m.v[num1 + 6].y = nqV.ww.y;
                 m.v[num1 + 6].u = nqT.xx.x;
                 m.v[num1 + 6].v = nqT.ww.y;
                 m.v[num1 + 7].x = nqV.yy.x;
                 m.v[num1 + 7].y = nqV.ww.y;
                 m.v[num1 + 7].u = nqT.yy.x;
                 m.v[num1 + 7].v = nqT.ww.y;
                 break;
             }
             case 1:
             {
                 m.v[num1].x = nqV.yy.x;
                 m.v[num1].y = nqV.xx.y;
                 m.v[num1].u = nqT.yy.x;
                 m.v[num1].v = nqT.xx.y;
                 m.v[num1 + 1].x = nqV.zz.x;
                 m.v[num1 + 1].y = nqV.xx.y;
                 m.v[num1 + 1].u = nqT.zz.x;
                 m.v[num1 + 1].v = nqT.xx.y;
                 m.v[num1 + 2].x = nqV.yy.x;
                 m.v[num1 + 2].y = nqV.yy.y;
                 m.v[num1 + 2].u = nqT.yy.x;
                 m.v[num1 + 2].v = nqT.yy.y;
                 m.v[num1 + 3].x = nqV.zz.x;
                 m.v[num1 + 3].y = nqV.yy.y;
                 m.v[num1 + 3].u = nqT.zz.x;
                 m.v[num1 + 3].v = nqT.yy.y;
                 m.v[num1 + 4].x = nqV.yy.x;
                 m.v[num1 + 4].y = nqV.zz.y;
                 m.v[num1 + 4].u = nqT.yy.x;
                 m.v[num1 + 4].v = nqT.zz.y;
                 m.v[num1 + 5].x = nqV.zz.x;
                 m.v[num1 + 5].y = nqV.zz.y;
                 m.v[num1 + 5].u = nqT.zz.x;
                 m.v[num1 + 5].v = nqT.zz.y;
                 m.v[num1 + 6].x = nqV.yy.x;
                 m.v[num1 + 6].y = nqV.ww.y;
                 m.v[num1 + 6].u = nqT.yy.x;
                 m.v[num1 + 6].v = nqT.ww.y;
                 m.v[num1 + 7].x = nqV.zz.x;
                 m.v[num1 + 7].y = nqV.ww.y;
                 m.v[num1 + 7].u = nqT.zz.x;
                 m.v[num1 + 7].v = nqT.ww.y;
                 break;
             }
             case 2:
             {
                 m.v[num1].x = nqV.zz.x;
                 m.v[num1].y = nqV.xx.y;
                 m.v[num1].u = nqT.zz.x;
                 m.v[num1].v = nqT.xx.y;
                 m.v[num1 + 1].x = nqV.ww.x;
                 m.v[num1 + 1].y = nqV.xx.y;
                 m.v[num1 + 1].u = nqT.ww.x;
                 m.v[num1 + 1].v = nqT.xx.y;
                 m.v[num1 + 2].x = nqV.zz.x;
                 m.v[num1 + 2].y = nqV.yy.y;
                 m.v[num1 + 2].u = nqT.zz.x;
                 m.v[num1 + 2].v = nqT.yy.y;
                 m.v[num1 + 3].x = nqV.ww.x;
                 m.v[num1 + 3].y = nqV.yy.y;
                 m.v[num1 + 3].u = nqT.ww.x;
                 m.v[num1 + 3].v = nqT.yy.y;
                 m.v[num1 + 4].x = nqV.zz.x;
                 m.v[num1 + 4].y = nqV.zz.y;
                 m.v[num1 + 4].u = nqT.zz.x;
                 m.v[num1 + 4].v = nqT.zz.y;
                 m.v[num1 + 5].x = nqV.ww.x;
                 m.v[num1 + 5].y = nqV.zz.y;
                 m.v[num1 + 5].u = nqT.ww.x;
                 m.v[num1 + 5].v = nqT.zz.y;
                 m.v[num1 + 6].x = nqV.zz.x;
                 m.v[num1 + 6].y = nqV.ww.y;
                 m.v[num1 + 6].u = nqT.zz.x;
                 m.v[num1 + 6].v = nqT.ww.y;
                 m.v[num1 + 7].x = nqV.ww.x;
                 m.v[num1 + 7].y = nqV.ww.y;
                 m.v[num1 + 7].u = nqT.ww.x;
                 m.v[num1 + 7].v = nqT.ww.y;
                 break;
             }
         }
     }
     else
     {
         int num2 = m.Alloc(PrimitiveKind.Grid1x2, 0f, color);
         switch (columnStart)
         {
             case 0:
             {
                 m.v[num2].x = nqV.xx.x;
                 m.v[num2].y = nqV.xx.y;
                 m.v[num2].u = nqT.xx.x;
                 m.v[num2].v = nqT.xx.y;
                 m.v[num2 + 1].x = nqV.yy.x;
                 m.v[num2 + 1].y = nqV.xx.y;
                 m.v[num2 + 1].u = nqT.yy.x;
                 m.v[num2 + 1].v = nqT.xx.y;
                 m.v[num2 + 2].x = nqV.xx.x;
                 m.v[num2 + 2].y = nqV.yy.y;
                 m.v[num2 + 2].u = nqT.xx.x;
                 m.v[num2 + 2].v = nqT.yy.y;
                 m.v[num2 + 3].x = nqV.yy.x;
                 m.v[num2 + 3].y = nqV.yy.y;
                 m.v[num2 + 3].u = nqT.yy.x;
                 m.v[num2 + 3].v = nqT.yy.y;
                 m.v[num2 + 4].x = nqV.xx.x;
                 m.v[num2 + 4].y = nqV.zz.y;
                 m.v[num2 + 4].u = nqT.xx.x;
                 m.v[num2 + 4].v = nqT.zz.y;
                 m.v[num2 + 5].x = nqV.yy.x;
                 m.v[num2 + 5].y = nqV.zz.y;
                 m.v[num2 + 5].u = nqT.yy.x;
                 m.v[num2 + 5].v = nqT.zz.y;
                 break;
             }
             case 1:
             {
                 m.v[num2].x = nqV.yy.x;
                 m.v[num2].y = nqV.xx.y;
                 m.v[num2].u = nqT.yy.x;
                 m.v[num2].v = nqT.xx.y;
                 m.v[num2 + 1].x = nqV.zz.x;
                 m.v[num2 + 1].y = nqV.xx.y;
                 m.v[num2 + 1].u = nqT.zz.x;
                 m.v[num2 + 1].v = nqT.xx.y;
                 m.v[num2 + 2].x = nqV.yy.x;
                 m.v[num2 + 2].y = nqV.yy.y;
                 m.v[num2 + 2].u = nqT.yy.x;
                 m.v[num2 + 2].v = nqT.yy.y;
                 m.v[num2 + 3].x = nqV.zz.x;
                 m.v[num2 + 3].y = nqV.yy.y;
                 m.v[num2 + 3].u = nqT.zz.x;
                 m.v[num2 + 3].v = nqT.yy.y;
                 m.v[num2 + 4].x = nqV.yy.x;
                 m.v[num2 + 4].y = nqV.zz.y;
                 m.v[num2 + 4].u = nqT.yy.x;
                 m.v[num2 + 4].v = nqT.zz.y;
                 m.v[num2 + 5].x = nqV.zz.x;
                 m.v[num2 + 5].y = nqV.zz.y;
                 m.v[num2 + 5].u = nqT.zz.x;
                 m.v[num2 + 5].v = nqT.zz.y;
                 break;
             }
             case 2:
             {
                 m.v[num2].x = nqV.zz.x;
                 m.v[num2].y = nqV.xx.y;
                 m.v[num2].u = nqT.zz.x;
                 m.v[num2].v = nqT.xx.y;
                 m.v[num2 + 1].x = nqV.ww.x;
                 m.v[num2 + 1].y = nqV.xx.y;
                 m.v[num2 + 1].u = nqT.ww.x;
                 m.v[num2 + 1].v = nqT.xx.y;
                 m.v[num2 + 2].x = nqV.zz.x;
                 m.v[num2 + 2].y = nqV.yy.y;
                 m.v[num2 + 2].u = nqT.zz.x;
                 m.v[num2 + 2].v = nqT.yy.y;
                 m.v[num2 + 3].x = nqV.ww.x;
                 m.v[num2 + 3].y = nqV.yy.y;
                 m.v[num2 + 3].u = nqT.ww.x;
                 m.v[num2 + 3].v = nqT.yy.y;
                 m.v[num2 + 4].x = nqV.zz.x;
                 m.v[num2 + 4].y = nqV.zz.y;
                 m.v[num2 + 4].u = nqT.zz.x;
                 m.v[num2 + 4].v = nqT.zz.y;
                 m.v[num2 + 5].x = nqV.ww.x;
                 m.v[num2 + 5].y = nqV.zz.y;
                 m.v[num2 + 5].u = nqT.ww.x;
                 m.v[num2 + 5].v = nqT.zz.y;
                 break;
             }
         }
     }
 }
Esempio n. 2
0
 public override void OnFill(MeshBuffer m)
 {
     float single;
     float single1;
     Vertex vertex = new Vertex();
     Vertex vertex1 = new Vertex();
     Vertex vertex2 = new Vertex();
     Vertex vertex3 = new Vertex();
     float single2 = 0f;
     float single3 = 0f;
     float single4 = 1f;
     float single5 = -1f;
     float single6 = this.mOuterUV.xMin;
     float single7 = this.mOuterUV.yMin;
     float single8 = this.mOuterUV.xMax;
     float single9 = this.mOuterUV.yMax;
     if (this.mFillDirection == UIFilledSprite.FillDirection.Horizontal || this.mFillDirection == UIFilledSprite.FillDirection.Vertical)
     {
         float single10 = (single8 - single6) * this.mFillAmount;
         float single11 = (single9 - single7) * this.mFillAmount;
         if (this.fillDirection == UIFilledSprite.FillDirection.Horizontal)
         {
             if (!this.mInvert)
             {
                 single4 = single4 * this.mFillAmount;
                 single8 = single6 + single10;
             }
             else
             {
                 single2 = 1f - this.mFillAmount;
                 single6 = single8 - single10;
             }
         }
         else if (this.fillDirection == UIFilledSprite.FillDirection.Vertical)
         {
             if (!this.mInvert)
             {
                 single3 = -(1f - this.mFillAmount);
                 single9 = single7 + single11;
             }
             else
             {
                 single5 = single5 * this.mFillAmount;
                 single7 = single9 - single11;
             }
         }
     }
     Vector2[] vector2 = new Vector2[4];
     Vector2[] vector2Array = new Vector2[4];
     vector2[0] = new Vector2(single4, single3);
     vector2[1] = new Vector2(single4, single5);
     vector2[2] = new Vector2(single2, single5);
     vector2[3] = new Vector2(single2, single3);
     vector2Array[0] = new Vector2(single8, single9);
     vector2Array[1] = new Vector2(single8, single7);
     vector2Array[2] = new Vector2(single6, single7);
     vector2Array[3] = new Vector2(single6, single9);
     Color color = base.color;
     if (this.fillDirection != UIFilledSprite.FillDirection.Radial90)
     {
         if (this.fillDirection == UIFilledSprite.FillDirection.Radial180)
         {
             Vector2[] vector21 = new Vector2[4];
             Vector2[] vector2Array1 = new Vector2[4];
             for (int i = 0; i < 2; i++)
             {
                 vector21[0] = new Vector2(0f, 0f);
                 vector21[1] = new Vector2(0f, 1f);
                 vector21[2] = new Vector2(1f, 1f);
                 vector21[3] = new Vector2(1f, 0f);
                 vector2Array1[0] = new Vector2(0f, 0f);
                 vector2Array1[1] = new Vector2(0f, 1f);
                 vector2Array1[2] = new Vector2(1f, 1f);
                 vector2Array1[3] = new Vector2(1f, 0f);
                 if (this.mInvert)
                 {
                     if (i > 0)
                     {
                         this.Rotate(vector21, i);
                         this.Rotate(vector2Array1, i);
                     }
                 }
                 else if (i < 1)
                 {
                     this.Rotate(vector21, 1 - i);
                     this.Rotate(vector2Array1, 1 - i);
                 }
                 if (i != 1)
                 {
                     single = (!this.mInvert ? 0.5f : 1f);
                     single1 = (!this.mInvert ? 1f : 0.5f);
                 }
                 else
                 {
                     single = (!this.mInvert ? 1f : 0.5f);
                     single1 = (!this.mInvert ? 0.5f : 1f);
                 }
                 vector21[1].y = Mathf.Lerp(single, single1, vector21[1].y);
                 vector21[2].y = Mathf.Lerp(single, single1, vector21[2].y);
                 vector2Array1[1].y = Mathf.Lerp(single, single1, vector2Array1[1].y);
                 vector2Array1[2].y = Mathf.Lerp(single, single1, vector2Array1[2].y);
                 float single12 = this.mFillAmount * 2f - (float)i;
                 bool flag = i % 2 == 1;
                 if (this.AdjustRadial(vector21, vector2Array1, single12, !flag))
                 {
                     if (this.mInvert)
                     {
                         flag = !flag;
                     }
                     if (!flag)
                     {
                         int num = m.Alloc(PrimitiveKind.Quad);
                         for (int j = 3; j > -1; j--)
                         {
                             m.v[num].x = Mathf.Lerp(vector2[0].x, vector2[2].x, vector21[j].x);
                             m.v[num].y = Mathf.Lerp(vector2[0].y, vector2[2].y, vector21[j].y);
                             m.v[num].z = 0f;
                             m.v[num].u = Mathf.Lerp(vector2Array[0].x, vector2Array[2].x, vector2Array1[j].x);
                             m.v[num].v = Mathf.Lerp(vector2Array[0].y, vector2Array[2].y, vector2Array1[j].y);
                             m.v[num].r = color.r;
                             m.v[num].g = color.g;
                             m.v[num].b = color.b;
                             m.v[num].a = color.a;
                             num++;
                         }
                     }
                     else
                     {
                         int num1 = m.Alloc(PrimitiveKind.Quad);
                         for (int k = 0; k < 4; k++)
                         {
                             m.v[num1].x = Mathf.Lerp(vector2[0].x, vector2[2].x, vector21[k].x);
                             m.v[num1].y = Mathf.Lerp(vector2[0].y, vector2[2].y, vector21[k].y);
                             m.v[num1].z = 0f;
                             m.v[num1].u = Mathf.Lerp(vector2Array[0].x, vector2Array[2].x, vector2Array1[k].x);
                             m.v[num1].v = Mathf.Lerp(vector2Array[0].y, vector2Array[2].y, vector2Array1[k].y);
                             m.v[num1].r = color.r;
                             m.v[num1].g = color.g;
                             m.v[num1].b = color.b;
                             m.v[num1].a = color.a;
                             num1++;
                         }
                     }
                 }
             }
             return;
         }
         if (this.fillDirection == UIFilledSprite.FillDirection.Radial360)
         {
             float[] singleArray = new float[] { 0.5f, 1f, 0f, 0.5f, 0.5f, 1f, 0.5f, 1f, 0f, 0.5f, 0.5f, 1f, 0f, 0.5f, 0f, 0.5f };
             Vector2[] vector22 = new Vector2[4];
             Vector2[] vector2Array2 = new Vector2[4];
             for (int l = 0; l < 4; l++)
             {
                 vector22[0] = new Vector2(0f, 0f);
                 vector22[1] = new Vector2(0f, 1f);
                 vector22[2] = new Vector2(1f, 1f);
                 vector22[3] = new Vector2(1f, 0f);
                 vector2Array2[0] = new Vector2(0f, 0f);
                 vector2Array2[1] = new Vector2(0f, 1f);
                 vector2Array2[2] = new Vector2(1f, 1f);
                 vector2Array2[3] = new Vector2(1f, 0f);
                 if (this.mInvert)
                 {
                     if (l > 0)
                     {
                         this.Rotate(vector22, l);
                         this.Rotate(vector2Array2, l);
                     }
                 }
                 else if (l < 3)
                 {
                     this.Rotate(vector22, 3 - l);
                     this.Rotate(vector2Array2, 3 - l);
                 }
                 for (int m1 = 0; m1 < 4; m1++)
                 {
                     int num2 = (!this.mInvert ? l * 4 : (3 - l) * 4);
                     float single13 = singleArray[num2];
                     float single14 = singleArray[num2 + 1];
                     float single15 = singleArray[num2 + 2];
                     float single16 = singleArray[num2 + 3];
                     vector22[m1].x = Mathf.Lerp(single13, single14, vector22[m1].x);
                     vector22[m1].y = Mathf.Lerp(single15, single16, vector22[m1].y);
                     vector2Array2[m1].x = Mathf.Lerp(single13, single14, vector2Array2[m1].x);
                     vector2Array2[m1].y = Mathf.Lerp(single15, single16, vector2Array2[m1].y);
                 }
                 float single17 = this.mFillAmount * 4f - (float)l;
                 bool flag1 = l % 2 == 1;
                 if (this.AdjustRadial(vector22, vector2Array2, single17, !flag1))
                 {
                     if (this.mInvert)
                     {
                         flag1 = !flag1;
                     }
                     if (!flag1)
                     {
                         int num3 = m.Alloc(PrimitiveKind.Quad);
                         for (int n = 3; n > -1; n--)
                         {
                             m.v[num3].x = Mathf.Lerp(vector2[0].x, vector2[2].x, vector22[n].x);
                             m.v[num3].y = Mathf.Lerp(vector2[0].y, vector2[2].y, vector22[n].y);
                             m.v[num3].z = 0f;
                             m.v[num3].u = Mathf.Lerp(vector2Array[0].x, vector2Array[2].x, vector2Array2[n].x);
                             m.v[num3].v = Mathf.Lerp(vector2Array[0].y, vector2Array[2].y, vector2Array2[n].y);
                             m.v[num3].r = color.r;
                             m.v[num3].g = color.g;
                             m.v[num3].b = color.b;
                             m.v[num3].a = color.a;
                             num3++;
                         }
                     }
                     else
                     {
                         int num4 = m.Alloc(PrimitiveKind.Quad);
                         for (int o = 0; o < 4; o++)
                         {
                             m.v[num4].x = Mathf.Lerp(vector2[0].x, vector2[2].x, vector22[o].x);
                             m.v[num4].y = Mathf.Lerp(vector2[0].y, vector2[2].y, vector22[o].y);
                             m.v[num4].z = 0f;
                             m.v[num4].u = Mathf.Lerp(vector2Array[0].x, vector2Array[2].x, vector2Array2[o].x);
                             m.v[num4].v = Mathf.Lerp(vector2Array[0].y, vector2Array[2].y, vector2Array2[o].y);
                             m.v[num4].r = color.r;
                             m.v[num4].g = color.g;
                             m.v[num4].b = color.b;
                             m.v[num4].a = color.a;
                             num4++;
                         }
                     }
                 }
             }
             return;
         }
     }
     else if (!this.AdjustRadial(vector2, vector2Array, this.mFillAmount, this.mInvert))
     {
         return;
     }
     vertex.x = vector2[0].x;
     vertex.y = vector2[0].y;
     vertex.u = vector2Array[0].x;
     vertex.v = vector2Array[0].y;
     vertex1.x = vector2[1].x;
     vertex1.y = vector2[1].y;
     vertex1.u = vector2Array[1].x;
     vertex1.v = vector2Array[1].y;
     vertex2.x = vector2[2].x;
     vertex2.y = vector2[2].y;
     vertex2.u = vector2Array[2].x;
     vertex2.v = vector2Array[2].y;
     vertex3.x = vector2[3].x;
     vertex3.y = vector2[3].y;
     vertex3.u = vector2Array[3].x;
     vertex3.v = vector2Array[3].y;
     float single18 = 0f;
     float single19 = single18;
     vertex3.z = single18;
     float single20 = single19;
     single19 = single20;
     vertex2.z = single20;
     float single21 = single19;
     single19 = single21;
     vertex1.z = single21;
     vertex.z = single19;
     float single22 = color.r;
     single19 = single22;
     vertex3.r = single22;
     float single23 = single19;
     single19 = single23;
     vertex2.r = single23;
     float single24 = single19;
     single19 = single24;
     vertex1.r = single24;
     vertex.r = single19;
     float single25 = color.g;
     single19 = single25;
     vertex3.g = single25;
     float single26 = single19;
     single19 = single26;
     vertex2.g = single26;
     float single27 = single19;
     single19 = single27;
     vertex1.g = single27;
     vertex.g = single19;
     float single28 = color.b;
     single19 = single28;
     vertex3.b = single28;
     float single29 = single19;
     single19 = single29;
     vertex2.b = single29;
     float single30 = single19;
     single19 = single30;
     vertex1.b = single30;
     vertex.b = single19;
     float single31 = color.a;
     single19 = single31;
     vertex3.a = single31;
     float single32 = single19;
     single19 = single32;
     vertex2.a = single32;
     float single33 = single19;
     single19 = single33;
     vertex1.a = single33;
     vertex.a = single19;
     m.Quad(vertex, vertex1, vertex2, vertex3);
 }
Esempio n. 3
0
 private static void FillColumn3(ref NineRectangle nqV, ref NineRectangle nqT, ref Color color, MeshBuffer m)
 {
     if (nqV.xx.y == nqV.yy.y)
     {
         if (nqV.yy.y == nqV.zz.y)
         {
             if (nqV.zz.y != nqV.ww.y)
             {
                 int num = m.Alloc(PrimitiveKind.Grid3x1, 0f, color);
                 m.v[num].x = nqV.xx.x;
                 m.v[num].y = nqV.zz.y;
                 m.v[num].u = nqT.xx.x;
                 m.v[num].v = nqT.zz.y;
                 m.v[num + 1].x = nqV.yy.x;
                 m.v[num + 1].y = nqV.zz.y;
                 m.v[num + 1].u = nqT.yy.x;
                 m.v[num + 1].v = nqT.zz.y;
                 m.v[num + 2].x = nqV.zz.x;
                 m.v[num + 2].y = nqV.zz.y;
                 m.v[num + 2].u = nqT.zz.x;
                 m.v[num + 2].v = nqT.zz.y;
                 m.v[num + 3].x = nqV.ww.x;
                 m.v[num + 3].y = nqV.zz.y;
                 m.v[num + 3].u = nqT.ww.x;
                 m.v[num + 3].v = nqT.zz.y;
                 m.v[num + 4].x = nqV.xx.x;
                 m.v[num + 4].y = nqV.ww.y;
                 m.v[num + 4].u = nqT.xx.x;
                 m.v[num + 4].v = nqT.ww.y;
                 m.v[num + 5].x = nqV.yy.x;
                 m.v[num + 5].y = nqV.ww.y;
                 m.v[num + 5].u = nqT.yy.x;
                 m.v[num + 5].v = nqT.ww.y;
                 m.v[num + 6].x = nqV.zz.x;
                 m.v[num + 6].y = nqV.ww.y;
                 m.v[num + 6].u = nqT.zz.x;
                 m.v[num + 6].v = nqT.ww.y;
                 m.v[num + 7].x = nqV.ww.x;
                 m.v[num + 7].y = nqV.ww.y;
                 m.v[num + 7].u = nqT.ww.x;
                 m.v[num + 7].v = nqT.ww.y;
             }
         }
         else if (nqV.zz.y != nqV.ww.y)
         {
             int num1 = m.Alloc(PrimitiveKind.Grid3x2, 0f, color);
             m.v[num1].x = nqV.xx.x;
             m.v[num1].y = nqV.yy.y;
             m.v[num1].u = nqT.xx.x;
             m.v[num1].v = nqT.yy.y;
             m.v[num1 + 1].x = nqV.yy.x;
             m.v[num1 + 1].y = nqV.yy.y;
             m.v[num1 + 1].u = nqT.yy.x;
             m.v[num1 + 1].v = nqT.yy.y;
             m.v[num1 + 2].x = nqV.zz.x;
             m.v[num1 + 2].y = nqV.yy.y;
             m.v[num1 + 2].u = nqT.zz.x;
             m.v[num1 + 2].v = nqT.yy.y;
             m.v[num1 + 3].x = nqV.ww.x;
             m.v[num1 + 3].y = nqV.yy.y;
             m.v[num1 + 3].u = nqT.ww.x;
             m.v[num1 + 3].v = nqT.yy.y;
             m.v[num1 + 4].x = nqV.xx.x;
             m.v[num1 + 4].y = nqV.zz.y;
             m.v[num1 + 4].u = nqT.xx.x;
             m.v[num1 + 4].v = nqT.zz.y;
             m.v[num1 + 5].x = nqV.yy.x;
             m.v[num1 + 5].y = nqV.zz.y;
             m.v[num1 + 5].u = nqT.yy.x;
             m.v[num1 + 5].v = nqT.zz.y;
             m.v[num1 + 6].x = nqV.zz.x;
             m.v[num1 + 6].y = nqV.zz.y;
             m.v[num1 + 6].u = nqT.zz.x;
             m.v[num1 + 6].v = nqT.zz.y;
             m.v[num1 + 7].x = nqV.ww.x;
             m.v[num1 + 7].y = nqV.zz.y;
             m.v[num1 + 7].u = nqT.ww.x;
             m.v[num1 + 7].v = nqT.zz.y;
             m.v[num1 + 8].x = nqV.xx.x;
             m.v[num1 + 8].y = nqV.ww.y;
             m.v[num1 + 8].u = nqT.xx.x;
             m.v[num1 + 8].v = nqT.ww.y;
             m.v[num1 + 9].x = nqV.yy.x;
             m.v[num1 + 9].y = nqV.ww.y;
             m.v[num1 + 9].u = nqT.yy.x;
             m.v[num1 + 9].v = nqT.ww.y;
             m.v[num1 + 10].x = nqV.zz.x;
             m.v[num1 + 10].y = nqV.ww.y;
             m.v[num1 + 10].u = nqT.zz.x;
             m.v[num1 + 10].v = nqT.ww.y;
             m.v[num1 + 11].x = nqV.ww.x;
             m.v[num1 + 11].y = nqV.ww.y;
             m.v[num1 + 11].u = nqT.ww.x;
             m.v[num1 + 11].v = nqT.ww.y;
         }
         else
         {
             int num2 = m.Alloc(PrimitiveKind.Grid3x1, 0f, color);
             m.v[num2].x = nqV.xx.x;
             m.v[num2].y = nqV.yy.y;
             m.v[num2].u = nqT.xx.x;
             m.v[num2].v = nqT.yy.y;
             m.v[num2 + 1].x = nqV.yy.x;
             m.v[num2 + 1].y = nqV.yy.y;
             m.v[num2 + 1].u = nqT.yy.x;
             m.v[num2 + 1].v = nqT.yy.y;
             m.v[num2 + 2].x = nqV.zz.x;
             m.v[num2 + 2].y = nqV.yy.y;
             m.v[num2 + 2].u = nqT.zz.x;
             m.v[num2 + 2].v = nqT.yy.y;
             m.v[num2 + 3].x = nqV.ww.x;
             m.v[num2 + 3].y = nqV.yy.y;
             m.v[num2 + 3].u = nqT.ww.x;
             m.v[num2 + 3].v = nqT.yy.y;
             m.v[num2 + 4].x = nqV.xx.x;
             m.v[num2 + 4].y = nqV.zz.y;
             m.v[num2 + 4].u = nqT.xx.x;
             m.v[num2 + 4].v = nqT.zz.y;
             m.v[num2 + 5].x = nqV.yy.x;
             m.v[num2 + 5].y = nqV.zz.y;
             m.v[num2 + 5].u = nqT.yy.x;
             m.v[num2 + 5].v = nqT.zz.y;
             m.v[num2 + 6].x = nqV.zz.x;
             m.v[num2 + 6].y = nqV.zz.y;
             m.v[num2 + 6].u = nqT.zz.x;
             m.v[num2 + 6].v = nqT.zz.y;
             m.v[num2 + 7].x = nqV.ww.x;
             m.v[num2 + 7].y = nqV.zz.y;
             m.v[num2 + 7].u = nqT.ww.x;
             m.v[num2 + 7].v = nqT.zz.y;
         }
     }
     else if (nqV.yy.y == nqV.zz.y)
     {
         if (nqV.zz.y != nqV.ww.y)
         {
             int num3 = m.Alloc(PrimitiveKind.Grid3x1, 0f, color);
             m.v[num3].x = nqV.xx.x;
             m.v[num3].y = nqV.xx.y;
             m.v[num3].u = nqT.xx.x;
             m.v[num3].v = nqT.xx.y;
             m.v[num3 + 1].x = nqV.yy.x;
             m.v[num3 + 1].y = nqV.xx.y;
             m.v[num3 + 1].u = nqT.yy.x;
             m.v[num3 + 1].v = nqT.xx.y;
             m.v[num3 + 2].x = nqV.zz.x;
             m.v[num3 + 2].y = nqV.xx.y;
             m.v[num3 + 2].u = nqT.zz.x;
             m.v[num3 + 2].v = nqT.xx.y;
             m.v[num3 + 3].x = nqV.ww.x;
             m.v[num3 + 3].y = nqV.xx.y;
             m.v[num3 + 3].u = nqT.ww.x;
             m.v[num3 + 3].v = nqT.xx.y;
             m.v[num3 + 4].x = nqV.xx.x;
             m.v[num3 + 4].y = nqV.yy.y;
             m.v[num3 + 4].u = nqT.xx.x;
             m.v[num3 + 4].v = nqT.yy.y;
             m.v[num3 + 5].x = nqV.yy.x;
             m.v[num3 + 5].y = nqV.yy.y;
             m.v[num3 + 5].u = nqT.yy.x;
             m.v[num3 + 5].v = nqT.yy.y;
             m.v[num3 + 6].x = nqV.zz.x;
             m.v[num3 + 6].y = nqV.yy.y;
             m.v[num3 + 6].u = nqT.zz.x;
             m.v[num3 + 6].v = nqT.yy.y;
             m.v[num3 + 7].x = nqV.ww.x;
             m.v[num3 + 7].y = nqV.yy.y;
             m.v[num3 + 7].u = nqT.ww.x;
             m.v[num3 + 7].v = nqT.yy.y;
             num3 = m.Alloc(PrimitiveKind.Grid3x1, 0f, color);
             m.v[num3].x = nqV.xx.x;
             m.v[num3].y = nqV.zz.y;
             m.v[num3].u = nqT.xx.x;
             m.v[num3].v = nqT.zz.y;
             m.v[num3 + 1].x = nqV.yy.x;
             m.v[num3 + 1].y = nqV.zz.y;
             m.v[num3 + 1].u = nqT.yy.x;
             m.v[num3 + 1].v = nqT.zz.y;
             m.v[num3 + 2].x = nqV.zz.x;
             m.v[num3 + 2].y = nqV.zz.y;
             m.v[num3 + 2].u = nqT.zz.x;
             m.v[num3 + 2].v = nqT.zz.y;
             m.v[num3 + 3].x = nqV.ww.x;
             m.v[num3 + 3].y = nqV.zz.y;
             m.v[num3 + 3].u = nqT.ww.x;
             m.v[num3 + 3].v = nqT.zz.y;
             m.v[num3 + 4].x = nqV.xx.x;
             m.v[num3 + 4].y = nqV.ww.y;
             m.v[num3 + 4].u = nqT.xx.x;
             m.v[num3 + 4].v = nqT.ww.y;
             m.v[num3 + 5].x = nqV.yy.x;
             m.v[num3 + 5].y = nqV.ww.y;
             m.v[num3 + 5].u = nqT.yy.x;
             m.v[num3 + 5].v = nqT.ww.y;
             m.v[num3 + 6].x = nqV.zz.x;
             m.v[num3 + 6].y = nqV.ww.y;
             m.v[num3 + 6].u = nqT.zz.x;
             m.v[num3 + 6].v = nqT.ww.y;
             m.v[num3 + 7].x = nqV.ww.x;
             m.v[num3 + 7].y = nqV.ww.y;
             m.v[num3 + 7].u = nqT.ww.x;
             m.v[num3 + 7].v = nqT.ww.y;
         }
         else
         {
             int num4 = m.Alloc(PrimitiveKind.Grid3x1, 0f, color);
             m.v[num4].x = nqV.xx.x;
             m.v[num4].y = nqV.xx.y;
             m.v[num4].u = nqT.xx.x;
             m.v[num4].v = nqT.xx.y;
             m.v[num4 + 1].x = nqV.yy.x;
             m.v[num4 + 1].y = nqV.xx.y;
             m.v[num4 + 1].u = nqT.yy.x;
             m.v[num4 + 1].v = nqT.xx.y;
             m.v[num4 + 2].x = nqV.zz.x;
             m.v[num4 + 2].y = nqV.xx.y;
             m.v[num4 + 2].u = nqT.zz.x;
             m.v[num4 + 2].v = nqT.xx.y;
             m.v[num4 + 3].x = nqV.ww.x;
             m.v[num4 + 3].y = nqV.xx.y;
             m.v[num4 + 3].u = nqT.ww.x;
             m.v[num4 + 3].v = nqT.xx.y;
             m.v[num4 + 4].x = nqV.xx.x;
             m.v[num4 + 4].y = nqV.yy.y;
             m.v[num4 + 4].u = nqT.xx.x;
             m.v[num4 + 4].v = nqT.yy.y;
             m.v[num4 + 5].x = nqV.yy.x;
             m.v[num4 + 5].y = nqV.yy.y;
             m.v[num4 + 5].u = nqT.yy.x;
             m.v[num4 + 5].v = nqT.yy.y;
             m.v[num4 + 6].x = nqV.zz.x;
             m.v[num4 + 6].y = nqV.yy.y;
             m.v[num4 + 6].u = nqT.zz.x;
             m.v[num4 + 6].v = nqT.yy.y;
             m.v[num4 + 7].x = nqV.ww.x;
             m.v[num4 + 7].y = nqV.yy.y;
             m.v[num4 + 7].u = nqT.ww.x;
             m.v[num4 + 7].v = nqT.yy.y;
         }
     }
     else if (nqV.zz.y != nqV.ww.y)
     {
         NineRectangle.Commit3x3(m.Alloc(PrimitiveKind.Grid3x3), ref nqV, ref nqT, ref color, m);
     }
     else
     {
         int num5 = m.Alloc(PrimitiveKind.Grid3x2, 0f, color);
         m.v[num5].x = nqV.xx.x;
         m.v[num5].y = nqV.xx.y;
         m.v[num5].u = nqT.xx.x;
         m.v[num5].v = nqT.xx.y;
         m.v[num5 + 1].x = nqV.yy.x;
         m.v[num5 + 1].y = nqV.xx.y;
         m.v[num5 + 1].u = nqT.yy.x;
         m.v[num5 + 1].v = nqT.xx.y;
         m.v[num5 + 2].x = nqV.zz.x;
         m.v[num5 + 2].y = nqV.xx.y;
         m.v[num5 + 2].u = nqT.zz.x;
         m.v[num5 + 2].v = nqT.xx.y;
         m.v[num5 + 3].x = nqV.ww.x;
         m.v[num5 + 3].y = nqV.xx.y;
         m.v[num5 + 3].u = nqT.ww.x;
         m.v[num5 + 3].v = nqT.xx.y;
         m.v[num5 + 4].x = nqV.xx.x;
         m.v[num5 + 4].y = nqV.yy.y;
         m.v[num5 + 4].u = nqT.xx.x;
         m.v[num5 + 4].v = nqT.yy.y;
         m.v[num5 + 5].x = nqV.yy.x;
         m.v[num5 + 5].y = nqV.yy.y;
         m.v[num5 + 5].u = nqT.yy.x;
         m.v[num5 + 5].v = nqT.yy.y;
         m.v[num5 + 6].x = nqV.zz.x;
         m.v[num5 + 6].y = nqV.yy.y;
         m.v[num5 + 6].u = nqT.zz.x;
         m.v[num5 + 6].v = nqT.yy.y;
         m.v[num5 + 7].x = nqV.ww.x;
         m.v[num5 + 7].y = nqV.yy.y;
         m.v[num5 + 7].u = nqT.ww.x;
         m.v[num5 + 7].v = nqT.yy.y;
         m.v[num5 + 8].x = nqV.xx.x;
         m.v[num5 + 8].y = nqV.zz.y;
         m.v[num5 + 8].u = nqT.xx.x;
         m.v[num5 + 8].v = nqT.zz.y;
         m.v[num5 + 9].x = nqV.yy.x;
         m.v[num5 + 9].y = nqV.zz.y;
         m.v[num5 + 9].u = nqT.yy.x;
         m.v[num5 + 9].v = nqT.zz.y;
         m.v[num5 + 10].x = nqV.zz.x;
         m.v[num5 + 10].y = nqV.zz.y;
         m.v[num5 + 10].u = nqT.zz.x;
         m.v[num5 + 10].v = nqT.zz.y;
         m.v[num5 + 11].x = nqV.ww.x;
         m.v[num5 + 11].y = nqV.zz.y;
         m.v[num5 + 11].u = nqT.ww.x;
         m.v[num5 + 11].v = nqT.zz.y;
     }
 }
Esempio n. 4
0
 public static void Fill8(ref NineRectangle nqV, ref NineRectangle nqT, ref Color color, MeshBuffer m)
 {
     NineRectangle.Commit3x3(m.Alloc(PrimitiveKind.Hole3x3), ref nqV, ref nqT, ref color, m);
 }
Esempio n. 5
0
 private static void FillColumn2(ref NineRectangle nqV, ref NineRectangle nqT, int columnStart, ref Color color, MeshBuffer m)
 {
     int num;
     int num1;
     int num2;
     int num3;
     int num4;
     int num5;
     int num6;
     if (nqV.xx.y == nqV.yy.y)
     {
         if (nqV.yy.y == nqV.zz.y)
         {
             if (nqV.zz.y != nqV.ww.y)
             {
                 switch (columnStart)
                 {
                     case 0:
                     {
                         num = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                         m.v[num].x = nqV.xx.x;
                         m.v[num].y = nqV.zz.y;
                         m.v[num].u = nqT.xx.x;
                         m.v[num].v = nqT.zz.y;
                         m.v[num + 1].x = nqV.yy.x;
                         m.v[num + 1].y = nqV.zz.y;
                         m.v[num + 1].u = nqT.yy.x;
                         m.v[num + 1].v = nqT.zz.y;
                         m.v[num + 2].x = nqV.zz.x;
                         m.v[num + 2].y = nqV.zz.y;
                         m.v[num + 2].u = nqT.zz.x;
                         m.v[num + 2].v = nqT.zz.y;
                         m.v[num + 3].x = nqV.xx.x;
                         m.v[num + 3].y = nqV.ww.y;
                         m.v[num + 3].u = nqT.xx.x;
                         m.v[num + 3].v = nqT.ww.y;
                         m.v[num + 4].x = nqV.yy.x;
                         m.v[num + 4].y = nqV.ww.y;
                         m.v[num + 4].u = nqT.yy.x;
                         m.v[num + 4].v = nqT.ww.y;
                         m.v[num + 5].x = nqV.zz.x;
                         m.v[num + 5].y = nqV.ww.y;
                         m.v[num + 5].u = nqT.zz.x;
                         m.v[num + 5].v = nqT.ww.y;
                         break;
                     }
                     case 1:
                     {
                         num = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                         m.v[num].x = nqV.yy.x;
                         m.v[num].y = nqV.zz.y;
                         m.v[num].u = nqT.yy.x;
                         m.v[num].v = nqT.zz.y;
                         m.v[num + 1].x = nqV.zz.x;
                         m.v[num + 1].y = nqV.zz.y;
                         m.v[num + 1].u = nqT.zz.x;
                         m.v[num + 1].v = nqT.zz.y;
                         m.v[num + 2].x = nqV.ww.x;
                         m.v[num + 2].y = nqV.zz.y;
                         m.v[num + 2].u = nqT.ww.x;
                         m.v[num + 2].v = nqT.zz.y;
                         m.v[num + 3].x = nqV.yy.x;
                         m.v[num + 3].y = nqV.ww.y;
                         m.v[num + 3].u = nqT.yy.x;
                         m.v[num + 3].v = nqT.ww.y;
                         m.v[num + 4].x = nqV.zz.x;
                         m.v[num + 4].y = nqV.ww.y;
                         m.v[num + 4].u = nqT.zz.x;
                         m.v[num + 4].v = nqT.ww.y;
                         m.v[num + 5].x = nqV.ww.x;
                         m.v[num + 5].y = nqV.ww.y;
                         m.v[num + 5].u = nqT.ww.x;
                         m.v[num + 5].v = nqT.ww.y;
                         break;
                     }
                     case 2:
                     {
                         m.FastCell(nqV.xz, nqV.yw, nqT.xz, nqT.yw, ref color);
                         m.FastCell(nqV.zz, nqV.ww, nqT.zz, nqT.ww, ref color);
                         break;
                     }
                 }
             }
         }
         else if (nqV.zz.y != nqV.ww.y)
         {
             switch (columnStart)
             {
                 case 0:
                 {
                     num2 = m.Alloc(PrimitiveKind.Grid2x2, 0f, color);
                     m.v[num2].x = nqV.xx.x;
                     m.v[num2].y = nqV.yy.y;
                     m.v[num2].u = nqT.xx.x;
                     m.v[num2].v = nqT.yy.y;
                     m.v[num2 + 1].x = nqV.yy.x;
                     m.v[num2 + 1].y = nqV.yy.y;
                     m.v[num2 + 1].u = nqT.yy.x;
                     m.v[num2 + 1].v = nqT.yy.y;
                     m.v[num2 + 2].x = nqV.zz.x;
                     m.v[num2 + 2].y = nqV.yy.y;
                     m.v[num2 + 2].u = nqT.zz.x;
                     m.v[num2 + 2].v = nqT.yy.y;
                     m.v[num2 + 3].x = nqV.xx.x;
                     m.v[num2 + 3].y = nqV.zz.y;
                     m.v[num2 + 3].u = nqT.xx.x;
                     m.v[num2 + 3].v = nqT.zz.y;
                     m.v[num2 + 4].x = nqV.yy.x;
                     m.v[num2 + 4].y = nqV.zz.y;
                     m.v[num2 + 4].u = nqT.yy.x;
                     m.v[num2 + 4].v = nqT.zz.y;
                     m.v[num2 + 5].x = nqV.zz.x;
                     m.v[num2 + 5].y = nqV.zz.y;
                     m.v[num2 + 5].u = nqT.zz.x;
                     m.v[num2 + 5].v = nqT.zz.y;
                     m.v[num2 + 6].x = nqV.xx.x;
                     m.v[num2 + 6].y = nqV.ww.y;
                     m.v[num2 + 6].u = nqT.xx.x;
                     m.v[num2 + 6].v = nqT.ww.y;
                     m.v[num2 + 7].x = nqV.yy.x;
                     m.v[num2 + 7].y = nqV.ww.y;
                     m.v[num2 + 7].u = nqT.yy.x;
                     m.v[num2 + 7].v = nqT.ww.y;
                     m.v[num2 + 8].x = nqV.zz.x;
                     m.v[num2 + 8].y = nqV.ww.y;
                     m.v[num2 + 8].u = nqT.zz.x;
                     m.v[num2 + 8].v = nqT.ww.y;
                     break;
                 }
                 case 1:
                 {
                     num2 = m.Alloc(PrimitiveKind.Grid2x2, 0f, color);
                     m.v[num2].x = nqV.yy.x;
                     m.v[num2].y = nqV.yy.y;
                     m.v[num2].u = nqT.yy.x;
                     m.v[num2].v = nqT.yy.y;
                     m.v[num2 + 1].x = nqV.zz.x;
                     m.v[num2 + 1].y = nqV.yy.y;
                     m.v[num2 + 1].u = nqT.zz.x;
                     m.v[num2 + 1].v = nqT.yy.y;
                     m.v[num2 + 2].x = nqV.ww.x;
                     m.v[num2 + 2].y = nqV.yy.y;
                     m.v[num2 + 2].u = nqT.ww.x;
                     m.v[num2 + 2].v = nqT.yy.y;
                     m.v[num2 + 3].x = nqV.yy.x;
                     m.v[num2 + 3].y = nqV.zz.y;
                     m.v[num2 + 3].u = nqT.yy.x;
                     m.v[num2 + 3].v = nqT.zz.y;
                     m.v[num2 + 4].x = nqV.zz.x;
                     m.v[num2 + 4].y = nqV.zz.y;
                     m.v[num2 + 4].u = nqT.zz.x;
                     m.v[num2 + 4].v = nqT.zz.y;
                     m.v[num2 + 5].x = nqV.ww.x;
                     m.v[num2 + 5].y = nqV.zz.y;
                     m.v[num2 + 5].u = nqT.ww.x;
                     m.v[num2 + 5].v = nqT.zz.y;
                     m.v[num2 + 6].x = nqV.yy.x;
                     m.v[num2 + 6].y = nqV.ww.y;
                     m.v[num2 + 6].u = nqT.yy.x;
                     m.v[num2 + 6].v = nqT.ww.y;
                     m.v[num2 + 7].x = nqV.zz.x;
                     m.v[num2 + 7].y = nqV.ww.y;
                     m.v[num2 + 7].u = nqT.zz.x;
                     m.v[num2 + 7].v = nqT.ww.y;
                     m.v[num2 + 8].x = nqV.ww.x;
                     m.v[num2 + 8].y = nqV.ww.y;
                     m.v[num2 + 8].u = nqT.ww.x;
                     m.v[num2 + 8].v = nqT.ww.y;
                     break;
                 }
                 case 2:
                 {
                     num2 = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                     m.v[num2].x = nqV.xx.x;
                     m.v[num2].y = nqV.yy.y;
                     m.v[num2].u = nqT.xx.x;
                     m.v[num2].v = nqT.yy.y;
                     m.v[num2 + 1].x = nqV.yy.x;
                     m.v[num2 + 1].y = nqV.yy.y;
                     m.v[num2 + 1].u = nqT.yy.x;
                     m.v[num2 + 1].v = nqT.yy.y;
                     m.v[num2 + 2].x = nqV.xx.x;
                     m.v[num2 + 2].y = nqV.zz.y;
                     m.v[num2 + 2].u = nqT.xx.x;
                     m.v[num2 + 2].v = nqT.zz.y;
                     m.v[num2 + 3].x = nqV.yy.x;
                     m.v[num2 + 3].y = nqV.zz.y;
                     m.v[num2 + 3].u = nqT.yy.x;
                     m.v[num2 + 3].v = nqT.zz.y;
                     m.v[num2 + 4].x = nqV.yy.x;
                     m.v[num2 + 4].y = nqV.ww.y;
                     m.v[num2 + 4].u = nqT.yy.x;
                     m.v[num2 + 4].v = nqT.ww.y;
                     m.v[num2 + 5].x = nqV.zz.x;
                     m.v[num2 + 5].y = nqV.ww.y;
                     m.v[num2 + 5].u = nqT.zz.x;
                     m.v[num2 + 5].v = nqT.ww.y;
                     num2 = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                     m.v[num2].x = nqV.zz.x;
                     m.v[num2].y = nqV.yy.y;
                     m.v[num2].u = nqT.zz.x;
                     m.v[num2].v = nqT.yy.y;
                     m.v[num2 + 1].x = nqV.ww.x;
                     m.v[num2 + 1].y = nqV.yy.y;
                     m.v[num2 + 1].u = nqT.ww.x;
                     m.v[num2 + 1].v = nqT.yy.y;
                     m.v[num2 + 2].x = nqV.zz.x;
                     m.v[num2 + 2].y = nqV.zz.y;
                     m.v[num2 + 2].u = nqT.zz.x;
                     m.v[num2 + 2].v = nqT.zz.y;
                     m.v[num2 + 3].x = nqV.ww.x;
                     m.v[num2 + 3].y = nqV.zz.y;
                     m.v[num2 + 3].u = nqT.ww.x;
                     m.v[num2 + 3].v = nqT.zz.y;
                     m.v[num2 + 4].x = nqV.zz.x;
                     m.v[num2 + 4].y = nqV.ww.y;
                     m.v[num2 + 4].u = nqT.zz.x;
                     m.v[num2 + 4].v = nqT.ww.y;
                     m.v[num2 + 5].x = nqV.ww.x;
                     m.v[num2 + 5].y = nqV.ww.y;
                     m.v[num2 + 5].u = nqT.ww.x;
                     m.v[num2 + 5].v = nqT.ww.y;
                     break;
                 }
             }
         }
         else
         {
             switch (columnStart)
             {
                 case 0:
                 {
                     num1 = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                     m.v[num1].x = nqV.xx.x;
                     m.v[num1].y = nqV.yy.y;
                     m.v[num1].u = nqT.xx.x;
                     m.v[num1].v = nqT.yy.y;
                     m.v[num1 + 1].x = nqV.yy.x;
                     m.v[num1 + 1].y = nqV.yy.y;
                     m.v[num1 + 1].u = nqT.yy.x;
                     m.v[num1 + 1].v = nqT.yy.y;
                     m.v[num1 + 2].x = nqV.zz.x;
                     m.v[num1 + 2].y = nqV.yy.y;
                     m.v[num1 + 2].u = nqT.zz.x;
                     m.v[num1 + 2].v = nqT.yy.y;
                     m.v[num1 + 3].x = nqV.xx.x;
                     m.v[num1 + 3].y = nqV.zz.y;
                     m.v[num1 + 3].u = nqT.xx.x;
                     m.v[num1 + 3].v = nqT.zz.y;
                     m.v[num1 + 4].x = nqV.yy.x;
                     m.v[num1 + 4].y = nqV.zz.y;
                     m.v[num1 + 4].u = nqT.yy.x;
                     m.v[num1 + 4].v = nqT.zz.y;
                     m.v[num1 + 5].x = nqV.zz.x;
                     m.v[num1 + 5].y = nqV.zz.y;
                     m.v[num1 + 5].u = nqT.zz.x;
                     m.v[num1 + 5].v = nqT.zz.y;
                     break;
                 }
                 case 1:
                 {
                     num1 = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                     m.v[num1].x = nqV.yy.x;
                     m.v[num1].y = nqV.yy.y;
                     m.v[num1].u = nqT.yy.x;
                     m.v[num1].v = nqT.yy.y;
                     m.v[num1 + 1].x = nqV.zz.x;
                     m.v[num1 + 1].y = nqV.yy.y;
                     m.v[num1 + 1].u = nqT.zz.x;
                     m.v[num1 + 1].v = nqT.yy.y;
                     m.v[num1 + 2].x = nqV.ww.x;
                     m.v[num1 + 2].y = nqV.yy.y;
                     m.v[num1 + 2].u = nqT.ww.x;
                     m.v[num1 + 2].v = nqT.yy.y;
                     m.v[num1 + 3].x = nqV.yy.x;
                     m.v[num1 + 3].y = nqV.zz.y;
                     m.v[num1 + 3].u = nqT.yy.x;
                     m.v[num1 + 3].v = nqT.zz.y;
                     m.v[num1 + 4].x = nqV.zz.x;
                     m.v[num1 + 4].y = nqV.zz.y;
                     m.v[num1 + 4].u = nqT.zz.x;
                     m.v[num1 + 4].v = nqT.zz.y;
                     m.v[num1 + 5].x = nqV.ww.x;
                     m.v[num1 + 5].y = nqV.zz.y;
                     m.v[num1 + 5].u = nqT.ww.x;
                     m.v[num1 + 5].v = nqT.zz.y;
                     break;
                 }
                 case 2:
                 {
                     m.FastCell(nqV.xy, nqV.yz, nqT.xy, nqT.yz, ref color);
                     m.FastCell(nqV.zy, nqV.wz, nqT.zy, nqT.wz, ref color);
                     break;
                 }
             }
         }
     }
     else if (nqV.yy.y == nqV.zz.y)
     {
         if (nqV.zz.y != nqV.ww.y)
         {
             switch (columnStart)
             {
                 case 0:
                 {
                     num4 = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                     m.v[num4].x = nqV.xx.x;
                     m.v[num4].y = nqV.xx.y;
                     m.v[num4].u = nqT.xx.x;
                     m.v[num4].v = nqT.xx.y;
                     m.v[num4 + 1].x = nqV.yy.x;
                     m.v[num4 + 1].y = nqV.xx.y;
                     m.v[num4 + 1].u = nqT.yy.x;
                     m.v[num4 + 1].v = nqT.xx.y;
                     m.v[num4 + 2].x = nqV.zz.x;
                     m.v[num4 + 2].y = nqV.xx.y;
                     m.v[num4 + 2].u = nqT.zz.x;
                     m.v[num4 + 2].v = nqT.xx.y;
                     m.v[num4 + 3].x = nqV.xx.x;
                     m.v[num4 + 3].y = nqV.yy.y;
                     m.v[num4 + 3].u = nqT.xx.x;
                     m.v[num4 + 3].v = nqT.yy.y;
                     m.v[num4 + 4].x = nqV.yy.x;
                     m.v[num4 + 4].y = nqV.yy.y;
                     m.v[num4 + 4].u = nqT.yy.x;
                     m.v[num4 + 4].v = nqT.yy.y;
                     m.v[num4 + 5].x = nqV.zz.x;
                     m.v[num4 + 5].y = nqV.yy.y;
                     m.v[num4 + 5].u = nqT.zz.x;
                     m.v[num4 + 5].v = nqT.yy.y;
                     num4 = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                     m.v[num4].x = nqV.xx.x;
                     m.v[num4].y = nqV.zz.y;
                     m.v[num4].u = nqT.xx.x;
                     m.v[num4].v = nqT.zz.y;
                     m.v[num4 + 1].x = nqV.yy.x;
                     m.v[num4 + 1].y = nqV.zz.y;
                     m.v[num4 + 1].u = nqT.yy.x;
                     m.v[num4 + 1].v = nqT.zz.y;
                     m.v[num4 + 2].x = nqV.zz.x;
                     m.v[num4 + 2].y = nqV.zz.y;
                     m.v[num4 + 2].u = nqT.zz.x;
                     m.v[num4 + 2].v = nqT.zz.y;
                     m.v[num4 + 3].x = nqV.xx.x;
                     m.v[num4 + 3].y = nqV.ww.y;
                     m.v[num4 + 3].u = nqT.xx.x;
                     m.v[num4 + 3].v = nqT.ww.y;
                     m.v[num4 + 4].x = nqV.yy.x;
                     m.v[num4 + 4].y = nqV.ww.y;
                     m.v[num4 + 4].u = nqT.yy.x;
                     m.v[num4 + 4].v = nqT.ww.y;
                     m.v[num4 + 5].x = nqV.zz.x;
                     m.v[num4 + 5].y = nqV.ww.y;
                     m.v[num4 + 5].u = nqT.zz.x;
                     m.v[num4 + 5].v = nqT.ww.y;
                     break;
                 }
                 case 1:
                 {
                     num4 = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                     m.v[num4].x = nqV.yy.x;
                     m.v[num4].y = nqV.xx.y;
                     m.v[num4].u = nqT.yy.x;
                     m.v[num4].v = nqT.xx.y;
                     m.v[num4 + 1].x = nqV.zz.x;
                     m.v[num4 + 1].y = nqV.xx.y;
                     m.v[num4 + 1].u = nqT.zz.x;
                     m.v[num4 + 1].v = nqT.xx.y;
                     m.v[num4 + 2].x = nqV.ww.x;
                     m.v[num4 + 2].y = nqV.xx.y;
                     m.v[num4 + 2].u = nqT.ww.x;
                     m.v[num4 + 2].v = nqT.xx.y;
                     m.v[num4 + 3].x = nqV.yy.x;
                     m.v[num4 + 3].y = nqV.yy.y;
                     m.v[num4 + 3].u = nqT.yy.x;
                     m.v[num4 + 3].v = nqT.yy.y;
                     m.v[num4 + 4].x = nqV.zz.x;
                     m.v[num4 + 4].y = nqV.yy.y;
                     m.v[num4 + 4].u = nqT.zz.x;
                     m.v[num4 + 4].v = nqT.yy.y;
                     m.v[num4 + 5].x = nqV.ww.x;
                     m.v[num4 + 5].y = nqV.yy.y;
                     m.v[num4 + 5].u = nqT.ww.x;
                     m.v[num4 + 5].v = nqT.yy.y;
                     num4 = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                     m.v[num4].x = nqV.yy.x;
                     m.v[num4].y = nqV.zz.y;
                     m.v[num4].u = nqT.yy.x;
                     m.v[num4].v = nqT.zz.y;
                     m.v[num4 + 1].x = nqV.zz.x;
                     m.v[num4 + 1].y = nqV.zz.y;
                     m.v[num4 + 1].u = nqT.zz.x;
                     m.v[num4 + 1].v = nqT.zz.y;
                     m.v[num4 + 2].x = nqV.ww.x;
                     m.v[num4 + 2].y = nqV.zz.y;
                     m.v[num4 + 2].u = nqT.ww.x;
                     m.v[num4 + 2].v = nqT.zz.y;
                     m.v[num4 + 3].x = nqV.yy.x;
                     m.v[num4 + 3].y = nqV.ww.y;
                     m.v[num4 + 3].u = nqT.yy.x;
                     m.v[num4 + 3].v = nqT.ww.y;
                     m.v[num4 + 4].x = nqV.zz.x;
                     m.v[num4 + 4].y = nqV.ww.y;
                     m.v[num4 + 4].u = nqT.zz.x;
                     m.v[num4 + 4].v = nqT.ww.y;
                     m.v[num4 + 5].x = nqV.ww.x;
                     m.v[num4 + 5].y = nqV.ww.y;
                     m.v[num4 + 5].u = nqT.ww.x;
                     m.v[num4 + 5].v = nqT.ww.y;
                     break;
                 }
                 case 2:
                 {
                     m.FastCell(nqV.xx, nqV.yy, nqT.xx, nqT.yy, ref color);
                     m.FastCell(nqV.zx, nqV.wy, nqT.zx, nqT.wy, ref color);
                     m.FastCell(nqV.xz, nqV.yw, nqT.xz, nqT.yw, ref color);
                     m.FastCell(nqV.zz, nqV.ww, nqT.zz, nqT.ww, ref color);
                     break;
                 }
             }
         }
         else
         {
             switch (columnStart)
             {
                 case 0:
                 {
                     num3 = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                     m.v[num3].x = nqV.xx.x;
                     m.v[num3].y = nqV.xx.y;
                     m.v[num3].u = nqT.xx.x;
                     m.v[num3].v = nqT.xx.y;
                     m.v[num3 + 1].x = nqV.yy.x;
                     m.v[num3 + 1].y = nqV.xx.y;
                     m.v[num3 + 1].u = nqT.yy.x;
                     m.v[num3 + 1].v = nqT.xx.y;
                     m.v[num3 + 2].x = nqV.zz.x;
                     m.v[num3 + 2].y = nqV.xx.y;
                     m.v[num3 + 2].u = nqT.zz.x;
                     m.v[num3 + 2].v = nqT.xx.y;
                     m.v[num3 + 3].x = nqV.xx.x;
                     m.v[num3 + 3].y = nqV.yy.y;
                     m.v[num3 + 3].u = nqT.xx.x;
                     m.v[num3 + 3].v = nqT.yy.y;
                     m.v[num3 + 4].x = nqV.yy.x;
                     m.v[num3 + 4].y = nqV.yy.y;
                     m.v[num3 + 4].u = nqT.yy.x;
                     m.v[num3 + 4].v = nqT.yy.y;
                     m.v[num3 + 5].x = nqV.zz.x;
                     m.v[num3 + 5].y = nqV.yy.y;
                     m.v[num3 + 5].u = nqT.zz.x;
                     m.v[num3 + 5].v = nqT.yy.y;
                     break;
                 }
                 case 1:
                 {
                     num3 = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                     m.v[num3].x = nqV.yy.x;
                     m.v[num3].y = nqV.xx.y;
                     m.v[num3].u = nqT.yy.x;
                     m.v[num3].v = nqT.xx.y;
                     m.v[num3 + 1].x = nqV.zz.x;
                     m.v[num3 + 1].y = nqV.xx.y;
                     m.v[num3 + 1].u = nqT.zz.x;
                     m.v[num3 + 1].v = nqT.xx.y;
                     m.v[num3 + 2].x = nqV.ww.x;
                     m.v[num3 + 2].y = nqV.xx.y;
                     m.v[num3 + 2].u = nqT.ww.x;
                     m.v[num3 + 2].v = nqT.xx.y;
                     m.v[num3 + 3].x = nqV.yy.x;
                     m.v[num3 + 3].y = nqV.yy.y;
                     m.v[num3 + 3].u = nqT.yy.x;
                     m.v[num3 + 3].v = nqT.yy.y;
                     m.v[num3 + 4].x = nqV.zz.x;
                     m.v[num3 + 4].y = nqV.yy.y;
                     m.v[num3 + 4].u = nqT.zz.x;
                     m.v[num3 + 4].v = nqT.yy.y;
                     m.v[num3 + 5].x = nqV.ww.x;
                     m.v[num3 + 5].y = nqV.yy.y;
                     m.v[num3 + 5].u = nqT.ww.x;
                     m.v[num3 + 5].v = nqT.yy.y;
                     break;
                 }
                 case 2:
                 {
                     m.FastCell(nqV.xx, nqV.yy, nqT.xx, nqT.yy, ref color);
                     m.FastCell(nqV.zx, nqV.wy, nqT.zx, nqT.wy, ref color);
                     break;
                 }
             }
         }
     }
     else if (nqV.zz.y != nqV.ww.y)
     {
         switch (columnStart)
         {
             case 0:
             {
                 num6 = m.Alloc(PrimitiveKind.Grid2x3, 0f, color);
                 m.v[num6].x = nqV.xx.x;
                 m.v[num6].y = nqV.xx.y;
                 m.v[num6].u = nqT.xx.x;
                 m.v[num6].v = nqT.xx.y;
                 m.v[num6 + 1].x = nqV.yy.x;
                 m.v[num6 + 1].y = nqV.xx.y;
                 m.v[num6 + 1].u = nqT.yy.x;
                 m.v[num6 + 1].v = nqT.xx.y;
                 m.v[num6 + 2].x = nqV.zz.x;
                 m.v[num6 + 2].y = nqV.xx.y;
                 m.v[num6 + 2].u = nqT.zz.x;
                 m.v[num6 + 2].v = nqT.xx.y;
                 m.v[num6 + 3].x = nqV.xx.x;
                 m.v[num6 + 3].y = nqV.yy.y;
                 m.v[num6 + 3].u = nqT.xx.x;
                 m.v[num6 + 3].v = nqT.yy.y;
                 m.v[num6 + 4].x = nqV.yy.x;
                 m.v[num6 + 4].y = nqV.yy.y;
                 m.v[num6 + 4].u = nqT.yy.x;
                 m.v[num6 + 4].v = nqT.yy.y;
                 m.v[num6 + 5].x = nqV.zz.x;
                 m.v[num6 + 5].y = nqV.yy.y;
                 m.v[num6 + 5].u = nqT.zz.x;
                 m.v[num6 + 5].v = nqT.yy.y;
                 m.v[num6 + 6].x = nqV.xx.x;
                 m.v[num6 + 6].y = nqV.zz.y;
                 m.v[num6 + 6].u = nqT.xx.x;
                 m.v[num6 + 6].v = nqT.zz.y;
                 m.v[num6 + 7].x = nqV.yy.x;
                 m.v[num6 + 7].y = nqV.zz.y;
                 m.v[num6 + 7].u = nqT.yy.x;
                 m.v[num6 + 7].v = nqT.zz.y;
                 m.v[num6 + 8].x = nqV.zz.x;
                 m.v[num6 + 8].y = nqV.zz.y;
                 m.v[num6 + 8].u = nqT.zz.x;
                 m.v[num6 + 8].v = nqT.zz.y;
                 m.v[num6 + 9].x = nqV.xx.x;
                 m.v[num6 + 9].y = nqV.ww.y;
                 m.v[num6 + 9].u = nqT.xx.x;
                 m.v[num6 + 9].v = nqT.ww.y;
                 m.v[num6 + 10].x = nqV.yy.x;
                 m.v[num6 + 10].y = nqV.ww.y;
                 m.v[num6 + 10].u = nqT.yy.x;
                 m.v[num6 + 10].v = nqT.ww.y;
                 m.v[num6 + 11].x = nqV.zz.x;
                 m.v[num6 + 11].y = nqV.ww.y;
                 m.v[num6 + 11].u = nqT.zz.x;
                 m.v[num6 + 11].v = nqT.ww.y;
                 break;
             }
             case 1:
             {
                 num6 = m.Alloc(PrimitiveKind.Grid2x3, 0f, color);
                 m.v[num6].x = nqV.yy.x;
                 m.v[num6].y = nqV.xx.y;
                 m.v[num6].u = nqT.yy.x;
                 m.v[num6].v = nqT.xx.y;
                 m.v[num6 + 1].x = nqV.zz.x;
                 m.v[num6 + 1].y = nqV.xx.y;
                 m.v[num6 + 1].u = nqT.zz.x;
                 m.v[num6 + 1].v = nqT.xx.y;
                 m.v[num6 + 2].x = nqV.ww.x;
                 m.v[num6 + 2].y = nqV.xx.y;
                 m.v[num6 + 2].u = nqT.ww.x;
                 m.v[num6 + 2].v = nqT.xx.y;
                 m.v[num6 + 3].x = nqV.yy.x;
                 m.v[num6 + 3].y = nqV.yy.y;
                 m.v[num6 + 3].u = nqT.yy.x;
                 m.v[num6 + 3].v = nqT.yy.y;
                 m.v[num6 + 4].x = nqV.zz.x;
                 m.v[num6 + 4].y = nqV.yy.y;
                 m.v[num6 + 4].u = nqT.zz.x;
                 m.v[num6 + 4].v = nqT.yy.y;
                 m.v[num6 + 5].x = nqV.ww.x;
                 m.v[num6 + 5].y = nqV.yy.y;
                 m.v[num6 + 5].u = nqT.ww.x;
                 m.v[num6 + 5].v = nqT.yy.y;
                 m.v[num6 + 6].x = nqV.yy.x;
                 m.v[num6 + 6].y = nqV.zz.y;
                 m.v[num6 + 6].u = nqT.yy.x;
                 m.v[num6 + 6].v = nqT.zz.y;
                 m.v[num6 + 7].x = nqV.zz.x;
                 m.v[num6 + 7].y = nqV.zz.y;
                 m.v[num6 + 7].u = nqT.zz.x;
                 m.v[num6 + 7].v = nqT.zz.y;
                 m.v[num6 + 8].x = nqV.ww.x;
                 m.v[num6 + 8].y = nqV.zz.y;
                 m.v[num6 + 8].u = nqT.ww.x;
                 m.v[num6 + 8].v = nqT.zz.y;
                 m.v[num6 + 9].x = nqV.yy.x;
                 m.v[num6 + 9].y = nqV.ww.y;
                 m.v[num6 + 9].u = nqT.yy.x;
                 m.v[num6 + 9].v = nqT.ww.y;
                 m.v[num6 + 10].x = nqV.zz.x;
                 m.v[num6 + 10].y = nqV.ww.y;
                 m.v[num6 + 10].u = nqT.zz.x;
                 m.v[num6 + 10].v = nqT.ww.y;
                 m.v[num6 + 11].x = nqV.ww.x;
                 m.v[num6 + 11].y = nqV.ww.y;
                 m.v[num6 + 11].u = nqT.ww.x;
                 m.v[num6 + 11].v = nqT.ww.y;
                 break;
             }
             case 2:
             {
                 num6 = m.Alloc(PrimitiveKind.Grid1x3, 0f, color);
                 m.v[num6].x = nqV.xx.x;
                 m.v[num6].y = nqV.xx.y;
                 m.v[num6].u = nqT.xx.x;
                 m.v[num6].v = nqT.xx.y;
                 m.v[num6 + 1].x = nqV.yy.x;
                 m.v[num6 + 1].y = nqV.xx.y;
                 m.v[num6 + 1].u = nqT.yy.x;
                 m.v[num6 + 1].v = nqT.xx.y;
                 m.v[num6 + 2].x = nqV.xx.x;
                 m.v[num6 + 2].y = nqV.yy.y;
                 m.v[num6 + 2].u = nqT.xx.x;
                 m.v[num6 + 2].v = nqT.yy.y;
                 m.v[num6 + 3].x = nqV.yy.x;
                 m.v[num6 + 3].y = nqV.yy.y;
                 m.v[num6 + 3].u = nqT.yy.x;
                 m.v[num6 + 3].v = nqT.yy.y;
                 m.v[num6 + 4].x = nqV.xx.x;
                 m.v[num6 + 4].y = nqV.zz.y;
                 m.v[num6 + 4].u = nqT.xx.x;
                 m.v[num6 + 4].v = nqT.zz.y;
                 m.v[num6 + 5].x = nqV.yy.x;
                 m.v[num6 + 5].y = nqV.zz.y;
                 m.v[num6 + 5].u = nqT.yy.x;
                 m.v[num6 + 5].v = nqT.zz.y;
                 m.v[num6 + 6].x = nqV.xx.x;
                 m.v[num6 + 6].y = nqV.ww.y;
                 m.v[num6 + 6].u = nqT.xx.x;
                 m.v[num6 + 6].v = nqT.ww.y;
                 m.v[num6 + 7].x = nqV.yy.x;
                 m.v[num6 + 7].y = nqV.ww.y;
                 m.v[num6 + 7].u = nqT.yy.x;
                 m.v[num6 + 7].v = nqT.ww.y;
                 num6 = m.Alloc(PrimitiveKind.Grid1x3, 0f, color);
                 m.v[num6].x = nqV.zz.x;
                 m.v[num6].y = nqV.xx.y;
                 m.v[num6].u = nqT.zz.x;
                 m.v[num6].v = nqT.xx.y;
                 m.v[num6 + 1].x = nqV.ww.x;
                 m.v[num6 + 1].y = nqV.xx.y;
                 m.v[num6 + 1].u = nqT.ww.x;
                 m.v[num6 + 1].v = nqT.xx.y;
                 m.v[num6 + 2].x = nqV.zz.x;
                 m.v[num6 + 2].y = nqV.yy.y;
                 m.v[num6 + 2].u = nqT.zz.x;
                 m.v[num6 + 2].v = nqT.yy.y;
                 m.v[num6 + 3].x = nqV.ww.x;
                 m.v[num6 + 3].y = nqV.yy.y;
                 m.v[num6 + 3].u = nqT.ww.x;
                 m.v[num6 + 3].v = nqT.yy.y;
                 m.v[num6 + 4].x = nqV.zz.x;
                 m.v[num6 + 4].y = nqV.zz.y;
                 m.v[num6 + 4].u = nqT.zz.x;
                 m.v[num6 + 4].v = nqT.zz.y;
                 m.v[num6 + 5].x = nqV.ww.x;
                 m.v[num6 + 5].y = nqV.zz.y;
                 m.v[num6 + 5].u = nqT.ww.x;
                 m.v[num6 + 5].v = nqT.zz.y;
                 m.v[num6 + 6].x = nqV.zz.x;
                 m.v[num6 + 6].y = nqV.ww.y;
                 m.v[num6 + 6].u = nqT.zz.x;
                 m.v[num6 + 6].v = nqT.ww.y;
                 m.v[num6 + 7].x = nqV.ww.x;
                 m.v[num6 + 7].y = nqV.ww.y;
                 m.v[num6 + 7].u = nqT.ww.x;
                 m.v[num6 + 7].v = nqT.ww.y;
                 break;
             }
         }
     }
     else
     {
         switch (columnStart)
         {
             case 0:
             {
                 num5 = m.Alloc(PrimitiveKind.Grid2x2, 0f, color);
                 m.v[num5].x = nqV.xx.x;
                 m.v[num5].y = nqV.xx.y;
                 m.v[num5].u = nqT.xx.x;
                 m.v[num5].v = nqT.xx.y;
                 m.v[num5 + 1].x = nqV.yy.x;
                 m.v[num5 + 1].y = nqV.xx.y;
                 m.v[num5 + 1].u = nqT.yy.x;
                 m.v[num5 + 1].v = nqT.xx.y;
                 m.v[num5 + 2].x = nqV.zz.x;
                 m.v[num5 + 2].y = nqV.xx.y;
                 m.v[num5 + 2].u = nqT.zz.x;
                 m.v[num5 + 2].v = nqT.xx.y;
                 m.v[num5 + 3].x = nqV.xx.x;
                 m.v[num5 + 3].y = nqV.yy.y;
                 m.v[num5 + 3].u = nqT.xx.x;
                 m.v[num5 + 3].v = nqT.zz.y;
                 m.v[num5 + 4].x = nqV.yy.x;
                 m.v[num5 + 4].y = nqV.yy.y;
                 m.v[num5 + 4].u = nqT.yy.x;
                 m.v[num5 + 4].v = nqT.yy.y;
                 m.v[num5 + 5].x = nqV.zz.x;
                 m.v[num5 + 5].y = nqV.yy.y;
                 m.v[num5 + 5].u = nqT.zz.x;
                 m.v[num5 + 5].v = nqT.yy.y;
                 m.v[num5 + 6].x = nqV.xx.x;
                 m.v[num5 + 6].y = nqV.zz.y;
                 m.v[num5 + 6].u = nqT.xx.x;
                 m.v[num5 + 6].v = nqT.zz.y;
                 m.v[num5 + 7].x = nqV.yy.x;
                 m.v[num5 + 7].y = nqV.zz.y;
                 m.v[num5 + 7].u = nqT.yy.x;
                 m.v[num5 + 7].v = nqT.zz.y;
                 m.v[num5 + 8].x = nqV.zz.x;
                 m.v[num5 + 8].y = nqV.zz.y;
                 m.v[num5 + 8].u = nqT.zz.x;
                 m.v[num5 + 8].v = nqT.zz.y;
                 break;
             }
             case 1:
             {
                 num5 = m.Alloc(PrimitiveKind.Grid2x2, 0f, color);
                 m.v[num5].x = nqV.yy.x;
                 m.v[num5].y = nqV.xx.y;
                 m.v[num5].u = nqT.yy.x;
                 m.v[num5].v = nqT.xx.y;
                 m.v[num5 + 1].x = nqV.zz.x;
                 m.v[num5 + 1].y = nqV.xx.y;
                 m.v[num5 + 1].u = nqT.zz.x;
                 m.v[num5 + 1].v = nqT.xx.y;
                 m.v[num5 + 2].x = nqV.ww.x;
                 m.v[num5 + 2].y = nqV.xx.y;
                 m.v[num5 + 2].u = nqT.ww.x;
                 m.v[num5 + 2].v = nqT.xx.y;
                 m.v[num5 + 3].x = nqV.yy.x;
                 m.v[num5 + 3].y = nqV.yy.y;
                 m.v[num5 + 3].u = nqT.yy.x;
                 m.v[num5 + 3].v = nqT.yy.y;
                 m.v[num5 + 4].x = nqV.zz.x;
                 m.v[num5 + 4].y = nqV.yy.y;
                 m.v[num5 + 4].u = nqT.zz.x;
                 m.v[num5 + 4].v = nqT.yy.y;
                 m.v[num5 + 5].x = nqV.ww.x;
                 m.v[num5 + 5].y = nqV.yy.y;
                 m.v[num5 + 5].u = nqT.ww.x;
                 m.v[num5 + 5].v = nqT.yy.y;
                 m.v[num5 + 6].x = nqV.yy.x;
                 m.v[num5 + 6].y = nqV.zz.y;
                 m.v[num5 + 6].u = nqT.yy.x;
                 m.v[num5 + 6].v = nqT.zz.y;
                 m.v[num5 + 7].x = nqV.zz.x;
                 m.v[num5 + 7].y = nqV.zz.y;
                 m.v[num5 + 7].u = nqT.zz.x;
                 m.v[num5 + 7].v = nqT.zz.y;
                 m.v[num5 + 8].x = nqV.ww.x;
                 m.v[num5 + 8].y = nqV.zz.y;
                 m.v[num5 + 8].u = nqT.ww.x;
                 m.v[num5 + 8].v = nqT.zz.y;
                 break;
             }
             case 2:
             {
                 num5 = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                 m.v[num5].x = nqV.xx.x;
                 m.v[num5].y = nqV.xx.y;
                 m.v[num5].u = nqT.xx.x;
                 m.v[num5].v = nqT.xx.y;
                 m.v[num5 + 1].x = nqV.yy.x;
                 m.v[num5 + 1].y = nqV.xx.y;
                 m.v[num5 + 1].u = nqT.yy.x;
                 m.v[num5 + 1].v = nqT.xx.y;
                 m.v[num5 + 2].x = nqV.xx.x;
                 m.v[num5 + 2].y = nqV.yy.y;
                 m.v[num5 + 2].u = nqT.xx.x;
                 m.v[num5 + 2].v = nqT.yy.y;
                 m.v[num5 + 3].x = nqV.yy.x;
                 m.v[num5 + 3].y = nqV.yy.y;
                 m.v[num5 + 3].u = nqT.yy.x;
                 m.v[num5 + 3].v = nqT.yy.y;
                 m.v[num5 + 4].x = nqV.yy.x;
                 m.v[num5 + 4].y = nqV.zz.y;
                 m.v[num5 + 4].u = nqT.yy.x;
                 m.v[num5 + 4].v = nqT.zz.y;
                 m.v[num5 + 5].x = nqV.zz.x;
                 m.v[num5 + 5].y = nqV.zz.y;
                 m.v[num5 + 5].u = nqT.zz.x;
                 m.v[num5 + 5].v = nqT.zz.y;
                 num5 = m.Alloc(PrimitiveKind.Grid2x1, 0f, color);
                 m.v[num5].x = nqV.zz.x;
                 m.v[num5].y = nqV.xx.y;
                 m.v[num5].u = nqT.zz.x;
                 m.v[num5].v = nqT.xx.y;
                 m.v[num5 + 1].x = nqV.ww.x;
                 m.v[num5 + 1].y = nqV.xx.y;
                 m.v[num5 + 1].u = nqT.ww.x;
                 m.v[num5 + 1].v = nqT.xx.y;
                 m.v[num5 + 2].x = nqV.zz.x;
                 m.v[num5 + 2].y = nqV.yy.y;
                 m.v[num5 + 2].u = nqT.zz.x;
                 m.v[num5 + 2].v = nqT.yy.y;
                 m.v[num5 + 3].x = nqV.ww.x;
                 m.v[num5 + 3].y = nqV.yy.y;
                 m.v[num5 + 3].u = nqT.ww.x;
                 m.v[num5 + 3].v = nqT.yy.y;
                 m.v[num5 + 4].x = nqV.zz.x;
                 m.v[num5 + 4].y = nqV.zz.y;
                 m.v[num5 + 4].u = nqT.zz.x;
                 m.v[num5 + 4].v = nqT.zz.y;
                 m.v[num5 + 5].x = nqV.ww.x;
                 m.v[num5 + 5].y = nqV.zz.y;
                 m.v[num5 + 5].u = nqT.ww.x;
                 m.v[num5 + 5].v = nqT.zz.y;
                 break;
             }
         }
     }
 }
Esempio n. 6
0
    public override void OnFill(MeshBuffer m)
    {
        float  single;
        float  single1;
        Vertex vertex  = new Vertex();
        Vertex vertex1 = new Vertex();
        Vertex vertex2 = new Vertex();
        Vertex vertex3 = new Vertex();
        float  single2 = 0f;
        float  single3 = 0f;
        float  single4 = 1f;
        float  single5 = -1f;
        float  single6 = this.mOuterUV.xMin;
        float  single7 = this.mOuterUV.yMin;
        float  single8 = this.mOuterUV.xMax;
        float  single9 = this.mOuterUV.yMax;

        if (this.mFillDirection == UIFilledSprite.FillDirection.Horizontal || this.mFillDirection == UIFilledSprite.FillDirection.Vertical)
        {
            float single10 = (single8 - single6) * this.mFillAmount;
            float single11 = (single9 - single7) * this.mFillAmount;
            if (this.fillDirection == UIFilledSprite.FillDirection.Horizontal)
            {
                if (!this.mInvert)
                {
                    single4 = single4 * this.mFillAmount;
                    single8 = single6 + single10;
                }
                else
                {
                    single2 = 1f - this.mFillAmount;
                    single6 = single8 - single10;
                }
            }
            else if (this.fillDirection == UIFilledSprite.FillDirection.Vertical)
            {
                if (!this.mInvert)
                {
                    single3 = -(1f - this.mFillAmount);
                    single9 = single7 + single11;
                }
                else
                {
                    single5 = single5 * this.mFillAmount;
                    single7 = single9 - single11;
                }
            }
        }
        Vector2[] vector2      = new Vector2[4];
        Vector2[] vector2Array = new Vector2[4];
        vector2[0]      = new Vector2(single4, single3);
        vector2[1]      = new Vector2(single4, single5);
        vector2[2]      = new Vector2(single2, single5);
        vector2[3]      = new Vector2(single2, single3);
        vector2Array[0] = new Vector2(single8, single9);
        vector2Array[1] = new Vector2(single8, single7);
        vector2Array[2] = new Vector2(single6, single7);
        vector2Array[3] = new Vector2(single6, single9);
        Color color = base.color;

        if (this.fillDirection != UIFilledSprite.FillDirection.Radial90)
        {
            if (this.fillDirection == UIFilledSprite.FillDirection.Radial180)
            {
                Vector2[] vector21      = new Vector2[4];
                Vector2[] vector2Array1 = new Vector2[4];
                for (int i = 0; i < 2; i++)
                {
                    vector21[0]      = new Vector2(0f, 0f);
                    vector21[1]      = new Vector2(0f, 1f);
                    vector21[2]      = new Vector2(1f, 1f);
                    vector21[3]      = new Vector2(1f, 0f);
                    vector2Array1[0] = new Vector2(0f, 0f);
                    vector2Array1[1] = new Vector2(0f, 1f);
                    vector2Array1[2] = new Vector2(1f, 1f);
                    vector2Array1[3] = new Vector2(1f, 0f);
                    if (this.mInvert)
                    {
                        if (i > 0)
                        {
                            this.Rotate(vector21, i);
                            this.Rotate(vector2Array1, i);
                        }
                    }
                    else if (i < 1)
                    {
                        this.Rotate(vector21, 1 - i);
                        this.Rotate(vector2Array1, 1 - i);
                    }
                    if (i != 1)
                    {
                        single  = (!this.mInvert ? 0.5f : 1f);
                        single1 = (!this.mInvert ? 1f : 0.5f);
                    }
                    else
                    {
                        single  = (!this.mInvert ? 1f : 0.5f);
                        single1 = (!this.mInvert ? 0.5f : 1f);
                    }
                    vector21[1].y      = Mathf.Lerp(single, single1, vector21[1].y);
                    vector21[2].y      = Mathf.Lerp(single, single1, vector21[2].y);
                    vector2Array1[1].y = Mathf.Lerp(single, single1, vector2Array1[1].y);
                    vector2Array1[2].y = Mathf.Lerp(single, single1, vector2Array1[2].y);
                    float single12 = this.mFillAmount * 2f - (float)i;
                    bool  flag     = i % 2 == 1;
                    if (this.AdjustRadial(vector21, vector2Array1, single12, !flag))
                    {
                        if (this.mInvert)
                        {
                            flag = !flag;
                        }
                        if (!flag)
                        {
                            int num = m.Alloc(PrimitiveKind.Quad);
                            for (int j = 3; j > -1; j--)
                            {
                                m.v[num].x = Mathf.Lerp(vector2[0].x, vector2[2].x, vector21[j].x);
                                m.v[num].y = Mathf.Lerp(vector2[0].y, vector2[2].y, vector21[j].y);
                                m.v[num].z = 0f;
                                m.v[num].u = Mathf.Lerp(vector2Array[0].x, vector2Array[2].x, vector2Array1[j].x);
                                m.v[num].v = Mathf.Lerp(vector2Array[0].y, vector2Array[2].y, vector2Array1[j].y);
                                m.v[num].r = color.r;
                                m.v[num].g = color.g;
                                m.v[num].b = color.b;
                                m.v[num].a = color.a;
                                num++;
                            }
                        }
                        else
                        {
                            int num1 = m.Alloc(PrimitiveKind.Quad);
                            for (int k = 0; k < 4; k++)
                            {
                                m.v[num1].x = Mathf.Lerp(vector2[0].x, vector2[2].x, vector21[k].x);
                                m.v[num1].y = Mathf.Lerp(vector2[0].y, vector2[2].y, vector21[k].y);
                                m.v[num1].z = 0f;
                                m.v[num1].u = Mathf.Lerp(vector2Array[0].x, vector2Array[2].x, vector2Array1[k].x);
                                m.v[num1].v = Mathf.Lerp(vector2Array[0].y, vector2Array[2].y, vector2Array1[k].y);
                                m.v[num1].r = color.r;
                                m.v[num1].g = color.g;
                                m.v[num1].b = color.b;
                                m.v[num1].a = color.a;
                                num1++;
                            }
                        }
                    }
                }
                return;
            }
            if (this.fillDirection == UIFilledSprite.FillDirection.Radial360)
            {
                float[]   singleArray   = new float[] { 0.5f, 1f, 0f, 0.5f, 0.5f, 1f, 0.5f, 1f, 0f, 0.5f, 0.5f, 1f, 0f, 0.5f, 0f, 0.5f };
                Vector2[] vector22      = new Vector2[4];
                Vector2[] vector2Array2 = new Vector2[4];
                for (int l = 0; l < 4; l++)
                {
                    vector22[0]      = new Vector2(0f, 0f);
                    vector22[1]      = new Vector2(0f, 1f);
                    vector22[2]      = new Vector2(1f, 1f);
                    vector22[3]      = new Vector2(1f, 0f);
                    vector2Array2[0] = new Vector2(0f, 0f);
                    vector2Array2[1] = new Vector2(0f, 1f);
                    vector2Array2[2] = new Vector2(1f, 1f);
                    vector2Array2[3] = new Vector2(1f, 0f);
                    if (this.mInvert)
                    {
                        if (l > 0)
                        {
                            this.Rotate(vector22, l);
                            this.Rotate(vector2Array2, l);
                        }
                    }
                    else if (l < 3)
                    {
                        this.Rotate(vector22, 3 - l);
                        this.Rotate(vector2Array2, 3 - l);
                    }
                    for (int m1 = 0; m1 < 4; m1++)
                    {
                        int   num2     = (!this.mInvert ? l * 4 : (3 - l) * 4);
                        float single13 = singleArray[num2];
                        float single14 = singleArray[num2 + 1];
                        float single15 = singleArray[num2 + 2];
                        float single16 = singleArray[num2 + 3];
                        vector22[m1].x      = Mathf.Lerp(single13, single14, vector22[m1].x);
                        vector22[m1].y      = Mathf.Lerp(single15, single16, vector22[m1].y);
                        vector2Array2[m1].x = Mathf.Lerp(single13, single14, vector2Array2[m1].x);
                        vector2Array2[m1].y = Mathf.Lerp(single15, single16, vector2Array2[m1].y);
                    }
                    float single17 = this.mFillAmount * 4f - (float)l;
                    bool  flag1    = l % 2 == 1;
                    if (this.AdjustRadial(vector22, vector2Array2, single17, !flag1))
                    {
                        if (this.mInvert)
                        {
                            flag1 = !flag1;
                        }
                        if (!flag1)
                        {
                            int num3 = m.Alloc(PrimitiveKind.Quad);
                            for (int n = 3; n > -1; n--)
                            {
                                m.v[num3].x = Mathf.Lerp(vector2[0].x, vector2[2].x, vector22[n].x);
                                m.v[num3].y = Mathf.Lerp(vector2[0].y, vector2[2].y, vector22[n].y);
                                m.v[num3].z = 0f;
                                m.v[num3].u = Mathf.Lerp(vector2Array[0].x, vector2Array[2].x, vector2Array2[n].x);
                                m.v[num3].v = Mathf.Lerp(vector2Array[0].y, vector2Array[2].y, vector2Array2[n].y);
                                m.v[num3].r = color.r;
                                m.v[num3].g = color.g;
                                m.v[num3].b = color.b;
                                m.v[num3].a = color.a;
                                num3++;
                            }
                        }
                        else
                        {
                            int num4 = m.Alloc(PrimitiveKind.Quad);
                            for (int o = 0; o < 4; o++)
                            {
                                m.v[num4].x = Mathf.Lerp(vector2[0].x, vector2[2].x, vector22[o].x);
                                m.v[num4].y = Mathf.Lerp(vector2[0].y, vector2[2].y, vector22[o].y);
                                m.v[num4].z = 0f;
                                m.v[num4].u = Mathf.Lerp(vector2Array[0].x, vector2Array[2].x, vector2Array2[o].x);
                                m.v[num4].v = Mathf.Lerp(vector2Array[0].y, vector2Array[2].y, vector2Array2[o].y);
                                m.v[num4].r = color.r;
                                m.v[num4].g = color.g;
                                m.v[num4].b = color.b;
                                m.v[num4].a = color.a;
                                num4++;
                            }
                        }
                    }
                }
                return;
            }
        }
        else if (!this.AdjustRadial(vector2, vector2Array, this.mFillAmount, this.mInvert))
        {
            return;
        }
        vertex.x  = vector2[0].x;
        vertex.y  = vector2[0].y;
        vertex.u  = vector2Array[0].x;
        vertex.v  = vector2Array[0].y;
        vertex1.x = vector2[1].x;
        vertex1.y = vector2[1].y;
        vertex1.u = vector2Array[1].x;
        vertex1.v = vector2Array[1].y;
        vertex2.x = vector2[2].x;
        vertex2.y = vector2[2].y;
        vertex2.u = vector2Array[2].x;
        vertex2.v = vector2Array[2].y;
        vertex3.x = vector2[3].x;
        vertex3.y = vector2[3].y;
        vertex3.u = vector2Array[3].x;
        vertex3.v = vector2Array[3].y;
        float single18 = 0f;
        float single19 = single18;

        vertex3.z = single18;
        float single20 = single19;

        single19  = single20;
        vertex2.z = single20;
        float single21 = single19;

        single19  = single21;
        vertex1.z = single21;
        vertex.z  = single19;
        float single22 = color.r;

        single19  = single22;
        vertex3.r = single22;
        float single23 = single19;

        single19  = single23;
        vertex2.r = single23;
        float single24 = single19;

        single19  = single24;
        vertex1.r = single24;
        vertex.r  = single19;
        float single25 = color.g;

        single19  = single25;
        vertex3.g = single25;
        float single26 = single19;

        single19  = single26;
        vertex2.g = single26;
        float single27 = single19;

        single19  = single27;
        vertex1.g = single27;
        vertex.g  = single19;
        float single28 = color.b;

        single19  = single28;
        vertex3.b = single28;
        float single29 = single19;

        single19  = single29;
        vertex2.b = single29;
        float single30 = single19;

        single19  = single30;
        vertex1.b = single30;
        vertex.b  = single19;
        float single31 = color.a;

        single19  = single31;
        vertex3.a = single31;
        float single32 = single19;

        single19  = single32;
        vertex2.a = single32;
        float single33 = single19;

        single19  = single33;
        vertex1.a = single33;
        vertex.a  = single19;
        m.Quad(vertex, vertex1, vertex2, vertex3);
    }
Esempio n. 7
0
    public override void OnFill(MeshBuffer m)
    {
        Vertex vertex;
        Vertex vertex2;
        Vertex vertex3;
        Vertex vertex4;
        float  x    = 0f;
        float  y    = 0f;
        float  num3 = 1f;
        float  num4 = -1f;
        float  xMin = this.mOuterUV.xMin;
        float  yMin = this.mOuterUV.yMin;
        float  xMax = this.mOuterUV.xMax;
        float  yMax = this.mOuterUV.yMax;

        if ((this.mFillDirection == FillDirection.Horizontal) || (this.mFillDirection == FillDirection.Vertical))
        {
            float num9  = (xMax - xMin) * this.mFillAmount;
            float num10 = (yMax - yMin) * this.mFillAmount;
            if (this.fillDirection == FillDirection.Horizontal)
            {
                if (this.mInvert)
                {
                    x    = 1f - this.mFillAmount;
                    xMin = xMax - num9;
                }
                else
                {
                    num3 *= this.mFillAmount;
                    xMax  = xMin + num9;
                }
            }
            else if (this.fillDirection == FillDirection.Vertical)
            {
                if (this.mInvert)
                {
                    num4 *= this.mFillAmount;
                    yMin  = yMax - num10;
                }
                else
                {
                    y    = -(1f - this.mFillAmount);
                    yMax = yMin + num10;
                }
            }
        }
        Vector2[] xy = new Vector2[4];
        Vector2[] uv = new Vector2[4];
        xy[0] = new Vector2(num3, y);
        xy[1] = new Vector2(num3, num4);
        xy[2] = new Vector2(x, num4);
        xy[3] = new Vector2(x, y);
        uv[0] = new Vector2(xMax, yMax);
        uv[1] = new Vector2(xMax, yMin);
        uv[2] = new Vector2(xMin, yMin);
        uv[3] = new Vector2(xMin, yMax);
        Color color = base.color;

        if (this.fillDirection == FillDirection.Radial90)
        {
            if (!this.AdjustRadial(xy, uv, this.mFillAmount, this.mInvert))
            {
                return;
            }
        }
        else
        {
            if (this.fillDirection == FillDirection.Radial180)
            {
                Vector2[] v            = new Vector2[4];
                Vector2[] vectorArray4 = new Vector2[4];
                for (int i = 0; i < 2; i++)
                {
                    float num12;
                    float num13;
                    v[0]            = new Vector2(0f, 0f);
                    v[1]            = new Vector2(0f, 1f);
                    v[2]            = new Vector2(1f, 1f);
                    v[3]            = new Vector2(1f, 0f);
                    vectorArray4[0] = new Vector2(0f, 0f);
                    vectorArray4[1] = new Vector2(0f, 1f);
                    vectorArray4[2] = new Vector2(1f, 1f);
                    vectorArray4[3] = new Vector2(1f, 0f);
                    if (this.mInvert)
                    {
                        if (i > 0)
                        {
                            this.Rotate(v, i);
                            this.Rotate(vectorArray4, i);
                        }
                    }
                    else if (i < 1)
                    {
                        this.Rotate(v, 1 - i);
                        this.Rotate(vectorArray4, 1 - i);
                    }
                    if (i == 1)
                    {
                        num12 = !this.mInvert ? 1f : 0.5f;
                        num13 = !this.mInvert ? 0.5f : 1f;
                    }
                    else
                    {
                        num12 = !this.mInvert ? 0.5f : 1f;
                        num13 = !this.mInvert ? 1f : 0.5f;
                    }
                    v[1].y            = Mathf.Lerp(num12, num13, v[1].y);
                    v[2].y            = Mathf.Lerp(num12, num13, v[2].y);
                    vectorArray4[1].y = Mathf.Lerp(num12, num13, vectorArray4[1].y);
                    vectorArray4[2].y = Mathf.Lerp(num12, num13, vectorArray4[2].y);
                    float fill = (this.mFillAmount * 2f) - i;
                    bool  flag = (i % 2) == 1;
                    if (this.AdjustRadial(v, vectorArray4, fill, !flag))
                    {
                        if (this.mInvert)
                        {
                            flag = !flag;
                        }
                        if (flag)
                        {
                            int index = m.Alloc(PrimitiveKind.Quad);
                            for (int j = 0; j < 4; j++)
                            {
                                m.v[index].x = Mathf.Lerp(xy[0].x, xy[2].x, v[j].x);
                                m.v[index].y = Mathf.Lerp(xy[0].y, xy[2].y, v[j].y);
                                m.v[index].z = 0f;
                                m.v[index].u = Mathf.Lerp(uv[0].x, uv[2].x, vectorArray4[j].x);
                                m.v[index].v = Mathf.Lerp(uv[0].y, uv[2].y, vectorArray4[j].y);
                                m.v[index].r = color.r;
                                m.v[index].g = color.g;
                                m.v[index].b = color.b;
                                m.v[index].a = color.a;
                                index++;
                            }
                        }
                        else
                        {
                            int num17 = m.Alloc(PrimitiveKind.Quad);
                            for (int k = 3; k > -1; k--)
                            {
                                m.v[num17].x = Mathf.Lerp(xy[0].x, xy[2].x, v[k].x);
                                m.v[num17].y = Mathf.Lerp(xy[0].y, xy[2].y, v[k].y);
                                m.v[num17].z = 0f;
                                m.v[num17].u = Mathf.Lerp(uv[0].x, uv[2].x, vectorArray4[k].x);
                                m.v[num17].v = Mathf.Lerp(uv[0].y, uv[2].y, vectorArray4[k].y);
                                m.v[num17].r = color.r;
                                m.v[num17].g = color.g;
                                m.v[num17].b = color.b;
                                m.v[num17].a = color.a;
                                num17++;
                            }
                        }
                    }
                }
                return;
            }
            if (this.fillDirection == FillDirection.Radial360)
            {
                float[]   numArray     = new float[] { 0.5f, 1f, 0f, 0.5f, 0.5f, 1f, 0.5f, 1f, 0f, 0.5f, 0.5f, 1f, 0f, 0.5f, 0f, 0.5f };
                Vector2[] vectorArray5 = new Vector2[4];
                Vector2[] vectorArray6 = new Vector2[4];
                for (int n = 0; n < 4; n++)
                {
                    vectorArray5[0] = new Vector2(0f, 0f);
                    vectorArray5[1] = new Vector2(0f, 1f);
                    vectorArray5[2] = new Vector2(1f, 1f);
                    vectorArray5[3] = new Vector2(1f, 0f);
                    vectorArray6[0] = new Vector2(0f, 0f);
                    vectorArray6[1] = new Vector2(0f, 1f);
                    vectorArray6[2] = new Vector2(1f, 1f);
                    vectorArray6[3] = new Vector2(1f, 0f);
                    if (this.mInvert)
                    {
                        if (n > 0)
                        {
                            this.Rotate(vectorArray5, n);
                            this.Rotate(vectorArray6, n);
                        }
                    }
                    else if (n < 3)
                    {
                        this.Rotate(vectorArray5, 3 - n);
                        this.Rotate(vectorArray6, 3 - n);
                    }
                    for (int num20 = 0; num20 < 4; num20++)
                    {
                        int   num21 = !this.mInvert ? (n * 4) : ((3 - n) * 4);
                        float from  = numArray[num21];
                        float to    = numArray[num21 + 1];
                        float num24 = numArray[num21 + 2];
                        float num25 = numArray[num21 + 3];
                        vectorArray5[num20].x = Mathf.Lerp(from, to, vectorArray5[num20].x);
                        vectorArray5[num20].y = Mathf.Lerp(num24, num25, vectorArray5[num20].y);
                        vectorArray6[num20].x = Mathf.Lerp(from, to, vectorArray6[num20].x);
                        vectorArray6[num20].y = Mathf.Lerp(num24, num25, vectorArray6[num20].y);
                    }
                    float num26 = (this.mFillAmount * 4f) - n;
                    bool  flag2 = (n % 2) == 1;
                    if (this.AdjustRadial(vectorArray5, vectorArray6, num26, !flag2))
                    {
                        if (this.mInvert)
                        {
                            flag2 = !flag2;
                        }
                        if (flag2)
                        {
                            int num27 = m.Alloc(PrimitiveKind.Quad);
                            for (int num28 = 0; num28 < 4; num28++)
                            {
                                m.v[num27].x = Mathf.Lerp(xy[0].x, xy[2].x, vectorArray5[num28].x);
                                m.v[num27].y = Mathf.Lerp(xy[0].y, xy[2].y, vectorArray5[num28].y);
                                m.v[num27].z = 0f;
                                m.v[num27].u = Mathf.Lerp(uv[0].x, uv[2].x, vectorArray6[num28].x);
                                m.v[num27].v = Mathf.Lerp(uv[0].y, uv[2].y, vectorArray6[num28].y);
                                m.v[num27].r = color.r;
                                m.v[num27].g = color.g;
                                m.v[num27].b = color.b;
                                m.v[num27].a = color.a;
                                num27++;
                            }
                        }
                        else
                        {
                            int num29 = m.Alloc(PrimitiveKind.Quad);
                            for (int num30 = 3; num30 > -1; num30--)
                            {
                                m.v[num29].x = Mathf.Lerp(xy[0].x, xy[2].x, vectorArray5[num30].x);
                                m.v[num29].y = Mathf.Lerp(xy[0].y, xy[2].y, vectorArray5[num30].y);
                                m.v[num29].z = 0f;
                                m.v[num29].u = Mathf.Lerp(uv[0].x, uv[2].x, vectorArray6[num30].x);
                                m.v[num29].v = Mathf.Lerp(uv[0].y, uv[2].y, vectorArray6[num30].y);
                                m.v[num29].r = color.r;
                                m.v[num29].g = color.g;
                                m.v[num29].b = color.b;
                                m.v[num29].a = color.a;
                                num29++;
                            }
                        }
                    }
                }
                return;
            }
        }
        vertex.x  = xy[0].x;
        vertex.y  = xy[0].y;
        vertex.u  = uv[0].x;
        vertex.v  = uv[0].y;
        vertex2.x = xy[1].x;
        vertex2.y = xy[1].y;
        vertex2.u = uv[1].x;
        vertex2.v = uv[1].y;
        vertex3.x = xy[2].x;
        vertex3.y = xy[2].y;
        vertex3.u = uv[2].x;
        vertex3.v = uv[2].y;
        vertex4.x = xy[3].x;
        vertex4.y = xy[3].y;
        vertex4.u = uv[3].x;
        vertex4.v = uv[3].y;
        vertex.z  = vertex2.z = vertex3.z = vertex4.z = 0f;
        vertex.r  = vertex2.r = vertex3.r = vertex4.r = color.r;
        vertex.g  = vertex2.g = vertex3.g = vertex4.g = color.g;
        vertex.b  = vertex2.b = vertex3.b = vertex4.b = color.b;
        vertex.a  = vertex2.a = vertex3.a = vertex4.a = color.a;
        m.Quad(vertex, vertex2, vertex3, vertex4);
    }
Esempio n. 8
0
 public void Copy(ref int start, Vertex[] v, Vector3[] transformed, int end, MeshBuffer p)
 {
     int num;
     int num1 = (end - start) / Primitive.VertexCount(this.kind);
     Label0:
     int num2 = num1;
     num1 = num2 - 1;
     if (num2 <= 0)
     {
         return;
     }
     int num3 = p.Alloc(this.kind, out num);
     while (num3 < num)
     {
         p.v[num3].x = transformed[start].x;
         p.v[num3].y = transformed[start].y;
         p.v[num3].z = transformed[start].z;
         p.v[num3].u = v[start].u;
         p.v[num3].v = v[start].v;
         p.v[num3].r = v[start].r;
         p.v[num3].g = v[start].g;
         p.v[num3].b = v[start].b;
         p.v[num3].a = v[start].a;
         num3++;
         start = start + 1;
     }
     goto Label0;
 }
Esempio n. 9
0
 public void Copy(ref int start, Vertex[] v, int end, MeshBuffer p)
 {
     int num;
     int num1 = (end - start) / Primitive.VertexCount(this.kind);
     Label0:
     int num2 = num1;
     num1 = num2 - 1;
     if (num2 <= 0)
     {
         return;
     }
     int num3 = p.Alloc(this.kind, out num);
     while (num3 < num)
     {
         int num4 = num3;
         num3 = num4 + 1;
         int num5 = start;
         int num6 = num5;
         start = num5 + 1;
         p.v[num4] = v[num6];
     }
     goto Label0;
 }