dox/Imaging/vtkImageWindowingSource.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   vtkCNMRRLibrary
00004   Module:    $RCSfile: vtkImageWindowingSource.h,v $
00005 
00006   Copyright  2006  The Pennsylvania State University
00007   
00008           Notice
00009  
00010   The contents of this file are subject to The Pennsylvania State University 
00011   Open Source License (the "License"); you may not use this file except in 
00012   compliance with the License. You may obtain a copy of the License at H066 
00013   Radiology, NMR Building, 500 University Drive, Hershey, PA, 
00014   tel. (717) 531-6069 or via email at dcb210@psu.edu.
00015  
00016   Software distributed under the License is distributed on an "AS IS" basis, 
00017   WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 
00018   for the specific language governing rights and limitations under the 
00019   License.
00020  
00021   The Original Code is listed under Exhibit A of the license.
00022  
00023   The Initial Developer of the Original Code is Don Bigler.
00024  
00025   Contributor(s):
00026 
00027 =========================================================================*/
00043 #ifndef __vtkImageWindowingSource_h
00044 #define __vtkImageWindowingSource_h
00045 
00046 // Windowing options.
00047 #define VTK_RECTANGULAR             0
00048 #define VTK_BARTLETT             1
00049 #define VTK_HANNING                 2
00050 #define VTK_HAMMING                 3
00051 #define VTK_BLACKMAN                4
00052 #define VTK_FERMI                   5
00053 #define VTK_WELCH                6
00054 #define VTK_BLACKMAN_HARRIS_ONE     7
00055 #define VTK_BLACKMAN_HARRIS_TWO     8
00056 #define VTK_BLACKMAN_HARRIS_THREE   9
00057 #define VTK_CAUCHY               10
00058 #define VTK_BOHMAN               11
00059 #define VTK_FLATTOP              12
00060 #define VTK_KAISER_BESSEL        13
00061 #define VTK_HANNING_POISSON         14
00062 #define VTK_GAUSSIAN          15
00063 #define VTK_KAISER               16
00064 
00065 #include "vtkImageAlgorithm.h"
00066 #include "vtkCNMRRImagingWin32Header.h"
00067 
00068 class VTK_CNMRR_IMAGING_EXPORT vtkImageWindowingSource : public vtkImageAlgorithm
00069 {
00070 public:
00071   static vtkImageWindowingSource *New();
00072   vtkTypeRevisionMacro(vtkImageWindowingSource,vtkImageAlgorithm);
00073   void PrintSelf(ostream& os, vtkIndent indent);   
00074   
00076 
00077   void SetWholeExtent(int extent[6]);
00078   void SetWholeExtent(int minX, int maxX, int minY, int maxY, 
00079                             int minZ, int maxZ);
00080   void GetWholeExtent(int extent[6]);
00081   int *GetWholeExtent() {return this->WholeExtent;}
00083   
00085 
00086   vtkSetVector3Macro(Center, int);
00087   vtkGetVector3Macro(Center, int);
00089   
00091 
00092   vtkSetVector3Macro(Size, int);
00093   vtkGetVector3Macro(Size, int);
00095   
00097 
00098   vtkSetMacro(WindowingType,int);
00099   vtkGetMacro(WindowingType,int);
00100   void SetWindowingTypeToRectangular() {this->SetWindowingType(VTK_RECTANGULAR);};
00101   void SetWindowingTypeToBartlett() {this->SetWindowingType(VTK_BARTLETT);};
00102   void SetWindowingTypeToHanning() {this->SetWindowingType(VTK_HANNING);};
00103   void SetWindowingTypeToHamming() {this->SetWindowingType(VTK_HAMMING);};
00104   void SetWindowingTypeToBlackman() {this->SetWindowingType(VTK_BLACKMAN);};
00105   void SetWindowingTypeToFermi() {this->SetWindowingType(VTK_FERMI);};
00106   void SetWindowingTypeToWelch() {this->SetWindowingType(VTK_WELCH);};
00107   void SetWindowingTypeToBlackmanHarrisOne() {this->SetWindowingType(VTK_BLACKMAN_HARRIS_ONE);};
00108   void SetWindowingTypeToBlackmanHarrisTwo() {this->SetWindowingType(VTK_BLACKMAN_HARRIS_TWO);};
00109   void SetWindowingTypeToBlackmanHarrisThree() {this->SetWindowingType(VTK_BLACKMAN_HARRIS_THREE);};
00110   void SetWindowingTypeToCauchy() {this->SetWindowingType(VTK_CAUCHY);};
00111   void SetWindowingTypeToBohman() {this->SetWindowingType(VTK_BOHMAN);};
00112   void SetWindowingTypeToFlattop() {this->SetWindowingType(VTK_FLATTOP);};
00113   void SetWindowingTypeToKaiserBessel() {this->SetWindowingType(VTK_KAISER_BESSEL);};
00114   void SetWindowingTypeToHanningPoisson() {this->SetWindowingType(VTK_HANNING_POISSON);};
00115   void SetWindowingTypeToGaussian() {this->SetWindowingType(VTK_GAUSSIAN);};
00116   void SetWindowingTypeToKaiser() {this->SetWindowingType(VTK_KAISER);};
00118   
00120 
00121   vtkSetMacro(FermiCutoff,double);
00122   vtkGetMacro(FermiCutoff,double);
00124   
00126 
00127   vtkSetMacro(FermiPass,double);
00128   vtkGetMacro(FermiPass,double);
00130   
00132 
00133   vtkSetMacro(CauchyAlpha,double);
00134   vtkGetMacro(CauchyAlpha,double);
00136   
00138 
00139   vtkSetMacro(HanningPoissonAlpha,double);
00140   vtkGetMacro(HanningPoissonAlpha,double);
00142   
00144 
00145   vtkSetMacro(GaussianVariance,double);
00146   vtkGetMacro(GaussianVariance,double);
00148   
00150 
00151   vtkSetMacro(KaiserCutoff,double);
00152   vtkGetMacro(KaiserCutoff,double);
00154   
00156 
00157   vtkSetMacro(KaiserPass,double);
00158   vtkGetMacro(KaiserPass,double);
00160   
00164   void SetSizeRelativeToKaiserDelta(double delta, int dimensions);
00165   
00167 
00168   vtkSetMacro(OutputScalarType,int);
00169   vtkGetMacro(OutputScalarType,int);
00170   void SetOutputScalarTypeToFloat()
00171     {this->SetOutputScalarType(VTK_FLOAT);}
00172   void SetOutputScalarTypeToDouble()
00173     {this->SetOutputScalarType(VTK_DOUBLE);}
00175    
00177 
00178   vtkSetMacro(OutputNumberOfScalarComponents,int);
00179   vtkGetMacro(OutputNumberOfScalarComponents,int);
00181    
00183 
00185   void SetDimensionality(int dim);
00186   vtkGetMacro(Dimensionality,int);
00188   
00189 protected:
00190   vtkImageWindowingSource();
00191   ~vtkImageWindowingSource();
00192 
00193   int Dimensionality;
00194   int WholeExtent[6];
00195   int Center[3];
00196   int Size[3];
00197   int OutputScalarType;
00198   int OutputNumberOfScalarComponents;
00199   int WindowingType;
00200   double FermiCutoff;
00201   double FermiPass;
00202   double CauchyAlpha;
00203   double HanningPoissonAlpha;
00204   double GaussianVariance;
00205   double KaiserCutoff;
00206   double KaiserPass;
00207   
00208   virtual int RequestInformation (vtkInformation *, 
00209                                   vtkInformationVector **, 
00210                                   vtkInformationVector *);
00211 
00212   virtual int RequestData(vtkInformation *, 
00213                           vtkInformationVector **, vtkInformationVector *);
00214                     
00215 private:
00216   vtkImageWindowingSource(const vtkImageWindowingSource&);  // Not implemented.
00217   void operator=(const vtkImageWindowingSource&);  // Not implemented.
00218 };
00219 
00220 
00221 #endif

Generated on Tue May 12 14:53:03 2009 for vtkCNMRRLibrary by  doxygen 1.4.7