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 );
89 typedef Vector< TScalarType, itkGetStaticConstMacro( SpaceDimension ) >
InputVectorType;
90 typedef Vector< TScalarType, itkGetStaticConstMacro( SpaceDimension ) >
OutputVectorType;
97 typedef vnl_vector_fixed< TScalarType, itkGetStaticConstMacro( SpaceDimension ) >
InputVnlVectorType;
98 typedef vnl_vector_fixed< TScalarType, itkGetStaticConstMacro( SpaceDimension ) >
OutputVnlVectorType;
101 typedef Point< TScalarType, itkGetStaticConstMacro( SpaceDimension ) >
InputPointType;
102 typedef Point< TScalarType, itkGetStaticConstMacro( SpaceDimension ) >
OutputPointType;
105 typedef typename Superclass
108 typedef typename Superclass
111 typedef typename Superclass
123 void SetParameters(
const ParametersType & parameters );
126 virtual const ParametersType & GetParameters(
void )
const;
132 { m_Offset = offset;
return; }
135 void Compose(
const Self * other,
bool pre = 0 );
141 void Translate(
const OutputVectorType & offset,
bool pre = 0 );
147 OutputPointType TransformPoint(
const InputPointType & point )
const;
149 OutputVectorType TransformVector(
const InputVectorType & vector )
const;
151 OutputVnlVectorType TransformVector(
const InputVnlVectorType & vector )
const;
153 OutputCovariantVectorType TransformCovariantVector(
154 const InputCovariantVectorType & vector )
const;
159 inline InputPointType BackTransform(
const OutputPointType & point )
const;
161 inline InputVectorType BackTransform(
const OutputVectorType & vector )
const;
163 inline InputVnlVectorType BackTransform(
const OutputVnlVectorType & vector )
const;
165 inline InputCovariantVectorType BackTransform(
166 const OutputCovariantVectorType & vector )
const;
172 bool GetInverse( Self * inverse )
const;
175 virtual void GetJacobian(
176 const InputPointType &,
178 NonZeroJacobianIndicesType & )
const;
181 virtual void GetSpatialJacobian(
182 const InputPointType &,
183 SpatialJacobianType & )
const;
186 virtual void GetSpatialHessian(
187 const InputPointType &,
188 SpatialHessianType & )
const;
191 virtual void GetJacobianOfSpatialJacobian(
192 const InputPointType &,
193 JacobianOfSpatialJacobianType &,
194 NonZeroJacobianIndicesType & )
const;
197 virtual void GetJacobianOfSpatialJacobian(
198 const InputPointType &,
199 SpatialJacobianType &,
200 JacobianOfSpatialJacobianType &,
201 NonZeroJacobianIndicesType & )
const;
204 virtual void GetJacobianOfSpatialHessian(
205 const InputPointType &,
206 JacobianOfSpatialHessianType &,
207 NonZeroJacobianIndicesType & )
const;
212 virtual void GetJacobianOfSpatialHessian(
213 const InputPointType & ipp,
214 SpatialHessianType & sh,
215 JacobianOfSpatialHessianType & jsh,
216 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
219 void SetIdentity(
void );
223 {
return NDimensions; }
252 this->m_FixedParameters.SetSize( 0 );
253 return this->m_FixedParameters;
262 void PrintSelf( std::ostream & os, Indent indent )
const;
267 void operator=(
const Self & );
283 template<
class TScalarType,
unsigned int NDimensions >
288 return point - m_Offset;
293 template<
class TScalarType,
unsigned int NDimensions >
303 template<
class TScalarType,
unsigned int NDimensions >
313 template<
class TScalarType,
unsigned int NDimensions >
324 #ifndef ITK_MANUAL_INSTANTIATION 325 #include "itkAdvancedTranslationTransform.hxx"