protected virtual void LateUpdate()
        {
            RuntimeWindow window = Editor.ActiveWindow;

            if (window == null || window.WindowType != RuntimeWindowType.Scene || !window.IsPointerOver)
            {
                return;
            }

            IInput input = Editor.Input;

            bool remove = input.GetKeyDown(KeyCode.Delete);

            if (m_isMeshDeformerSelected && remove && m_tool.CanRemove())
            {
                Remove();
            }

            if (Editor.Tools.ActiveTool == null && input.GetPointerDown(0))
            {
                if (Editor.ActiveWindow != null)
                {
                    m_tool.SelectControlPoint(window.Camera, input.GetPointerXY(0));
                }
            }
            else
            {
                bool extend = input.GetKey(KeyCode.LeftControl) && !m_isDragging || input.GetKeyDown(KeyCode.LeftControl);
                m_isDragging = m_tool.DragControlPoint(extend);
            }
        }