List of controllers¶
When creating a new panel, one needs to specify a Controller. This object defines how the user interacts with the panel.
The controllers currently implemented are:
- static: no interactivity,
- panzoom: pan and zoom with the mouse,
- axes: axes with ticks, tick labels, grid, and interactivity with pan and zoom,
- arcbcall: static 3D camera, model rotation with the mouse,
- camera: first-person 3D camera.
More controllers will be implemented in the future. The C interface used to create custom controllers will be refined too.
The panzoom controller provides mouse interaction patterns for panning and zooming:
- Mouse dragging with left button: pan
- Mouse dragging with right button: zoom in x and y axis independently
- Mouse wheel: zoom in and out in both axes simultaneously
- Double-click with left button: reset to initial view
The axes 2D controller displays ticks, tick labels, grid and provides panzoom interaction.
The arcball controller is used to rotate a 3D object in all directions using the mouse. It is implemented with quaternions.
Left-dragging controls the camera, the arrow keys control the position, the Z is controlled by the mouse wheel.
List of event types¶
||called at the beginning of the first frame|
||called at every frame|
||called when the command buffers need to be recreated (e.g. window resize)|
||called when the window is resized|
||called in the main loop at regular time intervals|
||called when a mouse button is pressed|
||called when a mouse button is released|
||called when the mouse moves|
||called when the mouse wheel moves|
||called when a mouse drag operation begins|
||called when a mouse drag operation ends|
||called after a single click|
||called after a double click|
||called when a key is pressed|
||called when a key is released|