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