18 #ifndef __itkDeformationFieldInterpolatingTransform_h 19 #define __itkDeformationFieldInterpolatingTransform_h 23 #include "itkExceptionObject.h" 25 #include "itkVectorInterpolateImageFunction.h" 26 #include "itkVectorNearestNeighborInterpolateImageFunction.h" 43 class TScalarType =
double,
44 unsigned int NDimensions = 3,
45 class TComponentType =
double >
66 itkStaticConstMacro( OutputSpaceDimension,
unsigned int, Superclass::OutputSpaceDimension );
96 typedef VectorInterpolateImageFunction<
99 typedef VectorNearestNeighborInterpolateImageFunction<
107 itkExceptionMacro( <<
"ERROR: SetParameters() is not implemented " 108 <<
"for DeformationFieldInterpolatingTransform.\n" 109 <<
"Use SetDeformationField() instead.\n" 110 <<
"Note that this transform is NOT suited for image registration.\n" 111 <<
"Just use it as an (initial) fixed transform that is not optimized." );
126 return this->m_FixedParameters;
133 OutputPointType
TransformPoint(
const InputPointType & point )
const;
139 <<
"TransformVector(const InputVectorType &) is not implemented " 140 <<
"for DeformationFieldInterpolatingTransform" );
147 <<
"TransformVector(const InputVnlVectorType &) is not implemented " 148 <<
"for DeformationFieldInterpolatingTransform" );
155 <<
"TransformCovariantVector(const InputCovariantVectorType &) is not implemented " 156 <<
"for DeformationFieldInterpolatingTransform" );
172 itkGetObjectMacro( DeformationFieldInterpolator, DeformationFieldInterpolatorType );
174 virtual bool IsLinear(
void )
const {
return false; }
178 const InputPointType & ipp, JacobianType & j,
179 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const 181 itkExceptionMacro( <<
"Not implemented for DeformationFieldInterpolatingTransform" );
186 const InputPointType & ipp, SpatialJacobianType & sj )
const 188 itkExceptionMacro( <<
"Not implemented for DeformationFieldInterpolatingTransform" );
193 const InputPointType & ipp, SpatialHessianType & sh )
const 195 itkExceptionMacro( <<
"Not implemented for DeformationFieldInterpolatingTransform" );
200 const InputPointType & ipp, JacobianOfSpatialJacobianType & jsj,
201 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const 203 itkExceptionMacro( <<
"Not implemented for DeformationFieldInterpolatingTransform" );
208 const InputPointType & ipp, SpatialJacobianType & sj,
209 JacobianOfSpatialJacobianType & jsj,
210 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const 212 itkExceptionMacro( <<
"Not implemented for DeformationFieldInterpolatingTransform" );
217 const InputPointType & ipp, JacobianOfSpatialHessianType & jsh,
218 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const 220 itkExceptionMacro( <<
"Not implemented for DeformationFieldInterpolatingTransform" );
225 const InputPointType & ipp, SpatialHessianType & sh,
226 JacobianOfSpatialHessianType & jsh,
227 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const 229 itkExceptionMacro( <<
"Not implemented for DeformationFieldInterpolatingTransform" );
239 typedef typename DeformationFieldInterpolatorType::ContinuousIndexType
244 void PrintSelf( std::ostream & os, Indent indent )
const;
259 #ifndef ITK_MANUAL_INSTANTIATION 260 #include "itkDeformationFieldInterpolatingTransform.hxx"