FC3Editor.Tools.ToolObject.RotateAction.OnMouseEvent C# (CSharp) Méthode

OnMouseEvent() public méthode

public OnMouseEvent ( Editor mouseEvent, MouseEventArgs mouseEventArgs ) : bool
mouseEvent FC3Editor.Nomad.Editor
mouseEventArgs MouseEventArgs
Résultat bool
            public override bool OnMouseEvent(Editor.MouseEvent mouseEvent, MouseEventArgs mouseEventArgs)
            {
                switch (mouseEvent)
                {
                case Editor.MouseEvent.MouseUp:
                    base.ReleaseInput();
                    break;

                case Editor.MouseEvent.MouseMoveDelta:
                    {
                        Vec3 rotationAxis = this.m_rotationAxis;
                        Vec2 xZ = Camera.Axis.ConvertFromWorld(rotationAxis).XZ;
                        xZ.Normalize();
                        xZ.Rotate90CW();
                        Vec2 v = new Vec2((float)mouseEventArgs.X, (float)(-(float)mouseEventArgs.Y));
                        float num = Vec2.Dot(xZ, v);
                        float angle;
                        if (!this.m_snap)
                        {
                            angle = num * 0.025f;
                        }
                        else
                        {
                            this.m_rotationDelta += num;
                            float num2 = (float)Math.IEEERemainder((double)this.m_rotationDelta, 25.0);
                            angle = (this.m_rotationDelta - num2) / 25f * MathUtils.Deg2Rad(this.m_snapSize);
                            this.m_rotationDelta = num2;
                        }
                        this.m_context.m_selection.LoadState();
                        switch (this.m_context.m_paramAxisType.Value)
                        {
                        case AxisType.Local:
                            this.m_context.m_selection.Rotate(angle, rotationAxis, this.m_rotationPivot, false);
                            break;

                        case AxisType.World:
                            if (this.m_context.m_selection.Count > 1)
                            {
                                this.m_context.m_selection.RotateCenter(angle, rotationAxis);
                            }
                            else
                            {
                                this.m_context.m_selection.Rotate(angle, rotationAxis, this.m_rotationPivot, false);
                            }
                            break;
                        }
                        this.m_context.m_selection.SaveState();
                        this.m_context.m_selection.SnapToClosestObjects();
                        this.m_context.UpdateSelection();
                        break;
                    }
                }
                return false;
            }