18 #ifndef __itkKernelTransform_h
19 #define __itkKernelTransform_h
26 #include "vnl/vnl_matrix_fixed.h"
27 #include "vnl/vnl_matrix.h"
28 #include "vnl/vnl_vector.h"
29 #include "vnl/vnl_vector_fixed.h"
30 #include "vnl/algo/vnl_svd.h"
31 #include "vnl/vnl_sample.h"
60 template <
class TScalarType,
61 unsigned int NDimensions>
64 public Transform<TScalarType, NDimensions, NDimensions>
80 itkStaticConstMacro(SpaceDimension,
unsigned int, NDimensions);
139 void ComputeWMatrix(
void);
145 using Superclass::TransformVector;
149 <<
"TransformVector(const InputVectorType &) is not implemented for KernelTransform"); \
156 <<
"TransformVector(const InputVnlVectorType &) is not implemented for KernelTransform"); \
160 using Superclass::TransformCovariantVector;
164 <<
"TransformCovariantVector(const InputCovariantVectorType &) is not implemented for KernelTransform"); \
169 typedef vnl_matrix_fixed<TScalarType, NDimensions, NDimensions>
IMatrixType;
177 itkExceptionMacro(
"ComputeJacobianWithRespectToPosition not yet implemented " \
178 "for " << this->GetNameOfClass() ); \
185 virtual void SetParameters(
const ParametersType &);
192 virtual void SetFixedParameters(
const ParametersType &);
195 virtual void UpdateParameters(
void)
const;
198 virtual const ParametersType & GetParameters(
void)
const;
201 virtual const ParametersType & GetFixedParameters(
void)
const;
206 virtual bool IsLinear()
const
222 itkGetConstMacro(Stiffness,
double);
226 void PrintSelf(std::ostream & os,
Indent indent)
const;
231 typedef vnl_matrix_fixed<TScalarType, NDimensions, NDimensions>
GMatrixType;
252 typedef vnl_matrix_fixed<TScalarType, NDimensions, NDimensions>
AMatrixType;
306 void ReorganizeW(
void);
362 void operator=(
const Self &);
368 #define ITK_TEMPLATE_KernelTransform(_, EXPORT, TypeX, TypeY) \
371 _( 2 ( class EXPORT KernelTransform<ITK_TEMPLATE_2 TypeX> ) ) \
372 namespace Templates \
374 typedef KernelTransform<ITK_TEMPLATE_2 TypeX> \
375 KernelTransform##TypeY; \
379 #if ITK_TEMPLATE_EXPLICIT
380 #include "Templates/itkKernelTransform+-.h"
384 #include "itkKernelTransform.hxx"
387 #endif // __itkKernelTransform_h