ITK  4.1.0
Insight Segmentation and Registration Toolkit
itkLabelImageGaussianInterpolateImageFunction.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Insight Segmentation & Registration Toolkit
00004   Module:    $RCSfile: itkLabelImageGaussianInterpolateImageFunction.h,v $
00005   Language:  C++
00006   Date:      $Date: $
00007   Version:   $Revision: $
00008 
00009   Copyright (c) Insight Software Consortium. All rights reserved.
00010   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
00011 
00012      This software is distributed WITHOUT ANY WARRANTY; without even
00013      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00014      PURPOSE.  See the above copyright notices for more information.
00015 
00016 =========================================================================*/
00017 #ifndef __itkLabelImageGaussianInterpolateImageFunction_h
00018 #define __itkLabelImageGaussianInterpolateImageFunction_h
00019 
00020 #include "itkGaussianInterpolateImageFunction.h"
00021 
00022 namespace itk
00023 {
00024 
00056 template <class TInputImage, class TCoordRep = double,
00057           class TPixelCompare = std::less<typename itk::NumericTraits<typename TInputImage::PixelType>::RealType> >
00058 class ITK_EXPORT LabelImageGaussianInterpolateImageFunction :
00059   public GaussianInterpolateImageFunction<TInputImage, TCoordRep>
00060 {
00061 public:
00063   typedef LabelImageGaussianInterpolateImageFunction                Self;
00064   typedef GaussianInterpolateImageFunction<TInputImage, TCoordRep>  Superclass;
00065   typedef SmartPointer<Self>                                        Pointer;
00066   typedef SmartPointer<const Self>                                  ConstPointer;
00067 
00069   itkTypeMacro( LabelImageGaussianInterpolateImageFunction, GaussianInterpolateImageFunction );
00070 
00072   itkNewMacro( Self );
00073 
00075   itkStaticConstMacro( ImageDimension, unsigned int, TInputImage::ImageDimension );
00076 
00078   typedef typename Superclass::OutputType OutputType;
00079 
00081   typedef typename Superclass::InputImageType InputImageType;
00082 
00084   typedef typename Superclass::RealType RealType;
00085 
00087   typedef typename Superclass::IndexType IndexType;
00088 
00090   typedef typename Superclass::ContinuousIndexType ContinuousIndexType;
00091 
00093   typedef typename Superclass::ArrayType ArrayType;
00094 
00098   virtual OutputType EvaluateAtContinuousIndex(
00099     const ContinuousIndexType & cindex ) const
00100     {
00101     return this->EvaluateAtContinuousIndex( cindex, NULL );
00102     }
00103 
00104 protected:
00105   LabelImageGaussianInterpolateImageFunction();
00106   ~LabelImageGaussianInterpolateImageFunction(){};
00107 
00108 private:
00109   LabelImageGaussianInterpolateImageFunction( const Self& ); //purposely not implemented
00110   void operator=( const Self& ); //purposely not implemented
00111 
00115   virtual OutputType EvaluateAtContinuousIndex(
00116     const ContinuousIndexType &, OutputType * ) const;
00117 };
00118 
00119 } // end namespace itk
00120 
00121 #ifndef ITK_MANUAL_INSTANTIATION
00122 #include "itkLabelImageGaussianInterpolateImageFunction.hxx"
00123 #endif
00124 
00125 #endif
00126