public static bool PointInsidePoly(ref Vector3 vA, ref Vector3 vB, ref Vector3 vC, ref Vector3 p)
{
var num = 0;
var num2 = 0;
var vectorArray = new[] { vA, vB, vC };
var plane = new Plane(vA, vB, vC);
uint index = 2;
for (uint i = 0; i < 3; i++)
{
var vector = vectorArray[index];
var vector2 = vectorArray[i];
var vector3 = Vector3.Cross(vector2 - vector, plane.Normal);
var num5 = Vector3.Dot(p, vector3) - Vector3.Dot(vector, vector3);
if (num5 > Epsilon)
{
num++;
}
else if (num5 < -Epsilon)
{
num2++;
}
if ((num | num2) != 0)
{
return false;
}
index = i;
}
return ((num | num2) == 0);
}