114 lines
6.3 KiB
C#
114 lines
6.3 KiB
C#
// Warning: Some assembly references could not be resolved automatically. This might lead to incorrect decompilation of some parts,
|
|
// for ex. property getter/setter access. To get optimal decompilation results, please manually add the missing references to the list of loaded assemblies.
|
|
// EdenAutoMorpherScript, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
// Eden.AutoMorpher.TriangleUtil
|
|
using UnityEngine;
|
|
|
|
public class TriangleUtil
|
|
{
|
|
public Vector3 ClosestPointOnTriangle(Vector3 p, Vector3 a, Vector3 b, Vector3 c)
|
|
{
|
|
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0022: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_003d: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0046: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0051: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0069: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_009d: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_018d: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_018e: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0191: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0196: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_019b: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_019e: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0109: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_010c: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_010d: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0112: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0159: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_015c: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_015e: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_015f: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0164: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0169: Unknown result type (might be due to invalid IL or missing references)
|
|
Vector3 val = b - a;
|
|
Vector3 val2 = c - a;
|
|
Vector3 val3 = p - a;
|
|
float num = Vector3.Dot(val, val3);
|
|
float num2 = Vector3.Dot(val2, val3);
|
|
if (num <= 0f && num2 <= 0f)
|
|
{
|
|
return a;
|
|
}
|
|
Vector3 val4 = p - b;
|
|
float num3 = Vector3.Dot(val, val4);
|
|
float num4 = Vector3.Dot(val2, val4);
|
|
if (num3 >= 0f && num4 <= num3)
|
|
{
|
|
return b;
|
|
}
|
|
float num5 = num * num4 - num3 * num2;
|
|
if (num5 <= 0f && num >= 0f && num3 <= 0f)
|
|
{
|
|
float num6 = num / (num - num3);
|
|
return a + num6 * val;
|
|
}
|
|
Vector3 val5 = p - c;
|
|
float num7 = Vector3.Dot(val, val5);
|
|
float num8 = Vector3.Dot(val2, val5);
|
|
if (num8 >= 0f && num7 <= num8)
|
|
{
|
|
return c;
|
|
}
|
|
float num9 = num7 * num2 - num * num8;
|
|
if (num9 <= 0f && num2 >= 0f && num8 <= 0f)
|
|
{
|
|
float num10 = num2 / (num2 - num8);
|
|
return a + num10 * val2;
|
|
}
|
|
float num11 = num3 * num8 - num7 * num4;
|
|
if (num11 <= 0f && num4 - num3 >= 0f && num7 - num8 >= 0f)
|
|
{
|
|
float num12 = (num4 - num3) / (num4 - num3 + (num7 - num8));
|
|
return b + num12 * (c - b);
|
|
}
|
|
float num13 = 1f / (num11 + num9 + num5);
|
|
float num14 = num9 * num13;
|
|
float num15 = num5 * num13;
|
|
return a + val * num14 + val2 * num15;
|
|
}
|
|
}
|