TerrainDisplay.Collision.Intersection.PointInsidePoly C# (CSharp) Method

PointInsidePoly() public static method

public static PointInsidePoly ( System.Vector3 &vA, System.Vector3 &vB, System.Vector3 &vC, System.Vector3 &p ) : bool
vA System.Vector3
vB System.Vector3
vC System.Vector3
p System.Vector3
return bool
        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);
        }