00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00051
#ifndef __vtkSource_h
00052
#define __vtkSource_h
00053
00054
#include "vtkProcessObject.h"
00055
00056
class vtkDataObject;
00057
class vtkErrorCode;
00058
00059 class VTK_COMMON_EXPORT vtkSource :
public vtkProcessObject
00060 {
00061
public:
00062 vtkTypeRevisionMacro(vtkSource,
vtkProcessObject);
00063
void PrintSelf(ostream& os,
vtkIndent indent);
00064
00068
virtual void Update();
00069
00072
virtual void UpdateWholeExtent();
00073
00076
virtual void UpdateInformation();
00077
00078
virtual void PropagateUpdateExtent(
vtkDataObject *output);
00079
00080
virtual void TriggerAsynchronousUpdate();
00081
00082
virtual void UpdateData(
vtkDataObject *output);
00083
00087
virtual void ComputeInputUpdateExtents(
vtkDataObject *output );
00088
00090
00092
virtual void SetReleaseDataFlag(
int);
00093
virtual int GetReleaseDataFlag();
00094 vtkBooleanMacro(ReleaseDataFlag,
int);
00096
00098
virtual void UnRegister(
vtkObjectBase *o);
00099
00101
virtual int InRegisterLoop(
vtkObject *);
00102
00104
00106
vtkDataObject **GetOutputs();
00107 vtkGetMacro(NumberOfOutputs,
int);
00109
00113
void UnRegisterAllOutputs(
void);
00114
00117
int GetOutputIndex(
vtkDataObject *out);
00118
00120
00122 vtkGetMacro( ErrorCode,
unsigned long );
00124
00125
protected:
00126 vtkSource();
00127 ~vtkSource();
00128
00130
00133 virtual void ExecuteData(
vtkDataObject *vtkNotUsed(output)) {
00134 this->Execute(); };
00136
00138
virtual void Execute();
00139
00140
00141
00142
virtual void ExecuteInformation();
00143
00144
00145
void SetNumberOfOutputs(
int num);
00146
00147
00148
vtkDataObject *GetOutput(
int idx);
00149
00150
00151
virtual void SetNthOutput(
int num,
vtkDataObject *output);
00152
virtual void AddOutput(
vtkDataObject *output);
00153
virtual void RemoveOutput(
vtkDataObject *output);
00154
00155 vtkDataObject **Outputs;
00156 int NumberOfOutputs;
00157 int Updating;
00158
00159 vtkTimeStamp InformationTime;
00160
00162
00164 vtkSetMacro( ErrorCode,
unsigned long );
00166
private:
00167 vtkSource(
const vtkSource&);
00168
void operator=(
const vtkSource&);
00169
00170
unsigned long ErrorCode;
00171 };
00172
00173
#endif
00174
00175
00176