Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
Filtering/vtkImageMultipleInputFilter.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00041 #ifndef __vtkImageMultipleInputFilter_h
00042 #define __vtkImageMultipleInputFilter_h
00043
00044 #include "vtkImageSource.h"
00045
00046 class vtkMultiThreader;
00047
00048 class VTK_FILTERING_EXPORT vtkImageMultipleInputFilter : public vtkImageSource
00049 {
00050 public:
00051 vtkTypeRevisionMacro(vtkImageMultipleInputFilter,vtkImageSource);
00052 void PrintSelf(ostream& os, vtkIndent indent);
00053
00055 virtual void SetInput(int num, vtkImageData *input);
00056
00058
00060 virtual void AddInput(vtkImageData *input);
00061 virtual void RemoveInput(vtkImageData *input);
00063
00065
00066 vtkImageData *GetInput(int num);
00067 vtkImageData *GetInput();
00069
00071
00074 vtkSetMacro(Bypass,int);
00075 vtkGetMacro(Bypass,int);
00076 vtkBooleanMacro(Bypass,int);
00078
00080
00081 vtkSetClampMacro( NumberOfThreads, int, 1, VTK_MAX_THREADS );
00082 vtkGetMacro( NumberOfThreads, int );
00084
00086
00087 virtual int SplitExtent(int splitExt[6], int startExt[6],
00088 int num, int total);
00090
00092
00095 virtual void ThreadedExecute(vtkImageData **inDatas,
00096 vtkImageData *outData,
00097 int extent[6], int threadId);
00099
00100
00101
00102 protected:
00103 vtkImageMultipleInputFilter();
00104 ~vtkImageMultipleInputFilter();
00105
00106 vtkMultiThreader *Threader;
00107 int Bypass;
00108 int NumberOfThreads;
00109
00110 void ComputeInputUpdateExtents( vtkDataObject *output );
00111
00112 virtual void ComputeInputUpdateExtent( int inExt[6],
00113 int outExt[6],
00114 int whichInput );
00115
00116
00117 void ExecuteData(vtkDataObject *output);
00118
00119
00120 void ExecuteInformation();
00121
00122 virtual void ExecuteInformation(vtkImageData **, vtkImageData *) {};
00123
00124 private:
00125
00126 void AddInput(vtkDataObject *)
00127 { vtkErrorMacro( << "AddInput() must be called with a vtkImageData not a vtkDataObject."); };
00128 void RemoveInput(vtkDataObject *)
00129 { vtkErrorMacro( << "RemoveInput() must be called with a vtkImageData not a vtkDataObject."); };
00130 private:
00131 vtkImageMultipleInputFilter(const vtkImageMultipleInputFilter&);
00132 void operator=(const vtkImageMultipleInputFilter&);
00133 };
00134
00135 #endif
00136
00137
00138
00139
00140
00141
00142