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
00051 #ifndef __vtkImageFindPhaseLabels_h
00052 #define __vtkImageFindPhaseLabels_h
00053
00054
00055 #include "vtkThreadedImageAlgorithm.h"
00056 #include "vtkCNMRRImagingWin32Header.h"
00057
00058
00059 #define VTK_FIND_LABELS_HYBRID2D 0
00060 #define VTK_FIND_LABELS_2D 1
00061 #define VTK_FIND_LABELS_3D 2
00062
00063 class VTK_CNMRR_IMAGING_EXPORT vtkImageFindPhaseLabels : public vtkThreadedImageAlgorithm
00064 {
00065 public:
00066 static vtkImageFindPhaseLabels *New();
00067 vtkTypeRevisionMacro(vtkImageFindPhaseLabels,vtkThreadedImageAlgorithm);
00068 void PrintSelf(ostream& os, vtkIndent indent);
00069
00071 void SetPhaseInput(vtkDataObject *in){ this->SetInput(0,in); }
00072
00074 void SetMaskInput(vtkDataObject *in){ this->SetInput(1,in); }
00075
00077
00078 vtkSetMacro(NumPhaseSplit,int);
00079 vtkGetMacro(NumPhaseSplit,int);
00081
00083
00087 vtkSetMacro(NumberOfSlicesPerVolume,int);
00088 vtkGetMacro(NumberOfSlicesPerVolume,int);
00090
00092
00093 vtkSetMacro(LabelOperation,int);
00094 vtkGetMacro(LabelOperation,int);
00095 void SetLabelOperationToHybrid2D() {this->SetLabelOperation(VTK_FIND_LABELS_HYBRID2D);};
00096 void SetLabelOperationTo2D() {this->SetLabelOperation(VTK_FIND_LABELS_2D);};
00097 void SetLabelOperationTo3D() {this->SetLabelOperation(VTK_FIND_LABELS_3D);};
00099
00101
00102 vtkSetMacro(DiagnosticMessages,int);
00103 vtkGetMacro(DiagnosticMessages,int);
00104 vtkBooleanMacro(DiagnosticMessages, int);
00106
00108
00110 virtual int SplitExtent(int splitExt[6], int startExt[6],
00111 int num, int total);
00113
00114 protected:
00115 vtkImageFindPhaseLabels();
00116 ~vtkImageFindPhaseLabels(){};
00117
00118 int NumPhaseSplit;
00119
00120 int NumberOfSlicesPerVolume;
00121
00122 int LabelOperation;
00123
00124 int DiagnosticMessages;
00125
00126 virtual int RequestUpdateExtent(vtkInformation*,
00127 vtkInformationVector**,
00128 vtkInformationVector*);
00129 virtual int RequestInformation (vtkInformation*,
00130 vtkInformationVector**,
00131 vtkInformationVector*);
00132 virtual void ThreadedRequestData(vtkInformation *request,
00133 vtkInformationVector **inputVector,
00134 vtkInformationVector *outputVector,
00135 vtkImageData ***inData,
00136 vtkImageData **outData,
00137 int extent[6], int threadId);
00138 virtual int FillInputPortInformation(int port, vtkInformation* info);
00139
00140 private:
00141 vtkImageFindPhaseLabels(const vtkImageFindPhaseLabels&);
00142 void operator=(const vtkImageFindPhaseLabels&);
00143 };
00144
00145 #endif