Summary of problem description
The rendering framework needs to check the validity of the integer time step which is calculated from the (global) time in ms. If the current time step is not valid for a specific dataset, it must not be displayed. This has so far been done in the GenerateData() methods of the concrete mapper classes, each on their own and possibly in a non-uniform way. To simplify the validity check and to make sure that all mappers have correct time-step behavior, this should be implemented in mitk::Mapper::Update(), where GenerateData is called().
actual behaviour
Currently, as a preliminary fix, an ITK warning is produced in mitk::Mapper::Update() if the time step is invalid.
expected behaviour
No warning, unified handling for all mapper subclasses.
Proposed solution
Code clean-up in several mapper classes, removing duplicated code fragments checking the validity of TimeSlicedGeometry.
Create a virtual method mitk::Mapper::ResetMapper( BaseRenderer* ) handling non-existing or non-valid TimeSteps, remove the query for IsValidTime( timestep ) from all GenerateData() methods of all Mapper classes, that are derived from mitk::Mapper.
This query will be implemented only in mitk::Mapper::Update() calling ResetMapper( BaseRenderer* ) if the query fails.
Affected classes
in MitkExt/Rendering
- mitk::GPUVolumeMapper3D
- mitk::MeshVtkMapper3D
- mitk::UnstructuredGridVtkMapper3D
in mitk/Core/Code/Rendering
- mitk::ImageMapper2D
- mitk::Mapper
- mitk::PoinSetVtkMapper3D
- mitk::SurfaceVtkMapper3D
- mitk::VolumeDataVtkMapper3D
How will the bugfix get tested?
manual tests, since no graphical tests available
