Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

vtkCompositeDataPipeline Class Reference

#include <vtkCompositeDataPipeline.h>

Inheritance diagram for vtkCompositeDataPipeline:

Inheritance graph
[legend]
Collaboration diagram for vtkCompositeDataPipeline:

Collaboration graph
[legend]
List of all members.

Detailed Description

Executive supporting composite datasets.

vtkCompositeDataPipeline is an executive that supports the processing of composite dataset. It supports algorithms that are aware of composite dataset as well as those that are not. Portions of the pipeline that are note composite dataset-aware are looped by the next consumer that is composite dataset-aware. Type checking is performed at run time. Algorithms that are not composite dataset-aware have to support all dataset types contained in the composite dataset. The pipeline execution can be summarized as follows:

REQUEST_INFORMATION: The producers have to provide information about the contents of the composite dataset in this pass. This is accomplished by creating and populating a vtkHierarchicalDataInformation and setting it using the COMPOSITE_DATA_INFORMATION() key in the output information vector. Sources that can produce more than one piece (note that a piece is different than a block; each piece consistes of 0 or more blocks) should set MAXIMUM_NUMBER_OF_PIECES to -1.

REQUEST_UPDATE_EXTENT: This pass is identical to the one implemented in vtkStreamingDemandDrivenPipeline

BEGIN_LOOP: The source is told that looping is about to start. The source has to perform "extent translation". This is the process by which the piece request is converted to a block request. This is done by adding a MARKED_FOR_UPDATE() key to the appropriate blocks in UPDATE_BLOCKS().

REQUEST_DATA: This is where the algorithms execute. If a composite data algorithm is consuming the output of a simple data algorithm, the executive will execute the streaming demand driven pipeline passes for each block:

 for each block
    REQUEST_PIPELINE_MODIFIED_TIME()
    REQUEST_DATA_OBJECT()
    REQUEST_INFORMATION()
    REQUEST_DATA()
 
The request passed to these passes will contain a LEVEL() and INDEX() key of each block to be updated. Shallow copies of individual blocks are added to the composite input of the algorithm. Finally, the request is passed to the algorithm. If the algorithm it points to is simple, the executive will also call it on each block and collect the results as the output. Furthermore, if the vtkCompositeDataPipeline is assigned to a simple filter, it will invoke the vtkStreamingDemandDrivenPipeline passes in a loop, passing a different block each time and will collect the results in a composite dataset (vtkHierarchicalDataSet).
See also:
vtkHierarchicalDataInformation vtkCompositeDataSet vtkHierarchicalDataSet
Examples:
vtkCompositeDataPipeline (Examples)
Tests:
vtkCompositeDataPipeline (Tests)

Definition at line 87 of file vtkCompositeDataPipeline.h.
vtkDataObject * GetCompositeOutputData (int port)
static vtkInformationIntegerKey * BEGIN_LOOP ()
static vtkInformationIntegerKey * END_LOOP ()
static vtkInformationStringKey * COMPOSITE_DATA_TYPE_NAME ()
static vtkInformationObjectBaseKey * COMPOSITE_DATA_INFORMATION ()
static vtkInformationIntegerKey * MARKED_FOR_UPDATE ()
static vtkInformationStringKey * INPUT_REQUIRED_COMPOSITE_DATA_TYPE ()
static vtkInformationObjectBaseKey * UPDATE_BLOCKS ()

Public Types

typedef vtkStreamingDemandDrivenPipeline Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
virtual int ProcessRequest (vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo)
virtual int ComputePipelineMTime (vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int reqeustFromOutputPort, unsigned long *mtime)

Static Public Member Functions

static vtkCompositeDataPipeline * New ()
static int IsTypeOf (const char *type)
static vtkCompositeDataPipeline * SafeDownCast (vtkObject *o)

Protected Types

enum  BeginForward { EXECUTE_BLOCK_OK, EXECUTE_BLOCK_CONTINUE, EXECUTE_BLOCK_ERROR }

