00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00075 #ifndef __vtkSource_h
00076 #define __vtkSource_h
00077
00078 #include "vtkProcessObject.h"
00079 #include "vtkDataObject.h"
00080
00081 class VTK_COMMON_EXPORT vtkSource : public vtkProcessObject
00082 {
00083 public:
00084 static vtkSource *New();
00085
00086 vtkTypeMacro(vtkSource,vtkProcessObject);
00087 void PrintSelf(ostream& os, vtkIndent indent);
00088
00092 virtual void Update();
00093
00096 virtual void UpdateWholeExtent();
00097
00100 virtual void UpdateInformation();
00101
00102 virtual void PropagateUpdateExtent(vtkDataObject *output);
00103
00104 virtual void TriggerAsynchronousUpdate();
00105
00106 virtual void UpdateData(vtkDataObject *output);
00107
00111 virtual void ComputeInputUpdateExtents( vtkDataObject *output );
00112
00114
00116 virtual void SetReleaseDataFlag(int);
00117 virtual int GetReleaseDataFlag();
00118 vtkBooleanMacro(ReleaseDataFlag,int);
00120
00122 void UnRegister(vtkObject *o);
00123
00125 virtual int InRegisterLoop(vtkObject *);
00126
00128
00130 vtkDataObject **GetOutputs();
00131 vtkGetMacro(NumberOfOutputs,int);
00133
00137 void UnRegisterAllOutputs(void);
00138
00141 int GetOutputIndex(vtkDataObject *out);
00142
00144
00149 virtual void EnlargeOutputUpdateExtents(vtkDataObject *output);
00150 int LegacyHack;
00152
00153 protected:
00154 vtkSource();
00155 ~vtkSource();
00156
00158
00161 virtual void ExecuteData(vtkDataObject *vtkNotUsed(output)) {
00162 this->Execute(); };
00164
00166 virtual void Execute();
00167
00168
00169
00170 virtual void ExecuteInformation();
00171
00172
00173 void SetNumberOfOutputs(int num);
00174
00175
00176 vtkDataObject *GetOutput(int idx);
00177
00178
00179 virtual void SetNthOutput(int num, vtkDataObject *output);
00180 virtual void AddOutput(vtkDataObject *output);
00181 virtual void RemoveOutput(vtkDataObject *output);
00182
00183 vtkDataObject **Outputs;
00184 int NumberOfOutputs;
00185 int Updating;
00186
00187 vtkTimeStamp InformationTime;
00188 private:
00189 vtkSource(const vtkSource&);
00190 void operator=(const vtkSource&);
00191 };
00192
00193 #endif
00194
00195
00196