17 #ifndef __itkAdvancedIdentityTransform_h
18 #define __itkAdvancedIdentityTransform_h
20 #include "itkObject.h"
22 #include "itkVector.h"
23 #include "itkCovariantVector.h"
24 #include "vnl/vnl_vector_fixed.h"
26 #include "itkArray2D.h"
29 #include "itkObjectFactory.h"
54 template <
class TScalarType,
55 unsigned int NDimensions=3>
74 itkStaticConstMacro( InputSpaceDimension,
unsigned int, NDimensions );
75 itkStaticConstMacro( OutputSpaceDimension,
unsigned int, NDimensions );
76 itkStaticConstMacro( ParametersDimension,
unsigned int, 1 );
89 typedef Vector<TScalarType,
91 typedef Vector<TScalarType,
95 typedef CovariantVector<TScalarType,
97 typedef CovariantVector<TScalarType,
101 typedef vnl_vector_fixed<TScalarType,
103 typedef vnl_vector_fixed<TScalarType,
107 typedef Point<TScalarType,
109 typedef Point<TScalarType,
154 return this->New().GetPointer();
167 return this->m_FixedParameters;
176 return this->m_Parameters;
188 j = this->m_LocalJacobian;
189 nonZeroJacobianIndices = this->m_NonZeroJacobianIndices;
197 sj = this->m_SpatialJacobian;
205 sh = this->m_SpatialHessian;
214 jsj = this->m_JacobianOfSpatialJacobian;
215 nonZeroJacobianIndices = this->m_NonZeroJacobianIndices;
225 sj = this->m_SpatialJacobian;
226 jsj = this->m_JacobianOfSpatialJacobian;
227 nonZeroJacobianIndices = this->m_NonZeroJacobianIndices;
236 jsh = this->m_JacobianOfSpatialHessian;
237 nonZeroJacobianIndices = this->m_NonZeroJacobianIndices;
249 sh = this->m_SpatialHessian;
250 jsh = this->m_JacobianOfSpatialHessian;
251 nonZeroJacobianIndices = this->m_NonZeroJacobianIndices;
260 this->m_LocalJacobian.Fill( 0.0 );
263 this->m_SpatialJacobian.SetIdentity();
266 this->m_NonZeroJacobianIndices.resize( ParametersDimension );
267 for (
unsigned int i = 0; i < ParametersDimension; ++i )
269 this->m_NonZeroJacobianIndices[ i ] = i;
273 this->m_HasNonZeroSpatialHessian =
false;
274 this->m_HasNonZeroJacobianOfSpatialHessian =
false;
275 this->m_JacobianOfSpatialJacobian.resize( ParametersDimension );
276 this->m_JacobianOfSpatialHessian.resize( ParametersDimension );
284 void operator=(
const Self&);