// Token: 0x06003EFE RID: 16126 RVA: 0x000E6098 File Offset: 0x000E4298 private static global::dfClippingUtil.ClipTriangle[] initClipBuffer(int size) { global::dfClippingUtil.ClipTriangle[] array = new global::dfClippingUtil.ClipTriangle[size]; for (int i = 0; i < size; i++) { array[i].corner = new Vector3[3]; array[i].uv = new Vector2[3]; array[i].color = new Color32[3]; } return(array); }
// Token: 0x06003EFD RID: 16125 RVA: 0x000E59D8 File Offset: 0x000E3BD8 private static int clipToPlane(Plane plane, global::dfClippingUtil.ClipTriangle triangle, global::dfClippingUtil.ClipTriangle[] dest, int destIndex) { Vector3[] corner = triangle.corner; int num = 0; int num2 = 0; Vector3 normal = plane.normal; float distance = plane.distance; for (int i = 0; i < 3; i++) { if (Vector3.Dot(normal, corner[i]) + distance > 0f) { global::dfClippingUtil.inside[num++] = i; } else { num2 = i; } } if (num == 3) { triangle.CopyTo(dest[destIndex]); return(1); } if (num == 0) { return(0); } if (num == 1) { int num3 = global::dfClippingUtil.inside[0]; int num4 = (num3 + 1) % 3; int num5 = (num3 + 2) % 3; Vector3 vector = corner[num3]; Vector3 vector2 = corner[num4]; Vector3 vector3 = corner[num5]; Vector2 vector4 = triangle.uv[num3]; Vector2 vector5 = triangle.uv[num4]; Vector2 vector6 = triangle.uv[num5]; Color32 color = triangle.color[num3]; Color32 color2 = triangle.color[num4]; Color32 color3 = triangle.color[num5]; float num6 = 0f; Vector3 vector7 = vector2 - vector; Ray ray; ray..ctor(vector, vector7.normalized); plane.Raycast(ray, ref num6); float num7 = num6 / vector7.magnitude; Vector3 vector8 = ray.origin + ray.direction * num6; Vector2 vector9 = Vector2.Lerp(vector4, vector5, num7); Color color4 = Color.Lerp(color, color2, num7); vector7 = vector3 - vector; ray..ctor(vector, vector7.normalized); plane.Raycast(ray, ref num6); num7 = num6 / vector7.magnitude; Vector3 vector10 = ray.origin + ray.direction * num6; Vector2 vector11 = Vector2.Lerp(vector4, vector6, num7); Color color5 = Color.Lerp(color, color3, num7); dest[destIndex].corner[0] = vector; dest[destIndex].corner[1] = vector8; dest[destIndex].corner[2] = vector10; dest[destIndex].uv[0] = vector4; dest[destIndex].uv[1] = vector9; dest[destIndex].uv[2] = vector11; dest[destIndex].color[0] = color; dest[destIndex].color[1] = color4; dest[destIndex].color[2] = color5; return(1); } int num8 = num2; int num9 = (num8 + 1) % 3; int num10 = (num8 + 2) % 3; Vector3 vector12 = corner[num8]; Vector3 vector13 = corner[num9]; Vector3 vector14 = corner[num10]; Vector2 vector15 = triangle.uv[num8]; Vector2 vector16 = triangle.uv[num9]; Vector2 vector17 = triangle.uv[num10]; Color32 color6 = triangle.color[num8]; Color32 color7 = triangle.color[num9]; Color32 color8 = triangle.color[num10]; Vector3 vector18 = vector13 - vector12; Ray ray2; ray2..ctor(vector12, vector18.normalized); float num11 = 0f; plane.Raycast(ray2, ref num11); float num12 = num11 / vector18.magnitude; Vector3 vector19 = ray2.origin + ray2.direction * num11; Vector2 vector20 = Vector2.Lerp(vector15, vector16, num12); Color color9 = Color.Lerp(color6, color7, num12); vector18 = vector14 - vector12; ray2..ctor(vector12, vector18.normalized); plane.Raycast(ray2, ref num11); num12 = num11 / vector18.magnitude; Vector3 vector21 = ray2.origin + ray2.direction * num11; Vector2 vector22 = Vector2.Lerp(vector15, vector17, num12); Color color10 = Color.Lerp(color6, color8, num12); dest[destIndex].corner[0] = vector19; dest[destIndex].corner[1] = vector13; dest[destIndex].corner[2] = vector21; dest[destIndex].uv[0] = vector20; dest[destIndex].uv[1] = vector16; dest[destIndex].uv[2] = vector22; dest[destIndex].color[0] = color9; dest[destIndex].color[1] = color7; dest[destIndex].color[2] = color10; destIndex++; dest[destIndex].corner[0] = vector21; dest[destIndex].corner[1] = vector13; dest[destIndex].corner[2] = vector14; dest[destIndex].uv[0] = vector22; dest[destIndex].uv[1] = vector16; dest[destIndex].uv[2] = vector17; dest[destIndex].color[0] = color10; dest[destIndex].color[1] = color7; dest[destIndex].color[2] = color8; return(2); }
// Token: 0x06003EFF RID: 16127 RVA: 0x000E60F8 File Offset: 0x000E42F8 public void CopyTo(global::dfClippingUtil.ClipTriangle target) { Array.Copy(this.corner, target.corner, 3); Array.Copy(this.uv, target.uv, 3); Array.Copy(this.color, target.color, 3); }