Protected Member Functions

 vtkCompositeDataPipeline ()
 ~vtkCompositeDataPipeline ()
virtual int CheckDataObject (int port, vtkInformationVector *outInfo)
virtual int ForwardUpstream (vtkInformation *request)
virtual int ForwardUpstream (int i, int j, vtkInformation *request)
virtual void CopyDefaultInformation (vtkInformation *request, int direction, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
virtual void CopyFromDataToInformation (vtkDataObject *dobj, vtkInformation *inInfo)
virtual void PushInformation (vtkInformation *)
virtual void PopInformation (vtkInformation *)
virtual int ExecuteDataObjectForBlock (vtkInformation *request)
virtual int ExecuteDataObject (vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo)
virtual int ExecuteInformationForBlock (vtkInformation *request)
virtual int ExecuteDataForBlock (vtkInformation *request)
virtual int ExecuteData (vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
virtual void ExecuteDataStart (vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
virtual int VerifyOutputInformation (int outputPort, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
int CheckCompositeData (int port, vtkInformationVector *outInfoVec)
int SendEndLoop (int i, int j)
virtual int SendBeginLoop (int i, int j, vtkInformation *inInfo, vtkHierarchicalDataSet *updateInfo)
virtual vtkCompositeDataSet * CreateInputCompositeData (int i, vtkInformation *inInfo)
virtual int UpdateBlocks (int i, int j, int outputPort, vtkHierarchicalDataSet *updateInfo, vtkCompositeDataSet *input, vtkInformation *inInfo)
virtual void ExecuteSimpleAlgorithm (vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int compositePort)
void CheckInputPorts (int &inputPortIsComposite, int &inputIsComposite, int &compositePort)

Protected Attributes

vtkTimeStamp SubPassTime
int InSubPass
int InLocalLoop
vtkInformation * InformationCache
vtkInformation * GenericRequest
vtkInformation * DataObjectRequest
vtkInformation * InformationRequest
vtkInformation * UpdateExtentRequest
vtkInformation * DataRequest


Member Typedef Documentation

typedef vtkStreamingDemandDrivenPipeline vtkCompositeDataPipeline::Superclass
 

Reimplemented from vtkStreamingDemandDrivenPipeline.

Definition at line 91 of file vtkCompositeDataPipeline.h.


Member Enumeration Documentation

enum vtkCompositeDataPipeline::BeginForward [protected]
 

Enumerator:
EXECUTE_BLOCK_OK 
EXECUTE_BLOCK_CONTINUE 
EXECUTE_BLOCK_ERROR 

Definition at line 211 of file vtkCompositeDataPipeline.h.


Constructor & Destructor Documentation

vtkCompositeDataPipeline::vtkCompositeDataPipeline (   )  [protected]
 

vtkCompositeDataPipeline::~vtkCompositeDataPipeline (   )  [protected]
 


Member Function Documentation

static vtkCompositeDataPipeline* vtkCompositeDataPipeline::New (   )  [static]
 

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkStreamingDemandDrivenPipeline.

virtual const char* vtkCompositeDataPipeline::GetClassName (   )  [virtual]
 

Reimplemented from vtkStreamingDemandDrivenPipeline.

static int vtkCompositeDataPipeline::IsTypeOf (  const char *  type  )  [static]
 

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkStreamingDemandDrivenPipeline.

virtual int vtkCompositeDataPipeline::IsA (  const char *  type  )  [virtual]
 

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkStreamingDemandDrivenPipeline.

static vtkCompositeDataPipeline* vtkCompositeDataPipeline::SafeDownCast (  vtkObject *  o  )  [static]
 

Reimplemented from vtkStreamingDemandDrivenPipeline.

void vtkCompositeDataPipeline::PrintSelf (  ostream &  os,
vtkIndent  indent
)  [virtual]
 

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkStreamingDemandDrivenPipeline.

virtual int vtkCompositeDataPipeline::ProcessRequest (  vtkInformation *  request,
vtkInformationVector **  inInfo,
vtkInformationVector *  outInfo
)  [virtual]
 

Generalized interface for asking the executive to fullfill update requests.

Reimplemented from vtkStreamingDemandDrivenPipeline.

virtual int vtkCompositeDataPipeline::ComputePipelineMTime (  vtkInformation *  request,
vtkInformationVector **  inInfoVec,
vtkInformationVector *  outInfoVec,
int  reqeustFromOutputPort,
unsigned long *  mtime
)  [virtual]
 

Override the pipeline modified time request to support sub-passes.

Reimplemented from vtkDemandDrivenPipeline.

vtkDataObject* vtkCompositeDataPipeline::GetCompositeOutputData (  int  port  ) 
 

Returns the data object stored with the COMPOSITE_DATA_SET() in the output port

static vtkInformationIntegerKey* vtkCompositeDataPipeline::BEGIN_LOOP (   )  [static]
 

vtkCompositeDataPipeline specific keys

static vtkInformationIntegerKey* vtkCompositeDataPipeline::END_LOOP (   )  [static]
 

Returns the data object stored with the COMPOSITE_DATA_SET() in the output port

static vtkInformationStringKey* vtkCompositeDataPipeline::COMPOSITE_DATA_TYPE_NAME (   )  [static]
 

Returns the data object stored with the COMPOSITE_DATA_SET() in the output port

static vtkInformationObjectBaseKey* vtkCompositeDataPipeline::COMPOSITE_DATA_INFORMATION (   )  [static]
 

Returns the data object stored with the COMPOSITE_DATA_SET() in the output port

static vtkInformationIntegerKey* vtkCompositeDataPipeline::MARKED_FOR_UPDATE (   )  [static]
 

Returns the data object stored with the COMPOSITE_DATA_SET() in the output port

static vtkInformationStringKey* vtkCompositeDataPipeline::INPUT_REQUIRED_COMPOSITE_DATA_TYPE (   )  [static]
 

Returns the data object stored with the COMPOSITE_DATA_SET() in the output port

static vtkInformationObjectBaseKey* vtkCompositeDataPipeline::UPDATE_BLOCKS (   )  [static]
 

Returns the data object stored with the COMPOSITE_DATA_SET() in the output port

virtual int vtkCompositeDataPipeline::CheckDataObject (  int  port,
vtkInformationVector *  outInfo
)  [protected, virtual]
 

Reimplemented from vtkDemandDrivenPipeline.

virtual int vtkCompositeDataPipeline::ForwardUpstream (  vtkInformation *  request  )  [protected, virtual]
 

Reimplemented from vtkExecutive.

virtual int vtkCompositeDataPipeline::ForwardUpstream (  int  i,
int  j,
vtkInformation *  request
)  [protected, virtual]
 

virtual void vtkCompositeDataPipeline::CopyDefaultInformation (  vtkInformation *  request,
int  direction,
vtkInformationVector **  inInfoVec,
vtkInformationVector *  outInfoVec
)  [protected, virtual]
 

Reimplemented from vtkStreamingDemandDrivenPipeline.

virtual void vtkCompositeDataPipeline::CopyFromDataToInformation (  vtkDataObject *  dobj,
vtkInformation *  inInfo
)  [protected, virtual]
 

virtual void vtkCompositeDataPipeline::PushInformation (  vtkInformation *   )  [protected, virtual]
 

virtual void vtkCompositeDataPipeline::PopInformation (  vtkInformation *   )  [protected, virtual]
 

virtual int vtkCompositeDataPipeline::ExecuteDataObjectForBlock (  vtkInformation *  request  )  [protected, virtual]
 

virtual int vtkCompositeDataPipeline::ExecuteDataObject (  vtkInformation *  request,
vtkInformationVector **  inInfo,
vtkInformationVector *  outInfo
)  [protected, virtual]
 

Reimplemented from vtkDemandDrivenPipeline.

virtual int vtkCompositeDataPipeline::ExecuteInformationForBlock (  vtkInformation *  request  )  [protected, virtual]
 

virtual int vtkCompositeDataPipeline::ExecuteDataForBlock (  vtkInformation *  request  )  [protected, virtual]
 

virtual int vtkCompositeDataPipeline::ExecuteData (  vtkInformation *  request,
vtkInformationVector **  inInfoVec,
vtkInformationVector *  outInfoVec
)  [protected, virtual]
 

Reimplemented from vtkDemandDrivenPipeline.

virtual void vtkCompositeDataPipeline::ExecuteDataStart (  vtkInformation *  request,
vtkInformationVector **  inInfoVec,
vtkInformationVector *  outInfoVec
)  [protected, virtual]
 

Reimplemented from vtkStreamingDemandDrivenPipeline.

virtual int vtkCompositeDataPipeline::VerifyOutputInformation (  int  outputPort,
vtkInformationVector **  inInfoVec,
vtkInformationVector *  outInfoVec
)  [protected, virtual]
 

Reimplemented from vtkStreamingDemandDrivenPipeline.

int vtkCompositeDataPipeline::CheckCompositeData (  int  port,
vtkInformationVector *  outInfoVec
)  [protected]
 

int vtkCompositeDataPipeline::SendEndLoop (  int  i,
int  j
)  [protected]
 

virtual int vtkCompositeDataPipeline::SendBeginLoop (  int  i,
int  j,
vtkInformation *  inInfo,
vtkHierarchicalDataSet *  updateInfo
)  [protected, virtual]
 

virtual vtkCompositeDataSet* vtkCompositeDataPipeline::CreateInputCompositeData (  int  i,
vtkInformation *  inInfo
)  [protected, virtual]
 

virtual int vtkCompositeDataPipeline::UpdateBlocks (  int  i,
int  j,
int  outputPort,
vtkHierarchicalDataSet *  updateInfo,
vtkCompositeDataSet *  input,
vtkInformation *  inInfo
)  [protected, virtual]
 

virtual void vtkCompositeDataPipeline::ExecuteSimpleAlgorithm (  vtkInformation *  request,
vtkInformationVector **  inInfoVec,
vtkInformationVector *  outInfoVec,
int  compositePort
)  [protected, virtual]
 

void vtkCompositeDataPipeline::CheckInputPorts (  int &  inputPortIsComposite,
int &  inputIsComposite,
int &  compositePort
)  [protected]
 


Member Data Documentation

vtkTimeStamp vtkCompositeDataPipeline::SubPassTime [protected]
 

Definition at line 149 of file vtkCompositeDataPipeline.h.

int vtkCompositeDataPipeline::InSubPass [protected]
 

Definition at line 153 of file vtkCompositeDataPipeline.h.

int vtkCompositeDataPipeline::InLocalLoop [protected]
 

Definition at line 183 of file vtkCompositeDataPipeline.h.

vtkInformation* vtkCompositeDataPipeline::InformationCache [protected]
 

Definition at line 202 of file vtkCompositeDataPipeline.h.

vtkInformation* vtkCompositeDataPipeline::GenericRequest [protected]
 

Definition at line 204 of file vtkCompositeDataPipeline.h.

vtkInformation* vtkCompositeDataPipeline::DataObjectRequest [protected]
 

Reimplemented from vtkDemandDrivenPipeline.

Definition at line 205 of file vtkCompositeDataPipeline.h.

vtkInformation* vtkCompositeDataPipeline::InformationRequest [protected]
 

Definition at line 206 of file vtkCompositeDataPipeline.h.

vtkInformation* vtkCompositeDataPipeline::UpdateExtentRequest [protected]
 

Reimplemented from vtkStreamingDemandDrivenPipeline.

Definition at line 207 of file vtkCompositeDataPipeline.h.

vtkInformation* vtkCompositeDataPipeline::DataRequest [protected]
 

Reimplemented from vtkDemandDrivenPipeline.

Definition at line 208 of file vtkCompositeDataPipeline.h.


The documentation for this class was generated from the following file:
Generated on Mon Jan 21 23:38:13 2008 for VTK by  doxygen 1.4.3-20050530