18 #ifndef __itkBSplineDeformableTransform_h
19 #define __itkBSplineDeformableTransform_h
108 class TScalarType = double,
109 unsigned int NDimensions = 3,
110 unsigned int VSplineOrder = 3 >
112 public Transform< TScalarType, NDimensions, NDimensions >
126 virtual ::itk::LightObject::Pointer CreateAnother(
void)
const;
132 itkStaticConstMacro(SpaceDimension,
unsigned int, NDimensions);
135 itkStaticConstMacro(SplineOrder,
unsigned int, VSplineOrder);
147 typedef Vector<TScalarType,
149 typedef Vector<TScalarType,
159 typedef vnl_vector_fixed<TScalarType,
161 typedef vnl_vector_fixed<TScalarType,
165 typedef Point<TScalarType,
167 typedef Point<TScalarType,
251 {
return m_CoefficientImage; }
253 {
return m_CoefficientImage; }
267 virtual void SetCoefficientImage( ImagePointer images[] );
279 virtual void SetGridRegion(
const RegionType& region );
283 virtual void SetGridSpacing(
const SpacingType& spacing );
287 virtual void SetGridDirection(
const DirectionType & spacing );
291 virtual void SetGridOrigin(
const OriginType& origin );
310 itkGetStaticConstMacro(SpaceDimension),
330 bool & inside )
const;
339 unsigned long GetNumberOfWeights()
const
340 {
return m_WeightsFunction->GetNumberOfWeights(); }
346 itkExceptionMacro(<<
"Method not applicable for deformable transform." );
354 itkExceptionMacro(<<
"Method not applicable for deformable transform. ");
363 itkExceptionMacro(<<
"Method not applicable for deformable transfrom. ");
368 virtual const JacobianType& GetJacobian(
const InputPointType &point )
const;
371 virtual unsigned int GetNumberOfParameters(
void)
const;
374 unsigned int GetNumberOfParametersPerDimension(
void)
const;
377 itkGetConstReferenceMacro( ValidRegion, RegionType );
386 unsigned int GetNumberOfAffectedWeights()
const;
390 void PrintSelf(std::ostream &os,
Indent indent)
const;
397 itkSetObjectMacro( WeightsFunction, WeightsFunctionType );
398 itkGetObjectMacro( WeightsFunction, WeightsFunctionType );
404 void TransformPointToContinuousIndex(
405 const InputPointType & point, ContinuousIndexType & index )
const;
409 void operator=(
const Self&);
470 #define ITK_TEMPLATE_BSplineDeformableTransform(_, EXPORT, x, y) namespace itk { \
471 _(3(class EXPORT BSplineDeformableTransform< ITK_TEMPLATE_3 x >)) \
472 namespace Templates { typedef BSplineDeformableTransform< ITK_TEMPLATE_3 x > \
473 BSplineDeformableTransform##y; } \
476 #if ITK_TEMPLATE_EXPLICIT
477 # include "Templates/itkBSplineDeformableTransform+-.h"