13 #ifndef mitkTimeHelper_h
14 #define mitkTimeHelper_h
29 template <
class TOutputRegion,
class TInputRegion>
31 const TOutputRegion &outputRegion,
33 TInputRegion &inputRegion)
35 assert(outputTimeGeometry !=
nullptr);
36 assert(inputTimeGeometry !=
nullptr);
41 if ((timeInMS > itk::NumericTraits<mitk::ScalarType>::NonpositiveMin()) &&
43 inputRegion.SetIndex(3, timestep);
45 inputRegion.SetIndex(3, 0);
47 timeInMS = outputTimeGeometry->
TimeStepToTimePoint(outputRegion.GetIndex(3) + outputRegion.GetSize(3) - 1);
49 if ((timeInMS > itk::NumericTraits<mitk::ScalarType>::NonpositiveMin()) &&
51 inputRegion.SetSize(3, timestep - inputRegion.GetIndex(3) + 1);
53 inputRegion.SetSize(3, 1);
63 template <
class TOutputData,
class TInputData>
66 assert(output !=
nullptr);
67 assert(input !=
nullptr);
69 const typename TOutputData::RegionType &outputRegion = output->GetRequestedRegion();
70 typename TInputData::RegionType inputRegion;
72 if (outputRegion.GetSize(3) < 1)
74 typename TInputData::RegionType::SizeType inputsize;
76 inputRegion.SetSize(inputsize);
77 input->SetRequestedRegion(&inputRegion);
81 inputRegion = input->GetRequestedRegion();
83 input->SetRequestedRegion(&inputRegion);
virtual TimeStepType TimePointToTimeStep(TimePointType timePoint) const =0
Converts a time point to the corresponding time step.
virtual TimePointType TimeStepToTimePoint(TimeStepType timeStep) const =0
Converts a time step to a time point.
virtual bool IsValidTimeStep(TimeStepType timeStep) const =0
Test for the given time step if a geometry is available.
Find image slices visible on a given plane.
void GenerateTimeInInputRegion(const mitk::TimeGeometry *outputTimeGeometry, const TOutputRegion &outputRegion, const mitk::TimeGeometry *inputTimeGeometry, TInputRegion &inputRegion)
Convert the start- and end-index-time of output-region in start- and end-index-time of input-region v...
std::size_t TimeStepType
Type for time step indices (non-negative integers starting from 0).
mitk::ScalarType TimePointType
Type for time point values in milliseconds (ms).