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);
126 itkGetModifiableObjectMacro(SourceLandmarks,
PointSetType);
131 itkGetModifiableObjectMacro(TargetLandmarks,
PointSetType);
140 void ComputeWMatrix(
void);
146 using Superclass::TransformVector;
150 <<
"TransformVector(const InputVectorType &) is not implemented for KernelTransform"); \
157 <<
"TransformVector(const InputVnlVectorType &) is not implemented for KernelTransform"); \
161 using Superclass::TransformCovariantVector;
165 <<
"TransformCovariantVector(const InputCovariantVectorType &) is not implemented for KernelTransform"); \
170 typedef vnl_matrix_fixed<TScalarType, NDimensions, NDimensions>
IMatrixType;
178 itkExceptionMacro(
"ComputeJacobianWithRespectToPosition not yet implemented " \
179 "for " << this->GetNameOfClass() ); \
186 virtual void SetParameters(
const ParametersType &);
193 virtual void SetFixedParameters(
const ParametersType &);
196 virtual void UpdateParameters(
void)
const;
199 virtual const ParametersType & GetParameters(
void)
const;
202 virtual const ParametersType & GetFixedParameters(
void)
const;
223 itkGetConstMacro(Stiffness,
double);
229 void PrintSelf(std::ostream & os,
Indent indent)
const;
233 typedef vnl_matrix_fixed<TScalarType, NDimensions, NDimensions>
GMatrixType;
254 typedef vnl_matrix_fixed<TScalarType, NDimensions, NDimensions>
AMatrixType;
308 void ReorganizeW(
void);
365 void operator=(
const Self &);
370 #ifndef ITK_MANUAL_INSTANTIATION
371 #include "itkKernelTransform.hxx"
374 #endif // __itkKernelTransform_h