29 #ifndef __vtkDemandDrivenPipeline_h
30 #define __vtkDemandDrivenPipeline_h
32 #include "vtkCommonExecutionModelModule.h"
35 class vtkAbstractArray;
37 class vtkDataSetAttributes;
38 class vtkDemandDrivenPipelineInternals;
41 class vtkInformationIntegerKey;
42 class vtkInformationVector;
43 class vtkInformationKeyVectorKey;
44 class vtkInformationUnsignedLongKey;
51 void PrintSelf(ostream& os, vtkIndent indent);
57 vtkInformationVector** inInfo,
58 vtkInformationVector* outInfo);
65 vtkInformationVector** inInfoVec,
66 vtkInformationVector* outInfoVec,
67 int requestFromOutputPort,
68 unsigned long* mtime);
75 virtual int Update(
int port);
80 vtkGetMacro(PipelineMTime,
unsigned long);
85 virtual int SetReleaseDataFlag(
int port,
int n);
88 virtual int GetReleaseDataFlag(
int port);
91 virtual int UpdatePipelineMTime();
104 virtual int UpdateData(
int outputPort);
107 static vtkInformationRequestKey* REQUEST_DATA_OBJECT();
111 static vtkInformationRequestKey* REQUEST_INFORMATION();
114 static vtkInformationRequestKey* REQUEST_DATA();
118 static vtkInformationRequestKey* REQUEST_DATA_NOT_GENERATED();
122 static vtkInformationIntegerKey* RELEASE_DATA();
127 static vtkInformationIntegerKey* DATA_NOT_GENERATED();
136 static vtkInformationIntegerKey* REQUEST_REGENERATE_INFORMATION();
143 virtual int ExecuteDataObject(vtkInformation* request,
144 vtkInformationVector** inInfo,
145 vtkInformationVector* outInfo);
146 virtual int ExecuteInformation(vtkInformation* request,
147 vtkInformationVector** inInfo,
148 vtkInformationVector* outInfo);
149 virtual int ExecuteData(vtkInformation* request,
150 vtkInformationVector** inInfo,
151 vtkInformationVector* outInfo);
159 virtual int CheckDataObject(
int port, vtkInformationVector* outInfo);
163 int InputCountIsValid(vtkInformationVector **);
164 int InputCountIsValid(
int port,vtkInformationVector **);
165 int InputTypeIsValid(vtkInformationVector **);
166 int InputTypeIsValid(
int port,vtkInformationVector **);
167 virtual int InputTypeIsValid(
int port,
int index,vtkInformationVector **);
168 int InputFieldsAreValid(vtkInformationVector **);
169 int InputFieldsAreValid(
int port,vtkInformationVector **);
170 virtual int InputFieldsAreValid(
int port,
int index,vtkInformationVector **);
173 int DataSetAttributeExists(vtkDataSetAttributes* dsa, vtkInformation* field);
174 int FieldArrayExists(vtkFieldData* data, vtkInformation* field);
175 int ArrayIsValid(vtkAbstractArray* array, vtkInformation* field);
178 int InputIsOptional(
int port);
179 int InputIsRepeatable(
int port);
182 virtual int NeedToExecuteData(
int outputPort,
183 vtkInformationVector** inInfoVec,
184 vtkInformationVector* outInfoVec);
187 virtual void ExecuteDataStart(vtkInformation* request,
188 vtkInformationVector** inInfoVec,
189 vtkInformationVector* outInfoVec);
190 virtual void ExecuteDataEnd(vtkInformation* request,
191 vtkInformationVector** inInfoVec,
192 vtkInformationVector* outInfoVec);
193 virtual void MarkOutputsGenerated(vtkInformation* request,
194 vtkInformationVector** inInfoVec,
195 vtkInformationVector* outInfoVec);
vtkInformation * DataRequest
virtual int UpdateDataObject()=0
unsigned long PipelineMTime
virtual int UpdateInformation()
vtkTimeStamp DataObjectTime
Superclass for all pipeline executives in VTK.
vtkInformation * InfoRequest
void PrintSelf(ostream &os, vtkIndent indent)
vtkTimeStamp InformationTime
vtkInformation * DataObjectRequest
virtual int ComputePipelineMTime(vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int requestFromOutputPort, unsigned long *mtime)
Executive supporting on-demand execution.
Executive supporting composite datasets.
virtual void ResetPipelineInformation(int port, vtkInformation *)=0
general representation of visualization data
vtkDemandDrivenPipeline()
virtual int ProcessRequest(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo)