Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkNeighborhoodOperatorImageFunction.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Insight Segmentation & Registration Toolkit
00004   Module:    $RCSfile: itkNeighborhoodOperatorImageFunction.h,v $
00005   Language:  C++
00006   Date:      $Date: 2003/09/10 14:29:18 $
00007   Version:   $Revision: 1.4 $
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 _itkNeighborhoodOperatorImageFunction_h
00018 #define _itkNeighborhoodOperatorImageFunction_h
00019 
00020 #include "itkImageFunction.h"
00021 #include "itkNeighborhood.h"
00022 
00023 namespace itk
00024 {
00025 
00035 template <class TInputImage,class TOutput>
00036 class ITK_EXPORT NeighborhoodOperatorImageFunction :
00037   public ImageFunction< TInputImage, TOutput >
00038 {
00039 public:
00040 
00042   typedef NeighborhoodOperatorImageFunction Self;
00043 
00045   typedef ImageFunction<TInputImage, TOutput> Superclass;
00046 
00048   typedef SmartPointer<Self> Pointer;
00049   typedef SmartPointer<const Self>  ConstPointer;
00050 
00052   itkNewMacro(Self);
00053 
00055   typedef TInputImage                                     InputImageType;
00056   typedef typename InputImageType::PixelType              InputPixelType;
00057   typedef typename Superclass::IndexType                  IndexType;
00058   typedef typename Superclass::ContinuousIndexType        ContinuousIndexType;
00059 
00061   itkTypeMacro( NeighborhoodOperatorImageFunction, ImageFunction );
00062 
00063 
00065   itkStaticConstMacro(ImageDimension, unsigned int,
00066                       InputImageType::ImageDimension);
00067   
00068   typedef Neighborhood<TOutput, itkGetStaticConstMacro(ImageDimension)> NeighborhoodType;
00069 
00071   typedef typename Superclass::PointType PointType;
00072 
00074   //virtual void SetInputImage( InputImageType * ptr );
00075 
00079   void SetOperator(const NeighborhoodType &p) const
00080     {
00081     m_Operator = p;
00082     this->Modified();
00083     }
00084   
00087    virtual TOutput Evaluate(const PointType& ) const 
00088    {
00089     std::cout << "NeighborhoodOperatorImageFunction::Evaluate(): Not implemented!" << std::endl;
00090     TOutput out;
00091     out = 0;
00092     return out;
00093    }
00095   virtual TOutput EvaluateAtIndex( const IndexType & index ) const;
00096 
00099   virtual TOutput EvaluateAtContinuousIndex( 
00100     const ContinuousIndexType &  ) const 
00101   {
00102     std::cout << "NeighborhoodOperatorImageFunction::EvaluateAtContinuousIndex():Not implemented!" << std::endl;
00103     TOutput out;
00104     out = 0;
00105     return out;
00106   }
00107 
00108 protected:
00109   NeighborhoodOperatorImageFunction();
00110   NeighborhoodOperatorImageFunction( const Self& ){};
00111 
00112   ~NeighborhoodOperatorImageFunction(){};
00113 
00114   void operator=( const Self& ){};
00115   void PrintSelf(std::ostream& os, Indent indent) const;
00116 
00117 private:
00118 
00119   mutable NeighborhoodType m_Operator;
00120 
00121 };
00122 
00123 } // namespace itk
00124 
00125 #ifndef ITK_MANUAL_INSTANTIATION
00126 #include "itkNeighborhoodOperatorImageFunction.txx"
00127 #endif
00128 
00129 #endif
00130 

Generated at Wed May 24 23:46:40 2006 for ITK by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2000