00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00047
#ifndef __vtkProcessObject_h
00048
#define __vtkProcessObject_h
00049
00050
#include "vtkObject.h"
00051
00052
class vtkDataObject;
00053
00054 class VTK_COMMON_EXPORT vtkProcessObject :
public vtkObject
00055 {
00056
public:
00057 vtkTypeRevisionMacro(vtkProcessObject,
vtkObject);
00058
void PrintSelf(ostream& os,
vtkIndent indent);
00059
00061
00063 vtkSetMacro(AbortExecute,
int);
00064 vtkGetMacro(AbortExecute,
int);
00065 vtkBooleanMacro(AbortExecute,
int);
00067
00069
00070 vtkSetClampMacro(Progress,
double,0.0,1.0);
00071 vtkGetMacro(Progress,
double);
00073
00077
void UpdateProgress(
double amount);
00078
00080
00082 vtkSetStringMacro(ProgressText);
00083 vtkGetStringMacro(ProgressText);
00085
00086
00087 int AbortExecute;
00088
00090
00092 vtkDataObject **GetInputs() {
return this->Inputs;}
00093 vtkGetMacro(NumberOfInputs,
int);
00095
00098
void SqueezeInputArray();
00099
00101
void RemoveAllInputs();
00102
00104
00106 vtkGetMacro( ErrorCode,
unsigned long );
00108
00109
protected:
00110 vtkProcessObject();
00111 ~vtkProcessObject();
00112
00113
00114 double Progress;
00115 char *ProgressText;
00116
00117 int NumberOfInputs;
00118 int NumberOfRequiredInputs;
00119 vtkDataObject **Inputs;
00120
00121
00122 vtkDataObject **SortedInputs;
00123
00124
00125 vtkDataObject **SortedInputs2;
00126
void SortInputsByLocality();
00127
00128
void SortMerge(
vtkDataObject **a1,
int l1,
00129
vtkDataObject **a2,
int l2,
00130
vtkDataObject **results);
00131
00132
00133
void SetNumberOfInputs(
int num);
00134
00135
00136
virtual void SetNthInput(
int num,
vtkDataObject *input);
00137
virtual void AddInput(
vtkDataObject *input);
00138
virtual void RemoveInput(
vtkDataObject *input);
00139
00141
00143 vtkSetMacro( ErrorCode,
unsigned long );
00144 unsigned long ErrorCode;
00146
00147
private:
00148 vtkProcessObject(
const vtkProcessObject&);
00149
void operator=(
const vtkProcessObject&);
00150 };
00151
00152
#endif
00153