dox/Imaging/vtkImageReducedFFT.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   vtkCNMRRLibrary
00004   Module:    $RCSfile: vtkImageReducedFFT.h,v $
00005 
00006   Copyright  2005  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        
00028   Adapted from vtkImageFFT.h
00029 
00030 =========================================================================*/
00055 #ifndef __vtkImageReducedFFT_h
00056 #define __vtkImageReducedFFT_h
00057 
00058 // Operation options.
00059 #define VTK_PRUNEDFFT_SAMPLED        0
00060 #define VTK_PRUNEDFFT_COPIED         1
00061 
00062 #include "vtkImageMRIFourierFilter.h"
00063 #include "vtkCNMRRImagingWin32Header.h"
00064 
00065 class VTK_CNMRR_IMAGING_EXPORT vtkImageReducedFFT : public vtkImageMRIFourierFilter
00066 {
00067    public:
00068       static vtkImageReducedFFT *New();
00069       vtkTypeRevisionMacro(vtkImageReducedFFT,vtkImageMRIFourierFilter);
00070       
00072 
00073       vtkSetMacro(IFFT, int);
00074       vtkGetMacro(IFFT, int);
00075       vtkBooleanMacro(IFFT, int);
00077    
00079 
00080       vtkSetMacro(Operation,int);
00081       vtkGetMacro(Operation,int);
00082       void SetOperationToPrunedFFTSampled() {this->SetOperation(VTK_PRUNEDFFT_SAMPLED);};
00083       void SetOperationToPrunedFFTCopied() {this->SetOperation(VTK_PRUNEDFFT_COPIED);};
00085    
00087 
00090       vtkSetMacro(PrunedLength, int);
00091       vtkGetMacro(PrunedLength, int);
00093       
00095 
00103       int SplitExtent(int splitExt[6], int startExt[6], 
00104             int num, int total);
00106             
00107    
00108    protected:
00109       vtkImageReducedFFT();
00110       ~vtkImageReducedFFT() {};
00111          
00112       int PrunedLength;
00113       int IFFT;
00114       int Operation;
00115       
00116       virtual int IterativeRequestInformation(vtkInformation* in,
00117                                           vtkInformation* out);
00118       virtual int IterativeRequestUpdateExtent(vtkInformation* in,
00119                                            vtkInformation* out);
00120       
00121       void ThreadedExecute(vtkImageData *inData, vtkImageData *outData,
00122                         int outExt[6], int threadId);
00123    private:
00124       vtkImageReducedFFT(const vtkImageReducedFFT&);  // Not implemented.
00125       void operator=(const vtkImageReducedFFT&);  // Not implemented.
00126 };
00127 
00128 #endif

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