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
00046 #ifndef __vtkImagePRELUDE_h
00047 #define __vtkImagePRELUDE_h
00048
00049 #include "vtkThreadedImageAlgorithm.h"
00050 #include "vtkCNMRRImagingWin32Header.h"
00051
00052
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
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&);
00133 void operator=(const vtkImagePRELUDE&);
00134 };
00135
00136 #endif