32 #ifndef __itkAdvancedBSplineDeformableTransform_h
33 #define __itkAdvancedBSplineDeformableTransform_h
37 #include "itkImageRegion.h"
124 class TScalarType =
double,
125 unsigned int NDimensions = 3,
126 unsigned int VSplineOrder = 3 >
145 itkStaticConstMacro( SpaceDimension,
unsigned int, NDimensions );
148 itkStaticConstMacro( SplineOrder,
unsigned int, VSplineOrder );
191 virtual void SetGridRegion(
const RegionType& region );
198 itkGetStaticConstMacro( SpaceDimension ),
204 itkGetStaticConstMacro( SpaceDimension ),
208 itkGetStaticConstMacro( SpaceDimension ),
221 virtual void TransformPoint(
226 bool & inside )
const;
231 return this->m_WeightsFunction->GetNumberOfWeights();
234 unsigned int GetNumberOfAffectedWeights(
void )
const;
236 virtual unsigned long GetNumberOfNonZeroJacobianIndices(
void )
const;
239 virtual const JacobianType & GetJacobian(
const InputPointType & point )
const;
242 virtual void GetJacobian(
243 const InputPointType & ipp,
244 WeightsType & weights,
245 ParameterIndexArrayType & indices )
const;
248 virtual void GetJacobian(
249 const InputPointType & ipp,
251 NonZeroJacobianIndicesType & )
const;
254 virtual void GetSpatialJacobian(
255 const InputPointType & ipp,
256 SpatialJacobianType & sj )
const;
259 virtual void GetSpatialHessian(
260 const InputPointType & ipp,
261 SpatialHessianType & sh )
const;
264 virtual void GetJacobianOfSpatialJacobian(
265 const InputPointType & ipp,
266 JacobianOfSpatialJacobianType & jsj,
267 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
272 virtual void GetJacobianOfSpatialJacobian(
273 const InputPointType & ipp,
274 SpatialJacobianType & sj,
275 JacobianOfSpatialJacobianType & jsj,
276 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
279 virtual void GetJacobianOfSpatialHessian(
280 const InputPointType & ipp,
281 JacobianOfSpatialHessianType & jsh,
282 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
287 virtual void GetJacobianOfSpatialHessian(
288 const InputPointType & ipp,
289 SpatialHessianType & sh,
290 JacobianOfSpatialHessianType & jsh,
291 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
295 virtual void PrintSelf( std::ostream &os, Indent indent )
const;
302 itkSetObjectMacro( WeightsFunction, WeightsFunctionType );
303 itkGetObjectMacro( WeightsFunction, WeightsFunctionType );
306 void WrapAsImages(
void );
308 virtual void ComputeNonZeroJacobianIndices(
309 NonZeroJacobianIndicesType & nonZeroJacobianIndices,
310 const RegionType & supportRegion )
const;
322 std::vector< std::vector<
327 void operator=(
const Self&);
335 #define ITK_TEMPLATE_AdvancedBSplineDeformableTransform(_, EXPORT, x, y) namespace itk { \
336 _(3(class EXPORT AdvancedBSplineDeformableTransform< ITK_TEMPLATE_3 x >)) \
337 namespace Templates { typedef AdvancedBSplineDeformableTransform< ITK_TEMPLATE_3 x > \
338 AdvancedBSplineDeformableTransform##y; } \
341 #if ITK_TEMPLATE_EXPLICIT
342 # include "Templates/itkAdvancedBSplineDeformableTransform+-.h"
346 # include "itkAdvancedBSplineDeformableTransform.txx"
Superclass::ContinuousIndexType ContinuousIndexType
SmartPointer< Self > Pointer
Superclass::WeightsType WeightsType
SmartPointer< Self > Pointer
Returns the weights over the support region used for B-spline interpolation/reconstruction.
Returns the weights over the support region used for B-spline interpolation/reconstruction.
Returns the weights over the support region used for B-spline interpolation/reconstruction.