00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkGradientImageToBloxBoundaryPointImageFilter.h,v $ 00005 Language: C++ 00006 Date: $Date: 2003/09/10 14:28:48 $ 00007 Version: $Revision: 1.6 $ 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 __itkGradientImageToBloxBoundaryPointImageFilter_h 00018 #define __itkGradientImageToBloxBoundaryPointImageFilter_h 00019 00020 #include "itkBloxBoundaryPointImage.h" 00021 #include "itkImageToImageFilter.h" 00022 #include "itkSize.h" 00023 00024 namespace itk 00025 { 00026 00035 template<typename TInputImage> 00036 class ITK_EXPORT GradientImageToBloxBoundaryPointImageFilter : 00037 public ImageToImageFilter<TInputImage, BloxBoundaryPointImage< ::itk::GetImageDimension<TInputImage>::ImageDimension> > 00038 { 00039 public: 00041 itkStaticConstMacro(NDimensions, unsigned int, TInputImage::ImageDimension); 00042 00044 typedef GradientImageToBloxBoundaryPointImageFilter Self; 00045 typedef ImageToImageFilter<TInputImage, 00046 BloxBoundaryPointImage<itkGetStaticConstMacro(NDimensions)> > Superclass; 00047 typedef SmartPointer<Self> Pointer; 00048 typedef SmartPointer<const Self> ConstPointer; 00049 00051 itkNewMacro(Self); 00052 00054 itkTypeMacro( GradientImageToBloxBoundaryPointImageFilter, ImageToImageFilter ); 00055 00057 typedef TInputImage InputImageType; 00058 typedef BloxBoundaryPointImage<itkGetStaticConstMacro(NDimensions)> TOutputImage; 00059 typedef BloxBoundaryPointImage<itkGetStaticConstMacro(NDimensions)> OutputImageType; 00060 typedef typename OutputImageType::Pointer OutputImagePointer; 00061 typedef typename InputImageType::Pointer InputImagePointer; 00062 typedef typename InputImageType::ConstPointer InputImageConstPointer; 00063 00065 typedef Size<itkGetStaticConstMacro(NDimensions)> SizeType; 00066 00068 typedef typename TOutputImage::IndexType IndexType; 00069 00071 typedef typename TOutputImage::PixelType PixelType; 00072 00074 typedef typename TOutputImage::RegionType OutputImageRegionType; 00075 00077 typedef Point<double, itkGetStaticConstMacro(NDimensions)> TPositionType; 00078 00080 itkSetMacro(Threshold, double); 00081 itkGetMacro(Threshold, double); 00082 00087 void SetBloxResolution( float bloxResolution[] ); 00088 void SetBloxResolution( float bloxResolution ); 00089 00090 void GenerateInputRequestedRegion(); 00091 00092 virtual void GenerateOutputInformation(); 00093 00094 protected: 00095 GradientImageToBloxBoundaryPointImageFilter(); 00096 virtual ~GradientImageToBloxBoundaryPointImageFilter() {}; 00097 void PrintSelf(std::ostream& os, Indent indent) const; 00098 00100 void GenerateData(); 00101 00102 private: 00103 GradientImageToBloxBoundaryPointImageFilter(const Self&); //purposely not implemented 00104 void operator=(const Self&); //purposely not implemented 00105 00108 double m_Threshold; 00109 00111 float m_BloxResolution[NDimensions]; 00112 }; 00113 00114 } // end namespace itk 00115 00116 #ifndef ITK_MANUAL_INSTANTIATION 00117 #include "itkGradientImageToBloxBoundaryPointImageFilter.txx" 00118 #endif 00119 00120 #endif