/*========================================================================= Program: Insight Segmentation & Registration Toolkit Module: $RCSfile: itkCompactlySupportedRBFSparseKernelTransform.h,v $ Language: C++ Date: $Date: 2014-1-28 14:22:18 $ Version: $Revision: 1.1 $ Copyright (c) Insight Software Consortium. All rights reserved. See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information.=========================================================================*/#ifndef __itkCompactlySupportedRBFSparseKernelTransform_h#define __itkCompactlySupportedRBFSparseKernelTransform_h#include"itkSparseKernelTransform.h"namespaceitk{template<classTScalarType,// Data type for scalars (float or double)unsignedintNDimensions=3>// Number of dimensionsclassITK_EXPORTCompactlySupportedRBFSparseKernelTransform:publicSparseKernelTransform<TScalarType,NDimensions>{public:typedefCompactlySupportedRBFSparseKernelTransformSelf;typedefSparseKernelTransform<TScalarType,NDimensions>Superclass;typedefSmartPointer<Self>Pointer;typedefSmartPointer<constSelf>ConstPointer;itkNewMacro(Self);itkTypeMacro(CompactlySupportedRBFSparseKernelTransform,SparseKernelTransform);typedeftypenameSuperclass::ScalarTypeScalarType;typedeftypenameSuperclass::ParametersTypeParametersType;typedeftypenameSuperclass::JacobianTypeJacobianType;itkStaticConstMacro(SpaceDimension,unsignedint,Superclass::SpaceDimension);typedeftypenameSuperclass::InputPointTypeInputPointType;typedeftypenameSuperclass::OutputPointTypeOutputPointType;typedeftypenameSuperclass::InputVectorTypeInputVectorType;typedeftypenameSuperclass::OutputVectorTypeOutputVectorType;typedeftypenameSuperclass::InputCovariantVectorTypeInputCovariantVectorType;typedeftypenameSuperclass::OutputCovariantVectorTypeOutputCovariantVectorType;typedeftypenameSuperclass::PointsIteratorPointsIterator;// void SetParameters( const ParametersType & parameters );voidSetSigma(doublesigma){this->Sigma=sigma;}virtualvoidComputeJacobianWithRespectToParameters(constInputPointType&in,JacobianType&jacobian)const;protected:CompactlySupportedRBFSparseKernelTransform(){this->Sigma=1;}virtual~CompactlySupportedRBFSparseKernelTransform(){}typedeftypenameSuperclass::GMatrixTypeGMatrixType;constGMatrixType&ComputeG(constInputVectorType&x)constoverride;virtualvoidComputeDeformationContribution(constInputPointType&inputPoint,OutputPointType&result)constoverride;private:CompactlySupportedRBFSparseKernelTransform(constSelf&);//purposely not implementedvoidoperator=(constSelf&);//purposely not implemented// basis supportdoubleSigma;};}// namespace itk#include"itkCompactlySupportedRBFSparseKernelTransform.cpp"#endif // __itkCompactlySupportedRBFSparseKernelTransform_h