18 #ifndef itkConstantVelocityFieldTransform_h
19 #define itkConstantVelocityFieldTransform_h
35 template <
typename TParametersValueType,
unsigned int VDimension>
61 using typename Superclass::FixedParametersType;
62 using typename Superclass::FixedParametersValueType;
63 using typename Superclass::ParametersType;
64 using typename Superclass::ParametersValueType;
67 using typename Superclass::TransformCategoryEnum;
70 using typename Superclass::NumberOfParametersType;
87 static constexpr
unsigned int ConstantVelocityFieldDimension = VDimension;
90 static constexpr
unsigned int Dimension = VDimension;
128 SetFixedParameters(
const FixedParametersType &)
override;
141 UpdateTransformParameters(
const DerivativeType & update, ScalarType factor = 1.0)
override;
145 GetInverse(
Self * inverse)
const;
149 GetInverseTransform()
const override;
154 IntegrateVelocityField();
157 itkSetMacro(CalculateNumberOfIntegrationStepsAutomatically,
bool);
158 itkGetConstMacro(CalculateNumberOfIntegrationStepsAutomatically,
bool);
159 itkBooleanMacro(CalculateNumberOfIntegrationStepsAutomatically);
165 itkSetClampMacro(LowerTimeBound, ScalarType, 0, 1);
171 itkGetConstMacro(LowerTimeBound, ScalarType);
177 itkSetClampMacro(UpperTimeBound, ScalarType, 0, 1);
183 itkGetConstMacro(UpperTimeBound, ScalarType);
188 itkSetMacro(NumberOfIntegrationSteps,
unsigned int);
193 itkGetConstMacro(NumberOfIntegrationSteps,
unsigned int);
199 PrintSelf(std::ostream & os,
Indent indent)
const override;
203 InternalClone()
const override;
210 bool m_CalculateNumberOfIntegrationStepsAutomatically{
false };
219 ScalarType m_LowerTimeBound{};
220 ScalarType m_UpperTimeBound{};
222 unsigned int m_NumberOfIntegrationSteps{};
230 SetFixedParametersFromConstantVelocityField()
const;
235 #ifndef ITK_MANUAL_INSTANTIATION
236 # include "itkConstantVelocityFieldTransform.hxx"
239 #endif // itkConstantVelocityFieldTransform_h