Intuitive camera control with smooth navigation.
This is an implementation of Ken Shoemake's arcball camera with smooth navigation feature. Using arcball, the camera control is more accurate and consistent. See also the Mouse Interaction example for an alternative approach.
- mouse drag rotates the camera
- Shift mouse drag pans the camera
- mouse wheel zooms in/out
- R resets the camera to its original position
- L toggles lagging (smooth camera navigation)
This example was originally contributed by Nghia Truong.
Full source code is linked below and also available in the magnum-examples GitHub repository. The
ArcBall.cpp files are completely standalone, depending only on the Math library, and ready to be integrated into your project. The
ArcBallCamera.h file provides an optional SceneGraph integration that you can but don't have to use.