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

ClosestPtPointRect() public static method

public static ClosestPtPointRect ( System.Vector3 p, System.Vector3 a, System.Vector3 b, System.Vector3 c, System.Vector3 &q ) : void
p System.Vector3
a System.Vector3
b System.Vector3
c System.Vector3
q System.Vector3
return void
        public static void ClosestPtPointRect(Vector3 p, Vector3 a, Vector3 b, Vector3 c, ref Vector3 q)
        {
            var vector = b - a;
            var vector2 = c - a;
            var vector3 = p - a;
            q = a;
            var num = Vector3.Dot(vector3, vector);
            var num2 = Vector3.Dot(vector, vector);
            if (num >= num2)
            {
                q += vector;
            }
            else if (num > 0f)
            {
                q = q + ((num / num2) * vector);
            }
            num = Vector3.Dot(vector3, vector2);
            num2 = Vector3.Dot(vector2, vector2);
            if (num >= num2)
            {
                q += vector2;
            }
            else if (num > 0f)
            {
                q = q + ((num / num2) * vector2);
            }
        }