How to preserve the up vector of the camera when orbiting?

We basically want to have a user setting for keeping the “horizon” at all times when orbiting (similar to SketchUp).

It’s rather easy to just set the up vector of the camera but I wonder how I can change the existing orbit operator to do this on each frame.

The orbit operator has a special “BIM” orbit mode that should do what you want:

let op = hwv.operatorManager.getOperator(Communicator.OperatorId.Orbit);

Thank you, it seems to work for the orbit. But how do you disable the stuttering zoom when middle-clicking something?

Nevermind my question, it’s a mouse problem on my side, there’s no stuttering zoom, just an overly sensitive scroll wheel :wink: