00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00043 #ifndef __vtkImageWindowingSource_h
00044 #define __vtkImageWindowingSource_h
00045
00046
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&);
00217 void operator=(const vtkImageWindowingSource&);
00218 };
00219
00220
00221 #endif