34 #ifndef __itkAdvancedTranslationTransform_h 35 #define __itkAdvancedTranslationTransform_h 39 #include "itkExceptionObject.h" 40 #include "itkMatrix.h" 53 class TScalarType =
double,
54 unsigned int NDimensions = 3 >
74 itkStaticConstMacro( SpaceDimension,
unsigned int, NDimensions );
75 itkStaticConstMacro( ParametersDimension,
unsigned int, NDimensions );
90 typedef Vector< TScalarType, itkGetStaticConstMacro( SpaceDimension ) >
InputVectorType;
91 typedef Vector< TScalarType, itkGetStaticConstMacro( SpaceDimension ) >
OutputVectorType;
98 typedef vnl_vector_fixed< TScalarType, itkGetStaticConstMacro( SpaceDimension ) >
InputVnlVectorType;
99 typedef vnl_vector_fixed< TScalarType, itkGetStaticConstMacro( SpaceDimension ) >
OutputVnlVectorType;
102 typedef Point< TScalarType, itkGetStaticConstMacro( SpaceDimension ) >
InputPointType;
103 typedef Point< TScalarType, itkGetStaticConstMacro( SpaceDimension ) >
OutputPointType;
106 typedef typename Superclass
109 typedef typename Superclass
112 typedef typename Superclass
124 void SetParameters(
const ParametersType & parameters );
127 virtual const ParametersType & GetParameters(
void )
const;
133 { m_Offset = offset;
return; }
136 void Compose(
const Self * other,
bool pre = 0 );
142 void Translate(
const OutputVectorType & offset,
bool pre = 0 );
148 OutputPointType TransformPoint(
const InputPointType & point )
const;
150 OutputVectorType TransformVector(
const InputVectorType & vector )
const;
152 OutputVnlVectorType TransformVector(
const InputVnlVectorType & vector )
const;
154 OutputCovariantVectorType TransformCovariantVector(
155 const InputCovariantVectorType & vector )
const;
160 inline InputPointType BackTransform(
const OutputPointType & point )
const;
162 inline InputVectorType BackTransform(
const OutputVectorType & vector )
const;
164 inline InputVnlVectorType BackTransform(
const OutputVnlVectorType & vector )
const;
166 inline InputCovariantVectorType BackTransform(
167 const OutputCovariantVectorType & vector )
const;
173 bool GetInverse( Self * inverse )
const;
176 virtual void GetJacobian(
177 const InputPointType &,
179 NonZeroJacobianIndicesType & )
const;
182 virtual void GetSpatialJacobian(
183 const InputPointType &,
184 SpatialJacobianType & )
const;
187 virtual void GetSpatialHessian(
188 const InputPointType &,
189 SpatialHessianType & )
const;
192 virtual void GetJacobianOfSpatialJacobian(
193 const InputPointType &,
194 JacobianOfSpatialJacobianType &,
195 NonZeroJacobianIndicesType & )
const;
198 virtual void GetJacobianOfSpatialJacobian(
199 const InputPointType &,
200 SpatialJacobianType &,
201 JacobianOfSpatialJacobianType &,
202 NonZeroJacobianIndicesType & )
const;
205 virtual void GetJacobianOfSpatialHessian(
206 const InputPointType &,
207 JacobianOfSpatialHessianType &,
208 NonZeroJacobianIndicesType & )
const;
213 virtual void GetJacobianOfSpatialHessian(
214 const InputPointType & ipp,
215 SpatialHessianType & sh,
216 JacobianOfSpatialHessianType & jsh,
217 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
220 void SetIdentity(
void );
224 {
return NDimensions; }
253 this->m_FixedParameters.SetSize( 0 );
254 return this->m_FixedParameters;
263 void PrintSelf( std::ostream & os, Indent indent )
const;
268 void operator=(
const Self & );
284 template<
class TScalarType,
unsigned int NDimensions >
289 return point - m_Offset;
294 template<
class TScalarType,
unsigned int NDimensions >
304 template<
class TScalarType,
unsigned int NDimensions >
314 template<
class TScalarType,
unsigned int NDimensions >
325 #ifndef ITK_MANUAL_INSTANTIATION 326 #include "itkAdvancedTranslationTransform.hxx"