예제 #1
0
    public void Logic()
    {
        if (editor.form.Focused)
        {
            if (mouse.ButtonPressed(MouseButton.Left) && !editor.DisableSelect)
            {
                origin = mouse.Position.Xy;
            }

            if (mouse[MouseButton.Left] && origin != null)
            {
                if (target != null || (mouse.Position.Xy - origin.Value).LengthFast > 0.01f)
                {
                    target = mouse.Position.Xy;
                }
            }

            if (!mouse[MouseButton.Left] && origin != null)
            {
                if (!editor.DisableSelect)
                {
                    editor.OnSelect();
                }

                origin = null;
                target = null;
            }
        }
    }
        public void Logic()
        {
            if (HoveredAxis != Axis.None && mouse.ButtonPressed(MouseButton.Left))
            {
                activeAxis = HoveredAxis;
                origin     = mouse.Position.Xy;
                manipulator.BakeVertexPosition();
            }

            if (!mouse[MouseButton.Left] && activeAxis != Axis.None)
            {
                activeAxis = Axis.None;
                origin     = null;

                manipulator.Apply();
            }
        }
예제 #3
0
        public void Logic()
        {
            if (scaleOrigin == null && mouse.ButtonPressed(MouseButton.Left) && HoveredAxis != Axis.None)
            {
                scaleOrigin = mouse.Position.Xy - manipulator.Position;
                scaleAxis   = HoveredAxis;

                manipulator.BakeVertexPosition();
            }

            if (!mouse[MouseButton.Left] && scaleOrigin != null)
            {
                scaleOrigin = null;
                scaleAxis   = Axis.None;

                manipulator.Apply();
            }
        }
예제 #4
0
        public void Logic()
        {
            if ((Hovered && mouse.ButtonPressed(MouseButton.Left)) || (previousAngle != null && mouse[MouseButton.Left]))
            {
                if (previousAngle == null)
                {
                    manipulator.BakeVertexOrigin();
                }

                previousAngle = Angle;
            }

            if (!mouse[MouseButton.Left] && previousAngle != null)
            {
                previousAngle = null;
                manipulator.Apply();
            }
        }
예제 #5
0
    public void Logic()
    {
        if (editor.form.Focused)
        {
            if (keyboard[Key.LAlt] && mouse[MouseButton.Left] || mouse[MouseButton.Middle])
            {
                Move();
            }

            if (keyboard[Key.LAlt])
            {
                if (mouse[MouseButton.Right])
                {
                    float currentMouse = (mouse.ScreenPosition.X + 1f) / 2f;

                    if (mouse.ButtonPressed(MouseButton.Right))
                    {
                        zoomOrigin  = currentMouse;
                        zoomOriginZ = position.Z;
                    }

                    position.Z = zoomOriginZ * (currentMouse / zoomOrigin);
                    if (position.Z < 1f)
                    {
                        position.Z = 1f;
                    }
                }
            }

            //Zoom :)
            if (keyboard.HasPrefix(KeyPrefix.None))
            {
                position.Z -= mouse.WheelDelta * 0.1f * position.Z;
            }

            previousMouse    = mouse.ScreenPosition * 0.5f;
            previousMouse.X *= editor.form.AspectRatio;
        }
    }