This appears to be a linux only issue; Robin's macbook does not dislplay this behaviour.
When the simulation is running - that is, the timer is increasing - interacting with the window by mouse seems to block the TimerCallback from being updated. This appears to be on the vtk level, as the execute function of the TimerCallback is simply not invoked while the mouse is being dragged.
This problem can be further tracked to the execute function of SPawnPointCallback, where calling the
points->Modified() and renderWindow->Render() are the main culprits.
Commenting out these lines resumes expected behaviour from the timer, but leads to newly spawned points not being rendered if they are created while the timer is paused.
This leads to two possible behaviours, depending on what is more important to the application:
Leaving the update lines in; this causes the simulation to effectively pause while drawing new points
Commenting the lines out; this allows the simulation to continue while drawing points, but means newly spawned points are only rednered when the simulation unpauses.
Because both options may be preferred, no fix for this issue will be implemented. Default behaviour will be pausing the simulation. If this needs to be changed, see the appropriate FIXME comment in 'SpawnPointCallback.h'
This appears to be a linux only issue; Robin's macbook does not dislplay this behaviour.
When the simulation is running - that is, the timer is increasing - interacting with the window by mouse seems to block the TimerCallback from being updated. This appears to be on the vtk level, as the execute function of the TimerCallback is simply not invoked while the mouse is being dragged.
This problem can be further tracked to the execute function of SPawnPointCallback, where calling the
points->Modified()
andrenderWindow->Render()
are the main culprits.Commenting out these lines resumes expected behaviour from the timer, but leads to newly spawned points not being rendered if they are created while the timer is paused.
This leads to two possible behaviours, depending on what is more important to the application:
Because both options may be preferred, no fix for this issue will be implemented. Default behaviour will be pausing the simulation. If this needs to be changed, see the appropriate FIXME comment in 'SpawnPointCallback.h'