This navigation is merely a design template/recipe for more refined, specialized navigation and provides some basic, commonly used camera modifier such as turntable, first-person, as well as trackball. This implementation is also unfinished and will be continued as soon as possible (e.g., first-person navigation is not usable for now).
This keeps track of all events that are currently interacting with the canvas. It maps from pointer id to the currecnt position.
Specifies, whether or not rotation mode should be invoked on any move event, regardless of buttons.
Even handler used to forward/map events to specific camera modifiers.
First person camera modifier.
The navigation's invalidation callback. This should usually be setup by the owning renderer and invoke the same callback the renderer has been given by the canvas. This invalidation is required, when continuous rendering is not present, events might cause need for new rendering requests.
Keep track of the latest interaction in order to allow a cooldown before the next interaction is allowed.
Identifies the active camera modifier.
Pan camera modifier.
Pinch camera modifier.
Currently active metaphor.
Trackball camera modifier.
Turntable camera modifier.
Wheel zoom modifier.
The camera that is to be modified in response to various events.
Resolves the event to camera modifier mapping by returning the responsible camera modifier.
Update should invoke navigation specific event processing. When using, e.g., an event handler, the event handlers update method should be called in order to have navigation specific event processing invoked.