go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkBSplineInterpolationDerivativeWeightFunction.h
Go to the documentation of this file.
00001 /*======================================================================
00002 
00003 This file is part of the elastix software.
00004 
00005 Copyright (c) University Medical Center Utrecht. All rights reserved.
00006 See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
00007 details.
00008 
00009 This software is distributed WITHOUT ANY WARRANTY; without even
00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011 PURPOSE. See the above copyright notices for more information.
00012 
00013 ======================================================================*/
00014 #ifndef __itkBSplineInterpolationDerivativeWeightFunction_h
00015 #define __itkBSplineInterpolationDerivativeWeightFunction_h
00016 
00017 #include "itkBSplineInterpolationWeightFunctionBase.h"
00018 
00019 namespace itk
00020 {
00021 
00039 template < class TCoordRep = float,
00040   unsigned int VSpaceDimension = 2,
00041   unsigned int VSplineOrder = 3 >
00042 class ITK_EXPORT BSplineInterpolationDerivativeWeightFunction :
00043   public BSplineInterpolationWeightFunctionBase<
00044   TCoordRep, VSpaceDimension, VSplineOrder >
00045 {
00046 public:
00048   typedef BSplineInterpolationDerivativeWeightFunction Self;
00049   typedef BSplineInterpolationWeightFunctionBase<
00050     TCoordRep, VSpaceDimension, VSplineOrder >      Superclass;
00051   typedef SmartPointer<Self>                        Pointer;
00052   typedef SmartPointer<const Self>                  ConstPointer;
00053 
00055   itkNewMacro( Self );
00056 
00058   itkTypeMacro( BSplineInterpolationDerivativeWeightFunction,
00059     BSplineInterpolationWeightFunctionBase );
00060 
00062   itkStaticConstMacro( SpaceDimension, unsigned int, VSpaceDimension );
00063 
00065   itkStaticConstMacro( SplineOrder, unsigned int, VSplineOrder );
00066 
00068   typedef typename Superclass::WeightsType          WeightsType;
00069   typedef typename Superclass::IndexType            IndexType;
00070   typedef typename Superclass::SizeType             SizeType;
00071   typedef typename Superclass::ContinuousIndexType  ContinuousIndexType;
00072 
00074   virtual void SetDerivativeDirection( unsigned int dir );
00075 
00076 protected:
00077   BSplineInterpolationDerivativeWeightFunction();
00078   ~BSplineInterpolationDerivativeWeightFunction() {}
00079 
00081   typedef typename Superclass::KernelType           KernelType;
00082   typedef typename Superclass::DerivativeKernelType DerivativeKernelType;
00083   typedef typename Superclass
00084     ::SecondOrderDerivativeKernelType               SecondOrderDerivativeKernelType;
00085   typedef typename Superclass::TableType            TableType;
00086   typedef typename Superclass::OneDWeightsType      OneDWeightsType;
00087 
00095   virtual void Compute1DWeights(
00096     const ContinuousIndexType & index,
00097     const IndexType & startIndex,
00098     OneDWeightsType & weights1D ) const;
00099 
00101   virtual void PrintSelf( std::ostream & os, Indent indent ) const;
00102 
00103 private:
00104   BSplineInterpolationDerivativeWeightFunction(const Self&); //purposely not implemented
00105   void operator=(const Self&); //purposely not implemented
00106 
00108   unsigned int m_DerivativeDirection;
00109 
00110 };
00111 
00112 } // end namespace itk
00113 
00114 // Define instantiation macro for this template.
00115 #define ITK_TEMPLATE_BSplineInterpolationDerivativeWeightFunction(_, EXPORT, x, y) namespace itk { \
00116   _(3(class EXPORT BSplineInterpolationDerivativeWeightFunction< ITK_TEMPLATE_3 x >)) \
00117   namespace Templates { typedef BSplineInterpolationDerivativeWeightFunction< ITK_TEMPLATE_3 x > BSplineInterpolationDerivativeWeightFunction##y; } \
00118   }
00119 
00120 #if ITK_TEMPLATE_EXPLICIT
00121 # include "Templates/itkBSplineInterpolationDerivativeWeightFunction+-.h"
00122 #endif
00123 
00124 #if ITK_TEMPLATE_TXX
00125 # include "itkBSplineInterpolationDerivativeWeightFunction.txx"
00126 #endif
00127 
00128 
00129 #endif


Generated on 24-10-2011 for elastix by doxygen 1.7.4 elastix logo