VTK/Executives: Difference between revisions

From KitwarePublic
< VTK
Jump to navigationJump to search
No edit summary
(Redirected page to VTK/Tutorials/Executives)
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Executives:==
#REDIRECT [[VTK/Tutorials/Executives]]
 
The class hierarchy for the mainstream VTK executives is as follows.
 
<graphviz>
digraph G {
fontsize = 12
fontname = Helvetica
node [ fontsize = 9 fontname = Helvetica shape = record height = 0.1 ]
edge [ fontsize = 9 fontname = Helvetica ]
 
vtkExecutive -> vtkDemandDrivenPipeline -> vtkStreamingDemandDrivenPipeline -> vtkCompositeDataPipeline
[arrowhead=none arrowtail=normal];
}
 
</graphviz>
 
Below, we provide some information about these executives that is not necessarily found in VTK User's Guide. If you are not familiar with VTK's pipeline execution model, you should read the Managing Pipeline Execution chapter in the book.
 
=== vtkExecutive ===
This class is the superclass for all executives. It is pretty abstract and provides little functionality. Important ones:
* An executive has an algorithm
* An executive manages (i.e. has) the input and output information objects of the algorithm. This means that the pipeline graph is stored by a set of executives not algorithms
 
The most important function is vtkExecutive is ProcessRequest().
 
=== vtkDemandDrivenPipeline ===
Implements REQUEST_DATA_OBJECT, REQUEST_INFORMATION and REQUEST_DATA passes.
 
=== vtkStreamingDemandDrivenPipeline ===
Implements REQUEST_UPDATE_EXTENT and REQUEST_UPDATE_EXTENT_INFORMATION (used for dynamic streaming) passes. Introduces concept of extents for structured datasets and piece for unstructured datasets and time steps. Support for extent translator.
 
Talk about streaming
Talk about parallel processing
 
Streaming in filters (vtkTemporalStatistics - CONTINUE_EXECUTING()), streaming outside filters (vtkPolyDataMapper, looping at the sink)
 
=== vtkCompositeDataPipeline ===
Adds support for iterating over time steps and multiple blocks:
* If a filter can only handle single block datasets (e.g. vtkDataSet, vtkGraph, ...), this executive can iterate over the blocks of a multi-block dataset and invoke the filter for each block
* If a filter can only handle one time step and the input has multiple time step, this executive can iterate over the time steps and invoke the filter for each
* If a reader can only provide one time step at a time and downstream requested multiple time steps, this executive can ask the reader to read each time step and collect the result in a temporal dataset

Latest revision as of 21:33, 12 June 2011