36 #ifndef __itkInverseTransform_h
37 #define __itkInverseTransform_h
40 #include <itkTransform.h>
53 template <
class ForwardTransform>
55 public Transform< typename ForwardTransform::ScalarType,
56 ForwardTransform::OutputSpaceDimension,
57 ForwardTransform::InputSpaceDimension >
63 typedef Transform<
typename ForwardTransform::ScalarType,
64 ForwardTransform::OutputSpaceDimension,
65 ForwardTransform::InputSpaceDimension > Superclass;
67 typedef SmartPointer< Self > Pointer;
68 typedef SmartPointer< const Self > ConstPointer;
73 typedef typename InverseTransformBaseType::Pointer InverseTransformBasePointer;
92 typedef typename Superclass::OutputPointType OutputPointType;
101 ForwardTransform::OutputSpaceDimension);
104 ForwardTransform::InputSpaceDimension);
108 { forward_ = forward; }
115 if (forward_ == NULL)
117 itkExceptionMacro(<<
"Forward transform is null");
119 return forward_->BackTransformPoint(y);
122 virtual void ComputeJacobianWithRespectToParameters(
const InputPointType &, JacobianType & )
const
124 itkExceptionMacro(<<
"ComputeJacobianWithRespectToParameters is not implemented for InverseTransform");
127 virtual void SetFixedParameters(
const ParametersType &)
129 itkExceptionMacro(<<
"SetFixedParameters is not implemented for InverseTransform");
132 virtual void SetParameters(
const ParametersType &)
134 itkExceptionMacro(<<
"SetParameters is not implemented for InverseTransform");
137 virtual NumberOfParametersType GetNumberOfParameters()
const
140 virtual InverseTransformBasePointer GetInverseTransform()
const
141 {
return const_cast<ForwardTransform *
>(forward_); }
144 InverseTransform(): Superclass(0) {}
148 InverseTransform(
const Self & other);
149 const Self & operator = (
const Self & t);
152 const ForwardTransform * forward_;
157 #endif // __itkInverseTransform_h
Definition: itkNormalizeImageFilterWithMask.h:48