18 #ifndef __itkBSplineBaseTransform_h
19 #define __itkBSplineBaseTransform_h
33 template <
class TScalarType = double,
unsigned int NDimensions = 3,
34 unsigned int VSplineOrder = 3>
36 public Transform<TScalarType, NDimensions, NDimensions>
49 itkStaticConstMacro( SpaceDimension,
unsigned int, NDimensions );
52 itkStaticConstMacro( SplineOrder,
unsigned int, VSplineOrder );
134 virtual void SetFixedParameters(
const ParametersType & parameters ) = 0;
193 return this->m_CoefficientImages;
208 virtual void UpdateTransformParameters(
const DerivativeType & update, TScalarType factor = 1.0 );
224 itkGetStaticConstMacro( SpaceDimension ),
245 unsigned long GetNumberOfWeights()
const
247 return m_WeightsFunction->GetNumberOfWeights();
252 using Superclass::TransformVector;
255 itkExceptionMacro( <<
"Method not applicable for deformable transform." );
264 itkExceptionMacro( <<
"Method not applicable for deformable transform. " );
271 using Superclass::TransformCovariantVector;
275 itkExceptionMacro( <<
"Method not applicable for deformable transfrom. " );
281 void ComputeJacobianFromBSplineWeightsWithRespectToPosition(
282 const InputPointType &, WeightsType &, ParameterIndexArrayType & )
const;
284 virtual void ComputeJacobianWithRespectToParameters(
const InputPointType &, JacobianType & )
const = 0;
288 itkExceptionMacro( <<
"ComputeJacobianWithRespectToPosition not yet implemented "
289 "for " << this->GetNameOfClass() );
293 virtual NumberOfParametersType GetNumberOfParameters()
const = 0;
296 virtual NumberOfParametersType GetNumberOfParametersPerDimension()
const = 0;
300 return Self::BSpline;
303 unsigned int GetNumberOfAffectedWeights()
const;
313 return this->GetNumberOfParameters();
318 void PrintSelf( std::ostream & os,
Indent indent )
const;
324 itkSetObjectMacro( WeightsFunction, WeightsFunctionType );
327 itkGetObjectMacro( WeightsFunction, WeightsFunctionType );
334 void SetFixedParametersFromTransformDomainInformation()
const;
337 virtual void SetFixedParametersGridSizeFromTransformDomainInformation()
const = 0;
340 virtual void SetFixedParametersGridOriginFromTransformDomainInformation()
const = 0;
343 virtual void SetFixedParametersGridSpacingFromTransformDomainInformation()
const = 0;
346 virtual void SetFixedParametersGridDirectionFromTransformDomainInformation()
const = 0;
349 virtual void SetCoefficientImageInformationFromFixedParameters() =0;
352 virtual bool InsideValidRegion( ContinuousIndexType & )
const = 0;
378 void operator=(
const Self & );
384 #ifndef ITK_MANUAL_INSTANTIATION
385 #include "itkBSplineBaseTransform.hxx"