dox/Imaging/vtkImagePRELUDE.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   vtkCNMRRLibrary
00004   Module:    $RCSfile: vtkImagePRELUDE.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 =========================================================================*/
00046 #ifndef __vtkImagePRELUDE_h
00047 #define __vtkImagePRELUDE_h
00048 
00049 #include "vtkThreadedImageAlgorithm.h"
00050 #include "vtkCNMRRImagingWin32Header.h"
00051 
00052 // Operation options.
00053 #define VTK_PRELUDE_UNWRAP_2D 0
00054 #define VTK_PRELUDE_UNWRAP_3D   1
00055 #define VTK_PRELUDE_UNWRAP_4D    2
00056 
00057 
00058 class VTK_CNMRR_IMAGING_EXPORT vtkImagePRELUDE : public vtkThreadedImageAlgorithm
00059 {
00060    public:
00061       static vtkImagePRELUDE *New();
00062       vtkTypeRevisionMacro(vtkImagePRELUDE,vtkThreadedImageAlgorithm);
00063       void PrintSelf(ostream& os, vtkIndent indent);
00064    
00066       void SetPhaseInput(vtkDataObject *in){ this->SetInput(0,in); }
00067       
00069          void SetPhaseLabelInput(vtkDataObject *in){ this->SetInput(1,in); }
00070       
00072 
00078       vtkSetMacro(NumberOfSlicesPerVolume,int);
00079       vtkGetMacro(NumberOfSlicesPerVolume,int);
00081       
00083 
00084       vtkSetMacro(UnwrapOperation,int);
00085       vtkGetMacro(UnwrapOperation,int);
00086       void SetUnwrapOperationTo2D() {this->SetUnwrapOperation(VTK_PRELUDE_UNWRAP_2D);};
00087       void SetUnwrapOperationTo3D() {this->SetUnwrapOperation(VTK_PRELUDE_UNWRAP_3D);};
00088       void SetUnwrapOperationTo4D() {this->SetUnwrapOperation(VTK_PRELUDE_UNWRAP_4D);};
00090       
00092 
00093       vtkSetMacro(DiagnosticMessages,int);
00094       vtkGetMacro(DiagnosticMessages,int);
00095       vtkBooleanMacro(DiagnosticMessages, int);
00097       
00099 
00101       virtual int SplitExtent(int splitExt[6], int startExt[6], 
00102                           int num, int total);
00104       
00105    
00106    protected:
00107 
00108       vtkImagePRELUDE();
00109       ~vtkImagePRELUDE(){};
00110          
00111       int DiagnosticMessages;
00112          
00113       int UnwrapOperation;
00114          
00115       int NumberOfSlicesPerVolume;
00116          
00117       // These are called by the superclass.
00118       virtual int RequestUpdateExtent (vtkInformation *, 
00119                                    vtkInformationVector **, 
00120                                    vtkInformationVector *);
00121       virtual int RequestInformation (vtkInformation*,
00122                              vtkInformationVector**,
00123                              vtkInformationVector*);
00124       virtual void ThreadedRequestData(vtkInformation *request, 
00125                                    vtkInformationVector **inputVector, 
00126                                    vtkInformationVector *outputVector,
00127                                    vtkImageData ***inData, 
00128                                    vtkImageData **outData,
00129                                    int extent[6], int threadId);
00130    
00131    private:
00132       vtkImagePRELUDE(const vtkImagePRELUDE&);  // Not implemented.
00133       void operator=(const vtkImagePRELUDE&);  // Not implemented.
00134 };
00135 
00136 #endif

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