private void OnEnter()
        {
            var mouseInfo = ImGuiHelper.CreateMouseState();

            originMouse        = new System.Drawing.Point(mouseInfo.X, mouseInfo.Y);
            mouseWheelPrevious = mouseInfo.WheelPrecise;
        }
        private void UpdateCamera()
        {
            var mouseInfo = ImGuiHelper.CreateMouseState();

            if (ImGui.IsAnyMouseDown() && !_mouseDown)
            {
                OnMouseDown(mouseInfo);
                _mouseDown = true;
            }

            if (ImGui.IsMouseReleased(ImGuiMouseButton.Left) ||
                ImGui.IsMouseReleased(ImGuiMouseButton.Right) ||
                ImGui.IsMouseReleased(ImGuiMouseButton.Middle))
            {
                OnMouseUp(mouseInfo);
                _mouseDown = false;
            }

            if (_mouseDown)
            {
                OnMouseMove(mouseInfo);
            }

            OnMouseWheel(mouseInfo);
        }
        private void UpdateCurveEvents()
        {
            var mouseInfo = ImGuiHelper.CreateMouseState();

            bool controlDown = ImGui.GetIO().KeyCtrl;
            bool shiftDown   = ImGui.GetIO().KeyShift;

            if (onEnter)
            {
                CurveEditor.ResetMouse(mouseInfo);
                onEnter = false;
            }

            if (ImGui.IsAnyMouseDown() && !_mouseDown)
            {
                CurveEditor.OnMouseDown(mouseInfo);
                previousMouseWheel = 0;
                _mouseDown         = true;
            }

            if (ImGui.IsMouseReleased(ImGuiMouseButton.Left) ||
                ImGui.IsMouseReleased(ImGuiMouseButton.Right) ||
                ImGui.IsMouseReleased(ImGuiMouseButton.Middle))
            {
                CurveEditor.OnMouseUp(mouseInfo);
                _mouseDown = false;
            }

            if (previousMouseWheel == 0)
            {
                previousMouseWheel = mouseInfo.WheelPrecise;
            }

            mouseInfo.Delta    = mouseInfo.WheelPrecise - previousMouseWheel;
            previousMouseWheel = mouseInfo.WheelPrecise;

            //  if (_mouseDown)
            CurveEditor.OnMouseMove(mouseInfo);
            CurveEditor.OnMouseWheel(mouseInfo, controlDown, shiftDown);
        }