Locked History Attachments

ChangeRequests/2198

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

CategoryNeedsGraphicalTesting