18 #ifndef itkTimeVaryingVelocityFieldIntegrationImageFilter_h
19 #define itkTimeVaryingVelocityFieldIntegrationImageFilter_h
52 template <
typename TTimeVaryingVelocityField,
53 typename TDisplacementField =
54 Image<
typename TTimeVaryingVelocityField::PixelType, TTimeVaryingVelocityField::ImageDimension - 1>>
75 static constexpr
unsigned int InputImageDimension = TTimeVaryingVelocityField::ImageDimension;
77 static constexpr
unsigned int OutputImageDimension = TDisplacementField::ImageDimension;
82 using VectorType =
typename DisplacementFieldType::PixelType;
83 using RealType =
typename VectorType::RealValueType;
118 itkSetClampMacro(LowerTimeBound,
RealType, 0, 1);
124 itkGetConstMacro(LowerTimeBound,
RealType);
130 itkSetClampMacro(UpperTimeBound,
RealType, 0, 1);
136 itkGetConstMacro(UpperTimeBound,
RealType);
142 itkSetMacro(NumberOfIntegrationSteps,
unsigned int);
148 itkGetConstMacro(NumberOfIntegrationSteps,
unsigned int);
158 itkSetMacro(TimeBoundsAsRates,
bool);
159 itkGetConstMacro(TimeBoundsAsRates,
bool);
160 itkBooleanMacro(TimeBoundsAsRates);
168 PrintSelf(std::ostream & os,
Indent indent)
const override;
171 GenerateOutputInformation()
override;
174 BeforeThreadedGenerateData()
override;
188 unsigned int m_NumberOfIntegrationSteps{};
190 unsigned int m_NumberOfTimePoints{};
194 bool m_TimeBoundsAsRates{
true };
201 #ifndef ITK_MANUAL_INSTANTIATION
202 # include "itkTimeVaryingVelocityFieldIntegrationImageFilter.hxx"