Skip to content
Snippets Groups Projects
Commit 22fb2144 authored by Alexis Girault's avatar Alexis Girault
Browse files

ENH: Improve Viewer Simulation control

(1) `SimulationManager::startSimulation()` will check if a Viewer is
already rendering, and will only start a rendering/interaction loop
in the main thread if it isn't. This allows us to work with two
possible cases:
(a) a QT Application with an existing widget for rendering, in which
case we do not want to control the rendering window ourself in a loop
(b) a standalone `vtkRenderWindow` application, in which case we do
want to create a window when our simulation starts and loop until the
window is closed.

(2) `SimulationManager::startSimulation()` can be launched with a debug
boolean option (off by default), which will allow to not automatically
simulate the dynamics of the scene, to be able to interact with the
scene beforehand (using the mouse).

(3) `imstk::InteractorStyle` is based on vtkInteractorStyle specifically
the trackballCamera and allows to ignore mouse events in simulation mode,
and uses key events to control the simulation:
's' : start simulation
'e' : end simulation
' ' (space) : pause/run simulation

(4) The `Viewer` class and the `InteractorStyle` class have been moved
to the `SimulationManager` module, since they are more drivers of the
application themselves.

(5) The 'Sandbox' example has been refactored to make it easier to test
autonomous tests, and updated to use the new driver architecture brought
with this commit.
parent 97e252c0
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment