31 #ifndef __vtkStreamingDemandDrivenPipeline_h
32 #define __vtkStreamingDemandDrivenPipeline_h
34 #include "vtkCommonExecutionModelModule.h"
37 #define VTK_UPDATE_EXTENT_COMBINE 1
38 #define VTK_UPDATE_EXTENT_REPLACE 2
41 class vtkInformationDoubleKey;
42 class vtkInformationDoubleVectorKey;
43 class vtkInformationIdTypeKey;
44 class vtkInformationIntegerKey;
45 class vtkInformationIntegerVectorKey;
46 class vtkInformationObjectBaseKey;
47 class vtkInformationStringKey;
48 class vtkInformationStringKey;
49 class vtkInformationUnsignedLongKey;
56 void PrintSelf(ostream& os, vtkIndent indent);
62 vtkInformationVector** inInfo,
63 vtkInformationVector* outInfo);
69 virtual int Update(
int port);
70 virtual int UpdateWholeExtent();
75 int PropagateUpdateExtent(
int outputPort);
81 int PropagateTime(
int outputPort);
82 int UpdateTimeDependentInformation(
int outputPort);
91 int SetMaximumNumberOfPieces(
int port,
int n);
92 static int SetMaximumNumberOfPieces(vtkInformation *,
int n);
93 int GetMaximumNumberOfPieces(
int port);
94 static int GetMaximumNumberOfPieces(vtkInformation *);
101 static int SetWholeExtent(vtkInformation *,
int extent[6]);
102 static void GetWholeExtent(vtkInformation *,
int extent[6]);
103 static int* GetWholeExtent(vtkInformation *);
111 int SetUpdateExtentToWholeExtent(
int port);
112 static int SetUpdateExtentToWholeExtent(vtkInformation *);
117 int SetUpdateExtent(
int port,
int extent[6]);
118 int SetUpdateExtent(
int port,
int x0,
int x1,
int y0,
int y1,
int z0,
int z1);
119 static int SetUpdateExtent(vtkInformation *,
int extent[6]);
120 static void GetUpdateExtent(vtkInformation *,
int extent[6]);
121 static int* GetUpdateExtent(vtkInformation *);
127 int SetUpdateExtent(
int port,
128 int piece,
int numPieces,
int ghostLevel);
129 static int SetUpdateExtent(vtkInformation *,
130 int piece,
int numPieces,
int ghostLevel);
131 static int SetUpdatePiece(vtkInformation *,
int piece);
132 static int GetUpdatePiece(vtkInformation *);
133 static int SetUpdateNumberOfPieces(vtkInformation *,
int n);
134 static int GetUpdateNumberOfPieces(vtkInformation *);
135 static int SetUpdateGhostLevel(vtkInformation *,
int n);
136 static int GetUpdateGhostLevel(vtkInformation *);
137 int SetUpdateResolution(
int port,
double r);
138 int SetUpdateResolution(vtkInformation *,
double r);
139 double GetUpdateResolution(vtkInformation *);
144 int SetUpdateTimeStep(
int port,
double time);
145 static int SetUpdateTimeStep(vtkInformation *,
double time);
155 int SetRequestExactExtent(
int port,
int flag);
156 int GetRequestExactExtent(
int port);
172 int SetWholeBoundingBox(
int port,
double bb[6]);
173 void GetWholeBoundingBox(
int port,
double bb[6]);
174 double* GetWholeBoundingBox(
int port);
181 int SetPieceBoundingBox(
int port,
double bb[6]);
182 void GetPieceBoundingBox(
int port,
double bb[6]);
183 double* GetPieceBoundingBox(
int port);
187 static vtkInformationRequestKey* REQUEST_UPDATE_EXTENT();
190 static vtkInformationRequestKey* REQUEST_UPDATE_TIME();
193 static vtkInformationRequestKey* REQUEST_TIME_DEPENDENT_INFORMATION();
199 static vtkInformationRequestKey* REQUEST_UPDATE_EXTENT_INFORMATION();
200 static vtkInformationRequestKey* REQUEST_MANAGE_INFORMATION();
204 static vtkInformationRequestKey* REQUEST_RESOLUTION_PROPAGATE();
208 static vtkInformationIntegerKey* CONTINUE_EXECUTING();
211 static vtkInformationObjectBaseKey* EXTENT_TRANSLATOR();
215 static vtkInformationIntegerKey* UPDATE_EXTENT_INITIALIZED();
216 static vtkInformationIntegerVectorKey* UPDATE_EXTENT();
217 static vtkInformationIntegerKey* UPDATE_PIECE_NUMBER();
218 static vtkInformationIntegerKey* UPDATE_NUMBER_OF_PIECES();
219 static vtkInformationIntegerKey* UPDATE_NUMBER_OF_GHOST_LEVELS();
223 static vtkInformationIntegerKey* UPDATE_AMR_LEVEL();
227 static vtkInformationIntegerVectorKey* COMBINED_UPDATE_EXTENT();
231 static vtkInformationIntegerKey* UPDATE_EXTENT_TRANSLATED();
234 static vtkInformationIntegerVectorKey* WHOLE_EXTENT();
239 static vtkInformationIntegerKey* UNRESTRICTED_UPDATE_EXTENT();
243 static vtkInformationIntegerKey* MAXIMUM_NUMBER_OF_PIECES();
247 static vtkInformationDoubleVectorKey* WHOLE_BOUNDING_BOX();
251 static vtkInformationDoubleVectorKey* PIECE_BOUNDING_BOX();
254 static vtkInformationDoubleVectorKey* PIECE_NORMAL();
257 static vtkInformationIntegerKey* EXACT_EXTENT();
260 static vtkInformationDoubleVectorKey* TIME_STEPS();
263 static vtkInformationDoubleVectorKey* TIME_RANGE();
267 static vtkInformationStringKey* TIME_LABEL_ANNOTATION();
270 static vtkInformationDoubleKey* UPDATE_TIME_STEP();
275 static vtkInformationIntegerKey* TIME_DEPENDENT_INFORMATION();
279 static vtkInformationDoubleKey* PRIORITY();
283 static vtkInformationUnsignedLongKey* ORIGINAL_NUMBER_OF_CELLS();
287 static vtkInformationDoubleKey* UPDATE_RESOLUTION();
291 static vtkInformationIntegerKey* REMOVE_ATTRIBUTE_INFORMATION();
301 static vtkInformationIntegerKey* FAST_PATH_FOR_TEMPORAL_DATA();
304 static vtkInformationStringKey* FAST_PATH_OBJECT_TYPE();
306 static vtkInformationStringKey* FAST_PATH_ID_TYPE();
308 static vtkInformationIdTypeKey* FAST_PATH_OBJECT_ID();
312 static vtkInformationDoubleVectorKey *BOUNDS();
322 return this->ComputePriority(0);
324 virtual double ComputePriority(
int port);
335 virtual void ResetUpdateInformation(vtkInformation* request,
336 vtkInformationVector** inInfoVec,
337 vtkInformationVector* outInfoVec);
347 static vtkInformationDoubleKey* PREVIOUS_UPDATE_TIME_STEP();
352 static vtkInformationIdTypeKey* PREVIOUS_FAST_PATH_OBJECT_ID();
353 static vtkInformationStringKey* PREVIOUS_FAST_PATH_OBJECT_TYPE();
354 static vtkInformationStringKey* PREVIOUS_FAST_PATH_ID_TYPE();
358 virtual int NeedToExecuteBasedOnTime(vtkInformation* outInfo,
362 virtual int NeedToExecuteBasedOnFastPathData(vtkInformation* outInfo);
367 vtkInformationVector** inInfoVec,
368 vtkInformationVector* outInfoVec);
372 vtkInformationVector** inInfoVec,
373 vtkInformationVector* outInfoVec);
376 virtual int VerifyOutputInformation(
int outputPort,
377 vtkInformationVector** inInfoVec,
378 vtkInformationVector* outInfoVec);
383 vtkInformationVector** inInfoVec,
384 vtkInformationVector* outInfoVec);
388 vtkInformationVector** inInfoVec,
389 vtkInformationVector* outInfoVec);
391 vtkInformationVector** inInfoVec,
392 vtkInformationVector* outInfoVec);
396 vtkInformationVector** inInfoVec,
397 vtkInformationVector* outInfoVec);
virtual void ResetPipelineInformation(int, vtkInformation *)
virtual int ProcessRequest(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo)
Generates a structured extent from unstructured.
virtual void MarkOutputsGenerated(vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
int LastPropogateUpdateExtentShortCircuited
virtual void ExecuteDataStart(vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
virtual int ExecuteInformation(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo)
Executive supporting on-demand execution.
virtual void CopyDefaultInformation(vtkInformation *request, int direction, vtkInformationVector **inInfo, vtkInformationVector *outInfo)
virtual int NeedToExecuteData(int outputPort, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
vtkInformation * UpdateExtentRequest
static vtkDemandDrivenPipeline * New()
Executive supporting partial updates.
void PrintSelf(ostream &os, vtkIndent indent)
virtual void ExecuteDataEnd(vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
general representation of visualization data