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; } } } }
public static void Fill9(ref NineRectangle nqV, ref NineRectangle nqT, ref Color color, MeshBuffer m) { if (nqV.xx.x == nqV.yy.x) { if (nqV.yy.x == nqV.zz.x) { if (nqV.zz.x != nqT.ww.x) { NineRectangle.FillColumn1(ref nqV, ref nqT, 2, ref color, m); } } else if (nqV.zz.x != nqT.ww.x) { NineRectangle.FillColumn2(ref nqV, ref nqT, 1, ref color, m); } else { NineRectangle.FillColumn1(ref nqV, ref nqT, 1, ref color, m); } } else if (nqV.yy.x == nqV.zz.x) { if (nqV.zz.x != nqV.ww.x) { NineRectangle.FillColumn2(ref nqV, ref nqT, 2, ref color, m); } else { NineRectangle.FillColumn1(ref nqV, ref nqT, 1, ref color, m); } } else if (nqV.zz.x != nqV.ww.x) { NineRectangle.FillColumn3(ref nqV, ref nqT, ref color, m); } else { NineRectangle.FillColumn2(ref nqV, ref nqT, 0, ref color, m); } }
private static void Commit3x3(int start, ref NineRectangle nqV, ref NineRectangle nqT, ref Color color, MeshBuffer m) { m.v[start].x = nqV.xx.x; m.v[start].y = nqV.xx.y; m.v[start].u = nqT.xx.x; m.v[start].v = nqT.xx.y; Vector2 vector2 = nqV.yx; m.v[start + 1].x = vector2.x; Vector2 vector21 = nqV.yx; m.v[start + 1].y = vector21.y; Vector2 vector22 = nqT.yx; m.v[start + 1].u = vector22.x; Vector2 vector23 = nqT.yx; m.v[start + 1].v = vector23.y; Vector2 vector24 = nqV.zx; m.v[start + 2].x = vector24.x; Vector2 vector25 = nqV.zx; m.v[start + 2].y = vector25.y; Vector2 vector26 = nqT.zx; m.v[start + 2].u = vector26.x; Vector2 vector27 = nqT.zx; m.v[start + 2].v = vector27.y; Vector2 vector28 = nqV.wx; m.v[start + 3].x = vector28.x; Vector2 vector29 = nqV.wx; m.v[start + 3].y = vector29.y; Vector2 vector210 = nqT.wx; m.v[start + 3].u = vector210.x; Vector2 vector211 = nqT.wx; m.v[start + 3].v = vector211.y; Vector2 vector212 = nqV.xy; m.v[start + 4].x = vector212.x; Vector2 vector213 = nqV.xy; m.v[start + 4].y = vector213.y; Vector2 vector214 = nqT.xy; m.v[start + 4].u = vector214.x; Vector2 vector215 = nqT.xy; m.v[start + 4].v = vector215.y; m.v[start + 1 + 4].x = nqV.yy.x; m.v[start + 1 + 4].y = nqV.yy.y; m.v[start + 1 + 4].u = nqT.yy.x; m.v[start + 1 + 4].v = nqT.yy.y; Vector2 vector216 = nqV.zy; m.v[start + 2 + 4].x = vector216.x; Vector2 vector217 = nqV.zy; m.v[start + 2 + 4].y = vector217.y; Vector2 vector218 = nqT.zy; m.v[start + 2 + 4].u = vector218.x; Vector2 vector219 = nqT.zy; m.v[start + 2 + 4].v = vector219.y; Vector2 vector220 = nqV.wy; m.v[start + 3 + 4].x = vector220.x; Vector2 vector221 = nqV.wy; m.v[start + 3 + 4].y = vector221.y; Vector2 vector222 = nqT.wy; m.v[start + 3 + 4].u = vector222.x; Vector2 vector223 = nqT.wy; m.v[start + 3 + 4].v = vector223.y; Vector2 vector224 = nqV.xz; m.v[start + 8].x = vector224.x; Vector2 vector225 = nqV.xz; m.v[start + 8].y = vector225.y; Vector2 vector226 = nqT.xz; m.v[start + 8].u = vector226.x; Vector2 vector227 = nqT.xz; m.v[start + 8].v = vector227.y; Vector2 vector228 = nqV.yz; m.v[start + 1 + 8].x = vector228.x; Vector2 vector229 = nqV.yz; m.v[start + 1 + 8].y = vector229.y; Vector2 vector230 = nqT.yz; m.v[start + 1 + 8].u = vector230.x; Vector2 vector231 = nqT.yz; m.v[start + 1 + 8].v = vector231.y; m.v[start + 2 + 8].x = nqV.zz.x; m.v[start + 2 + 8].y = nqV.zz.y; m.v[start + 2 + 8].u = nqT.zz.x; m.v[start + 2 + 8].v = nqT.zz.y; Vector2 vector232 = nqV.wz; m.v[start + 3 + 8].x = vector232.x; Vector2 vector233 = nqV.wz; m.v[start + 3 + 8].y = vector233.y; Vector2 vector234 = nqT.wz; m.v[start + 3 + 8].u = vector234.x; Vector2 vector235 = nqT.wz; m.v[start + 3 + 8].v = vector235.y; Vector2 vector236 = nqV.xw; m.v[start + 12].x = vector236.x; Vector2 vector237 = nqV.xw; m.v[start + 12].y = vector237.y; Vector2 vector238 = nqT.xw; m.v[start + 12].u = vector238.x; Vector2 vector239 = nqT.xw; m.v[start + 12].v = vector239.y; Vector2 vector240 = nqV.yw; m.v[start + 1 + 12].x = vector240.x; Vector2 vector241 = nqV.yw; m.v[start + 1 + 12].y = vector241.y; Vector2 vector242 = nqT.yw; m.v[start + 1 + 12].u = vector242.x; Vector2 vector243 = nqT.yw; m.v[start + 1 + 12].v = vector243.y; Vector2 vector244 = nqV.zw; m.v[start + 2 + 12].x = vector244.x; Vector2 vector245 = nqV.zw; m.v[start + 2 + 12].y = vector245.y; Vector2 vector246 = nqT.zw; m.v[start + 2 + 12].u = vector246.x; Vector2 vector247 = nqT.zw; m.v[start + 2 + 12].v = vector247.y; m.v[start + 3 + 12].x = nqV.ww.x; m.v[start + 3 + 12].y = nqV.ww.y; m.v[start + 3 + 12].u = nqT.ww.x; m.v[start + 3 + 12].v = nqT.ww.y; for (int i = 0; i < 16; i++) { m.v[start + i].z = 0f; m.v[start + i].r = color.r; m.v[start + i].g = color.g; m.v[start + i].b = color.b; m.v[start + i].a = color.a; } }
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); }
public static void Calculate(UIWidget.Pivot pivot, float pixelSize, Texture tex, ref Vector4 minMaxX, ref Vector4 minMaxY, ref Vector2 scale, out NineRectangle nqV, out NineRectangle nqT) { nqV = new NineRectangle(); nqT = new NineRectangle(); Vector2 vector2 = new Vector2(); Vector2 vector21 = new Vector2(); float single; if (!tex || pixelSize == 0f) { float single1 = 0f; float single2 = single1; nqV.yy.y = single1; float single3 = single2; single2 = single3; nqV.xx.y = single3; float single4 = single2; single2 = single4; nqV.yy.x = single4; nqV.xx.x = single2; float single5 = 1f; single2 = single5; nqV.ww.x = single5; nqV.zz.x = single2; float single6 = -1f; single2 = single6; nqV.ww.y = single6; nqV.zz.y = single2; nqT = new NineRectangle(); } else { float single7 = (minMaxX.y - minMaxX.x) * pixelSize; float single8 = (minMaxX.w - minMaxX.z) * pixelSize; float single9 = (minMaxY.z - minMaxY.w) * pixelSize; float single10 = (minMaxY.x - minMaxY.y) * pixelSize; if (scale.x >= 0f) { float single11 = (float)(1 / ((double)scale.x / (double)tex.width)); vector2.x = single7 * single11; vector21.x = single8 * single11; } else { scale.x = 0f; vector2.x = single7 / 0f; vector21.x = single8 / 0f; } if (scale.y >= 0f) { float single12 = (float)(1 / ((double)scale.y / (double)tex.height)); vector2.y = single9 * single12; vector21.y = single10 * single12; } else { scale.y = 0f; vector2.y = single9 / 0f; vector21.y = single10 / 0f; } UIWidget.Pivot pivot1 = pivot; switch (pivot1) { case UIWidget.Pivot.TopRight: case UIWidget.Pivot.Right: { single = vector21.x + vector2.x; if (single > 1f) { nqV.xx.x = 1f - single; nqV.yy.x = nqV.xx.x + vector2.x; nqV.ww.x = nqV.xx.x + single; single = 1f - vector21.x; float single13 = nqV.xx.x; nqV.zz.x = single13 + (single <= vector2.x ? vector2.x : single); } else { nqV.xx.x = 0f; nqV.ww.x = 1f; nqV.yy.x = vector2.x; single = 1f - vector21.x; nqV.zz.x = (single <= vector2.x ? vector2.x : single); } break; } default: { if (pivot1 == UIWidget.Pivot.BottomRight) { goto case UIWidget.Pivot.Right; } nqV.xx.x = 0f; nqV.yy.x = vector2.x; single = 1f - vector21.x; nqV.zz.x = (single <= vector2.x ? vector2.x : single); single = vector2.x + vector21.x; nqV.ww.x = (single <= 1f ? 1f : single); break; } } pivot1 = pivot; switch (pivot1) { case UIWidget.Pivot.BottomLeft: case UIWidget.Pivot.Bottom: case UIWidget.Pivot.BottomRight: { single = -1f - vector21.y + vector2.y; if (single > 0f) { nqV.xx.y = single; nqV.yy.y = nqV.xx.y + vector2.x; single = -1f - vector21.y; float single14 = nqV.xx.y; nqV.zz.y = single14 + (single >= vector2.y ? vector2.y : single); single = vector2.y + vector21.y; float single15 = nqV.xx.y; nqV.ww.y = single15 + (single >= -1f ? -1f : single); } else { nqV.xx.y = 0f; nqV.yy.y = vector2.y; single = -1f - vector21.y; nqV.zz.y = (single >= vector2.y ? vector2.y : single); single = vector2.y + vector21.y; nqV.ww.y = (single >= -1f ? -1f : single); } break; } default: { nqV.xx.y = 0f; nqV.yy.y = vector2.y; single = -1f - vector21.y; nqV.zz.y = (single >= vector2.y ? vector2.y : single); single = vector21.y + vector2.y; nqV.ww.y = (single >= -1f ? -1f : single); break; } } nqT.xx.x = minMaxX.x; nqT.yy.x = minMaxX.y; nqT.zz.x = minMaxX.z; nqT.ww.x = minMaxX.w; nqT.xx.y = minMaxY.w; nqT.yy.y = minMaxY.z; nqT.zz.y = minMaxY.y; nqT.ww.y = minMaxY.x; } }
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; } }
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; } } } }
public override void OnFill(MeshBuffer m) { NineRectangle nineRectangle; NineRectangle nineRectangle1 = new NineRectangle(); NineRectangle nineRectangle2; NineRectangle nineRectangle3 = new NineRectangle(); Vector4 vector4 = new Vector4(); Vector4 vector41 = new Vector4(); float single = this._degreesOfRotation * 0.0174532924f; float single1 = this._sliceDegrees * 0.0174532924f; float single2 = this._sliceFill; int num = this.slices + 1; float single3 = (single - single1 * (float)this.slices) * single2; float single4 = single3 / (float)num; float single5 = single3 / 6.28318548f; float single6 = (single - single3) / (float)num; float3 _float3 = new float3() { xyz = base.cachedTransform.localScale }; float single7 = (_float3.x >= _float3.y ? _float3.x : _float3.y); _float3.xy.x = 3.14159274f * single7 / (float)num * single5; _float3.xy.y = single7 * (this.outerRadius * 0.5f); vector4.x = this.mOuterUV.xMin; vector4.y = this.mInnerUV.xMin; vector4.z = this.mInnerUV.xMax; vector4.w = this.mOuterUV.xMax; vector41.x = this.mOuterUV.yMin; vector41.y = this.mInnerUV.yMin; vector41.z = this.mInnerUV.yMax; vector41.w = this.mOuterUV.yMax; NineRectangle.Calculate(UIWidget.Pivot.Center, base.atlas.pixelSize, base.mainTexture, ref vector4, ref vector41, ref _float3.xy, out nineRectangle, out nineRectangle2); if (this.innerRadius <= 0f || Mathf.Approximately(nineRectangle.zz.x - nineRectangle.yy.x, 0f)) { nineRectangle1.xx.x = nineRectangle.xx.x; nineRectangle1.xx.y = nineRectangle.xx.y; nineRectangle1.yy.x = nineRectangle.yy.x; nineRectangle1.yy.y = nineRectangle.yy.y; nineRectangle1.zz.x = nineRectangle.zz.x; nineRectangle1.zz.y = nineRectangle.zz.y; nineRectangle1.ww.x = nineRectangle.ww.x; nineRectangle1.ww.y = nineRectangle.ww.y; nineRectangle3.xx.x = nineRectangle2.xx.x; nineRectangle3.xx.y = nineRectangle2.xx.y; nineRectangle3.yy.x = nineRectangle2.yy.x; nineRectangle3.yy.y = nineRectangle2.yy.y; nineRectangle3.zz.x = nineRectangle2.zz.x; nineRectangle3.zz.y = nineRectangle2.zz.y; nineRectangle3.ww.x = nineRectangle2.ww.x; nineRectangle3.ww.y = nineRectangle2.ww.y; } else { _float3.xy.x = 3.14159274f * single7 * this.innerRadius / (float)num * single5; NineRectangle.Calculate(UIWidget.Pivot.Center, base.atlas.pixelSize, base.mainTexture, ref vector4, ref vector41, ref _float3.xy, out nineRectangle1, out nineRectangle3); float single8 = (nineRectangle.yy.x + nineRectangle.zz.x) * 0.5f; if (nineRectangle1.yy.x > single8) { float single9 = (nineRectangle1.yy.x - single8) / (nineRectangle.ww.x - single8); if (single9 < 1f) { float single10 = 1f - single9; nineRectangle1.xx.y = nineRectangle.xx.y * single9 + nineRectangle1.xx.y * single10; nineRectangle1.yy.x = nineRectangle.yy.x * single9 + 0.5f * single10; nineRectangle1.yy.y = nineRectangle.yy.y * single9 + nineRectangle1.yy.y * single10; nineRectangle1.zz.x = nineRectangle.zz.x * single9 + 0.5f * single10; nineRectangle1.zz.y = nineRectangle.zz.y * single9 + nineRectangle1.zz.y * single10; nineRectangle1.ww.y = nineRectangle.ww.y * single9 + nineRectangle1.ww.y * single10; nineRectangle1.ww.x = nineRectangle.ww.x; nineRectangle1.xx.x = nineRectangle.xx.x; } else { nineRectangle1.xx.x = nineRectangle.xx.x; nineRectangle1.xx.y = nineRectangle.xx.y; nineRectangle1.yy.x = nineRectangle.yy.x; nineRectangle1.yy.y = nineRectangle.yy.y; nineRectangle1.zz.x = nineRectangle.zz.x; nineRectangle1.zz.y = nineRectangle.zz.y; nineRectangle1.ww.x = nineRectangle.ww.x; nineRectangle1.ww.y = nineRectangle.ww.y; nineRectangle3.xx.x = nineRectangle2.xx.x; nineRectangle3.xx.y = nineRectangle2.xx.y; nineRectangle3.yy.x = nineRectangle2.yy.x; nineRectangle3.yy.y = nineRectangle2.yy.y; nineRectangle3.zz.x = nineRectangle2.zz.x; nineRectangle3.zz.y = nineRectangle2.zz.y; nineRectangle3.ww.x = nineRectangle2.ww.x; nineRectangle3.ww.y = nineRectangle2.ww.y; } } } float single11 = Mathf.Abs(nineRectangle.ww.x - nineRectangle.xx.x); float single12 = single4 / single11; if (single1 > 0f) { single11 = single11 + single1 / single12; single12 = single4 / single11; } float single13 = this.innerRadius * 0.5f; float single14 = this.outerRadius * 0.5f; float single15 = Mathf.Min(nineRectangle.xx.y, nineRectangle.ww.y); float single16 = Mathf.Max(nineRectangle.ww.y, nineRectangle.xx.y) - single15; Color color = base.color; int num1 = m.vSize; float single17 = single6 + single4; float single18 = single6 * -0.5f + (this._facialRotationOffset * 0.5f + 0.5f) * single4 + this._addDegrees * 0.0174532924f; while (true) { Vertex[] vertexArray = m.v; int num2 = m.vSize; for (int i = num1; i < num2; i++) { float single19 = single13 + (vertexArray[i].y - single15) / single16 * single14; float single20 = vertexArray[i].x * single12 + single18; vertexArray[i].x = 0.5f + Mathf.Sin(single20) * single19; vertexArray[i].y = -0.5f + Mathf.Cos(single20) * single19; } int num3 = num - 1; num = num3; if (num3 <= 0) { break; } single18 = single18 + single17; num1 = num2; } }