31 #ifndef __itkAdvancedTransform_h
32 #define __itkAdvancedTransform_h
34 #include "itkTransform.h"
35 #include "itkMatrix.h"
36 #include "itkFixedArray.h"
79 template <
class TScalarType,
80 unsigned int NInputDimensions = 3,
81 unsigned int NOutputDimensions = 3>
83 :
public Transform< TScalarType, NInputDimensions, NOutputDimensions >
88 typedef Transform< TScalarType,
101 itkStaticConstMacro( InputSpaceDimension,
unsigned int, NInputDimensions );
102 itkStaticConstMacro( OutputSpaceDimension,
unsigned int, NOutputDimensions );
110 typedef typename Superclass
112 typedef typename Superclass
130 InputSpaceDimension, InputSpaceDimension >,
136 virtual unsigned long GetNumberOfNonZeroJacobianIndices(
void )
const;
139 itkGetConstMacro( HasNonZeroSpatialHessian,
bool );
140 itkGetConstMacro( HasNonZeroJacobianOfSpatialHessian,
bool );
168 virtual void GetJacobian(
205 virtual void GetSpatialJacobian(
225 virtual void GetSpatialHessian(
235 virtual void GetJacobianOfSpatialJacobian(
243 virtual void GetJacobianOfSpatialJacobian(
255 virtual void GetJacobianOfSpatialHessian(
263 virtual void GetJacobianOfSpatialHessian(
274 bool m_HasNonZeroSpatialHessian;
280 void operator=(
const Self&);
287 #define ITK_TEMPLATE_AdvancedTransform(_, EXPORT, x, y) namespace itk { \
288 _(3(class EXPORT AdvancedTransform< ITK_TEMPLATE_3 x >)) \
289 namespace Templates { typedef AdvancedTransform< ITK_TEMPLATE_3 x > AdvancedTransform##y; } \
292 #if ITK_TEMPLATE_EXPLICIT
293 # include "Templates/itkAdvancedTransform+-.h"
297 # include "itkAdvancedTransform.txx"