DistanceToRectangle() public static method

Pixel distance from mouse pointer to a rectangle on screen.

public static DistanceToRectangle ( Vector3 position, Quaternion rotation, float size ) : float
position Vector3
rotation UnityEngine.Quaternion
size float
return float
        // Draw a camera-facing dot. Pass this into handle functions.
        public static void DotHandleCap(int controlID, Vector3 position, Quaternion rotation, float size, EventType eventType)
        {
            switch (eventType)
            {
            case (EventType.Layout):
                HandleUtility.AddControl(controlID, HandleUtility.DistanceToRectangle(position, rotation, size));
                break;

            case (EventType.Repaint):
                // Only apply matrix to the position because DotCap is camera facing
                position = matrix.MultiplyPoint(position);

                Vector3 sideways = Camera.current.transform.right * size;
                Vector3 up       = Camera.current.transform.up * size;

                Color col = color * new Color(1, 1, 1, 0.99f);
                HandleUtility.ApplyWireMaterial();
                GL.Begin(GL.QUADS);
                GL.Color(col);
                GL.Vertex(position + sideways + up);
                GL.Vertex(position + sideways - up);
                GL.Vertex(position - sideways - up);
                GL.Vertex(position - sideways + up);
                GL.End();
                break;
            }
        }
        private float MouseDistanceToPoint(int index)
        {
            switch (GetTangentMode(index))
            {
            case TangentMode.Broken:
                return(HandleUtility.DistanceToDiamond(GetPointPosition(index), Quaternion.identity, GetHandleSizeForPoint(index)));

            case TangentMode.Linear:
                return(HandleUtility.DistanceToRectangle(GetPointPosition(index), Quaternion.identity, GetHandleSizeForPoint(index)));

            case TangentMode.Continuous:
                return(HandleUtility.DistanceToCircle(GetPointPosition(index), GetHandleSizeForPoint(index)));
            }
            return(float.MaxValue);
        }
        // Draw a camera-facing Circle. Pass this into handle functions.
        public static void CircleHandleCap(int controlID, Vector3 position, Quaternion rotation, float size, EventType eventType)
        {
            switch (eventType)
            {
            case (EventType.Layout):
                HandleUtility.AddControl(controlID, HandleUtility.DistanceToRectangle(position, rotation, size));
                break;

            case (EventType.Repaint):
                StartCapDraw(position, rotation, size);
                Vector3 forward = rotation * new Vector3(0, 0, 1);
                Handles.DrawWireDisc(position, forward, size);
                break;
            }
        }
        private float MouseDistanceToClosestTangent()
        {
            if (activePoint < 0)
            {
                return(float.MaxValue);
            }

            var lt = GetPointLTangent(activePoint);
            var rt = GetPointRTangent(activePoint);

            if (lt.sqrMagnitude == 0f && rt.sqrMagnitude == 0f)
            {
                return(float.MaxValue);
            }

            var p           = GetPointPosition(activePoint);
            var tangentSize = GetTangentSizeForPoint(activePoint);

            return(Mathf.Min(
                       HandleUtility.DistanceToRectangle(p + lt, Quaternion.identity, tangentSize),
                       HandleUtility.DistanceToRectangle(p + rt, Quaternion.identity, tangentSize)
                       ));
        }