0

Bug in CameraController.AddRotateForce(double dx, double dy)

Anonymous 10 years ago 0
This discussion was imported from CodePlex

Elemental wrote at 2012-02-19 11:16:

Hello,

the method CameraController.AddRotateForce(double dx, double dy) always works as CameraMode.Inspect.

In my case, I have CameraMode set to WalkAround, which works fine for mouse controls, but keyboard control is wrong in that case.

 

I changed the method to

        public void AddRotateForce(double dx, double dy)
        {
            if (!this.IsRotationEnabled)
            {
                return;
            }

            this.PushCameraSetting();

            if (this.CameraMode == CameraMode.WalkAround)
            {
                this.rotationPoint3D = this.CameraPosition;
            }
            else
            {
                this.rotationPoint3D = this.CameraTarget;
            }
            this.rotationPosition = new Point(this.ActualWidth / 2, this.ActualHeight / 2);
            this.rotationSpeed.X += dx * 40;
            this.rotationSpeed.Y += dy * 40;
        }

 

which does kind of work, but rotating left/right via keyboard is inverted compared to mouse control.

What is the reason for the inverted controls?

 

Best Regards

Bernd

 

btw: Just downloaded the latest source code and changing the CameraMode in CameraControlDemo does not work anymore.


objo wrote at 2012-02-21 20:59:

thanks for the feedback! I have only used the "Inspect" mode recently, it seems like the "Walkaround" mode is not working properly. I added it as issue 9949!


Elemental wrote at 2012-02-22 08:08:

Thank you.