18 #ifndef itkDisplacementFieldTransform_h
19 #define itkDisplacementFieldTransform_h
85 template <
typename TParametersValueType,
unsigned int NDimensions>
218 using Superclass::TransformVector;
222 itkExceptionMacro(
"TransformVector(Vector) unimplemented, use "
223 "TransformVector(Vector,Point)");
227 OutputVectorPixelType
230 itkExceptionMacro(
"TransformVector(Vector) unimplemented, use "
231 "TransformVector(Vector,Point)");
237 itkExceptionMacro(
"TransformVector(Vector) unimplemented, use "
238 "TransformVector(Vector,Point)");
242 using Superclass::TransformDiffusionTensor3D;
243 OutputDiffusionTensor3DType
246 itkExceptionMacro(
"TransformDiffusionTensor(Tensor) unimplemented, use "
247 "TransformDiffusionTensor(Tensor,Point)");
251 OutputVectorPixelType
254 itkExceptionMacro(
"TransformDiffusionTensor(Tensor) unimplemented, use "
255 "TransformDiffusionTensor(Tensor,Point)");
259 using Superclass::TransformCovariantVector;
260 OutputCovariantVectorType
263 itkExceptionMacro(
"TransformCovariantVector(CovariantVector) "
264 "unimplemented, use TransformCovariantVector(CovariantVector,Point)");
268 OutputVectorPixelType
271 itkExceptionMacro(
"TransformCovariantVector(CovariantVector) "
272 "unimplemented, use TransformCovariantVector(CovariantVector,Point)");
280 if (&(this->m_Parameters) != ¶ms)
282 if (params.
Size() != this->m_Parameters.Size())
284 itkExceptionMacro(
"Input parameters size (" << params.
Size() <<
") does not match internal size ("
285 << this->m_Parameters.Size() <<
").");
288 this->m_Parameters = params;
304 SetFixedParameters(
const FixedParametersType &)
override;
330 j = this->m_IdentityJacobian;
343 j = this->m_IdentityJacobian;
351 ComputeJacobianWithRespectToPosition(
const InputPointType & point, JacobianPositionType & jacobian)
const override;
352 using Superclass::ComputeJacobianWithRespectToPosition;
359 ComputeInverseJacobianWithRespectToPosition(
const InputPointType & point,
360 InverseJacobianPositionType & jacobian)
const override;
361 using Superclass::ComputeInverseJacobianWithRespectToPosition;
368 ComputeJacobianWithRespectToPosition(
const IndexType & index, JacobianPositionType & jacobian)
const;
382 GetInverseJacobianOfForwardFieldWithRespectToPosition(
const InputPointType & point,
383 JacobianPositionType & jacobian,
384 bool useSVD =
false)
const;
398 GetInverseJacobianOfForwardFieldWithRespectToPosition(
const IndexType & index,
399 JacobianPositionType & jacobian,
400 bool useSVD =
false)
const;
403 UpdateTransformParameters(
const DerivativeType & update, ScalarType factor = 1.0)
override;
408 GetInverse(Self * inverse)
const;
412 InverseTransformBasePointer
413 GetInverseTransform()
const override;
419 TransformCategoryEnum
422 return Self::TransformCategoryEnum::DisplacementField;
425 NumberOfParametersType
438 itkSetMacro(CoordinateTolerance,
double);
439 itkGetConstMacro(CoordinateTolerance,
double);
449 itkSetMacro(DirectionTolerance,
double);
450 itkGetConstMacro(DirectionTolerance,
double);
457 PrintSelf(std::ostream & os,
Indent indent)
const override;
485 ComputeJacobianWithRespectToPositionInternal(
const IndexType & index,
487 bool doInverseJacobian)
const;
494 VerifyFixedParametersInformation();
501 SetFixedParametersFromDisplacementField()
const;
509 #ifndef ITK_MANUAL_INSTANTIATION
510 # include "itkDisplacementFieldTransform.hxx"
513 #endif // itkDisplacementFieldTransform_h