dox/Common/vtkProcessObject.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00055 #ifndef __vtkProcessObject_h
00056 #define __vtkProcessObject_h
00057
00058 #include "vtkObject.h"
00059
00060 class vtkDataObject;
00061
00062 class VTK_COMMON_EXPORT vtkProcessObject : public vtkObject
00063 {
00064 public:
00065 vtkTypeRevisionMacro(vtkProcessObject,vtkObject);
00066 void PrintSelf(ostream& os, vtkIndent indent);
00067
00069 void SetStartMethod(void (*f)(void *), void *arg);
00070
00072 void SetProgressMethod(void (*f)(void *), void *arg);
00073
00075 void SetEndMethod(void (*f)(void *), void *arg);
00076
00078 void SetStartMethodArgDelete(void (*f)(void *));
00079
00081 void SetProgressMethodArgDelete(void (*f)(void *));
00082
00084 void SetEndMethodArgDelete(void (*f)(void *));
00085
00087
00089 vtkSetMacro(AbortExecute,int);
00090 vtkGetMacro(AbortExecute,int);
00091 vtkBooleanMacro(AbortExecute,int);
00093
00095
00096 vtkSetClampMacro(Progress,float,0.0f,1.0f);
00097 vtkGetMacro(Progress,float);
00099
00103 void UpdateProgress(float amount);
00104
00106
00108 vtkSetStringMacro(ProgressText);
00109 vtkGetStringMacro(ProgressText);
00111
00112
00113 int AbortExecute;
00114
00116
00118 vtkDataObject **GetInputs() {return this->Inputs;}
00119 vtkGetMacro(NumberOfInputs,int);
00121
00124 void SqueezeInputArray();
00125
00127 void RemoveAllInputs();
00128
00129 protected:
00130 vtkProcessObject();
00131 ~vtkProcessObject();
00132
00133
00134 unsigned long StartTag;
00135 unsigned long ProgressTag;
00136 unsigned long EndTag;
00137 float Progress;
00138 char *ProgressText;
00139
00140 int NumberOfInputs;
00141 int NumberOfRequiredInputs;
00142 vtkDataObject **Inputs;
00143
00144
00145 vtkDataObject **SortedInputs;
00146
00147
00148 vtkDataObject **SortedInputs2;
00149 void SortInputsByLocality();
00150
00151 void SortMerge(vtkDataObject **a1, int l1,
00152 vtkDataObject **a2, int l2,
00153 vtkDataObject **results);
00154
00155
00156 void SetNumberOfInputs(int num);
00157
00158
00159 virtual void SetNthInput(int num, vtkDataObject *input);
00160 virtual void AddInput(vtkDataObject *input);
00161 virtual void RemoveInput(vtkDataObject *input);
00162
00163 private:
00164 vtkProcessObject(const vtkProcessObject&);
00165 void operator=(const vtkProcessObject&);
00166 };
00167
00168 #endif
00169