31 #ifndef __itkAdvancedBSplineDeformableTransform_h
32 #define __itkAdvancedBSplineDeformableTransform_h
36 #include "itkImageRegion.h"
46 template <
class TScalarType,
unsigned int NDimensions,
unsigned int VSplineOrder>
127 class TScalarType =
double,
128 unsigned int NDimensions = 3,
129 unsigned int VSplineOrder = 3 >
148 itkStaticConstMacro( SpaceDimension,
unsigned int, NDimensions );
151 itkStaticConstMacro( SplineOrder,
unsigned int, VSplineOrder );
195 virtual void SetGridRegion(
const RegionType& region );
202 itkGetStaticConstMacro( SpaceDimension ),
208 itkGetStaticConstMacro( SpaceDimension ),
212 itkGetStaticConstMacro( SpaceDimension ),
225 virtual void TransformPoint(
230 bool & inside )
const;
235 return this->m_WeightsFunction->GetNumberOfWeights();
238 unsigned int GetNumberOfAffectedWeights(
void )
const;
240 virtual unsigned long GetNumberOfNonZeroJacobianIndices(
void )
const;
243 virtual void GetJacobian(
244 const InputPointType & ipp,
246 NonZeroJacobianIndicesType & )
const;
249 virtual void GetSpatialJacobian(
250 const InputPointType & ipp,
251 SpatialJacobianType & sj )
const;
254 virtual void GetSpatialHessian(
255 const InputPointType & ipp,
256 SpatialHessianType & sh )
const;
259 virtual void GetJacobianOfSpatialJacobian(
260 const InputPointType & ipp,
261 JacobianOfSpatialJacobianType & jsj,
262 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
267 virtual void GetJacobianOfSpatialJacobian(
268 const InputPointType & ipp,
269 SpatialJacobianType & sj,
270 JacobianOfSpatialJacobianType & jsj,
271 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
274 virtual void GetJacobianOfSpatialHessian(
275 const InputPointType & ipp,
276 JacobianOfSpatialHessianType & jsh,
277 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
282 virtual void GetJacobianOfSpatialHessian(
283 const InputPointType & ipp,
284 SpatialHessianType & sh,
285 JacobianOfSpatialHessianType & jsh,
286 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
290 virtual void PrintSelf( std::ostream &os, Indent indent )
const;
297 itkSetObjectMacro( WeightsFunction, WeightsFunctionType );
298 itkGetObjectMacro( WeightsFunction, WeightsFunctionType );
301 void WrapAsImages(
void );
303 virtual void ComputeNonZeroJacobianIndices(
304 NonZeroJacobianIndicesType & nonZeroJacobianIndices,
305 const RegionType & supportRegion )
const;
317 std::vector< std::vector<
322 void operator=(
const Self&);
325 itkGetStaticConstMacro( SpaceDimension ),
326 itkGetStaticConstMacro( SplineOrder ) >;
334 #define ITK_TEMPLATE_AdvancedBSplineDeformableTransform(_, EXPORT, x, y) namespace itk { \
335 _(3(class EXPORT AdvancedBSplineDeformableTransform< ITK_TEMPLATE_3 x >)) \
336 namespace Templates { typedef AdvancedBSplineDeformableTransform< ITK_TEMPLATE_3 x > \
337 AdvancedBSplineDeformableTransform##y; } \
340 #if ITK_TEMPLATE_EXPLICIT
341 # include "Templates/itkAdvancedBSplineDeformableTransform+-.h"
345 # 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.