VTK
vtkCompositeDataPipeline.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCompositeDataPipeline.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
49 #ifndef vtkCompositeDataPipeline_h
50 #define vtkCompositeDataPipeline_h
51 
52 #include "vtkCommonExecutionModelModule.h" // For export macro
54 
63 
66 {
67 public:
70  void PrintSelf(ostream& os, vtkIndent indent);
71 
75 
77 
80  int port, int index, vtkInformationVector **inInfoVec);
82 
86 
93 
103 
111 
112 protected:
115 
116  virtual int ForwardUpstream(vtkInformation* request);
117  virtual int ForwardUpstream(int i, int j, vtkInformation* request);
118 
119  // Copy information for the given request.
120  virtual void CopyDefaultInformation(vtkInformation* request, int direction,
121  vtkInformationVector** inInfoVec,
122  vtkInformationVector* outInfoVec);
123 
126 
127  virtual int ExecuteDataObject(vtkInformation* request,
128  vtkInformationVector** inInfo,
129  vtkInformationVector* outInfo);
130 
131  virtual int ExecuteData(vtkInformation* request,
132  vtkInformationVector** inInfoVec,
133  vtkInformationVector* outInfoVec);
134 
135  virtual void ExecuteDataStart(vtkInformation* request,
136  vtkInformationVector** inInfoVec,
137  vtkInformationVector* outInfoVec);
138 
139  // Override this check to account for update extent.
140  virtual int NeedToExecuteData(int outputPort,
141  vtkInformationVector** inInfoVec,
142  vtkInformationVector* outInfoVec);
143 
144  // Check whether the data object in the pipeline information for an
145  // output port exists and has a valid type.
146  virtual int CheckCompositeData(vtkInformation *request,
147  int port,
148  vtkInformationVector** inInfoVec,
149  vtkInformationVector* outInfoVec);
150 
151  // True when the pipeline is iterating over the current (simple) filter
152  // to produce composite output. In this case, ExecuteDataStart() should
153  // NOT Initialize() the composite output.
155 
156  virtual void ExecuteSimpleAlgorithm(vtkInformation* request,
157  vtkInformationVector** inInfoVec,
158  vtkInformationVector* outInfoVec,
159  int compositePort);
160 
162  vtkInformationVector** inInfoVec,
163  vtkInformationVector* outInfoVec,
164  int compositePort,
165  int connection,
166  vtkInformation* request,
167  vtkCompositeDataSet* compositeOutput);
168 
170  vtkInformationVector** inInfoVec,
171  vtkInformationVector* outInfoVec,
172  vtkInformation* inInfo,
173  vtkInformation* outInfo,
174  vtkInformation* request,
175  vtkDataObject* dobj);
176 
178  int& compositePort);
179 
180  virtual int InputTypeIsValid(int port, int index,
181  vtkInformationVector **inInfoVec);
182 
184 
190 
191 
193 
195 
203  vtkCompositeDataSet* input, int compositePort);
205 
206  // Override this to handle UPDATE_COMPOSITE_INDICES().
207  virtual void MarkOutputsGenerated(vtkInformation* request,
208  vtkInformationVector** inInfoVec,
209  vtkInformationVector* outInfoVec);
210 
212 
213  // Because we sometimes have to swap between "simple" data types and composite
214  // data types, we sometimes want to skip resetting the pipeline information.
216 
223 
224 private:
225  vtkCompositeDataPipeline(const vtkCompositeDataPipeline&); // Not implemented.
226  void operator=(const vtkCompositeDataPipeline&); // Not implemented.
227 };
228 
229 #endif
vtkCompositeDataPipeline::DataObjectRequest
vtkInformation * DataObjectRequest
Definition: vtkCompositeDataPipeline.h:186
vtkInformationStringKey
Key for string values in vtkInformation.
Definition: vtkInformationStringKey.h:34
VTKCOMMONEXECUTIONMODEL_EXPORT
#define VTKCOMMONEXECUTIONMODEL_EXPORT
Definition: vtkCommonExecutionModelModule.h:15
vtkCompositeDataPipeline::ExecuteSimpleAlgorithmForBlock
vtkDataObject * ExecuteSimpleAlgorithmForBlock(vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, vtkInformation *inInfo, vtkInformation *outInfo, vtkInformation *request, vtkDataObject *dobj)
vtkCompositeDataPipeline::CopyDefaultInformation
virtual void CopyDefaultInformation(vtkInformation *request, int direction, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
vtkCompositeDataPipeline::ExecuteData
virtual int ExecuteData(vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
vtkCompositeDataPipeline::MarkOutputsGenerated
virtual void MarkOutputsGenerated(vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
vtkCompositeDataPipeline::DataRequest
vtkInformation * DataRequest
Definition: vtkCompositeDataPipeline.h:189
vtkX3D::direction
@ direction
Definition: vtkX3D.h:260
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkCompositeDataPipeline::ShouldIterateOverInput
bool ShouldIterateOverInput(vtkInformationVector **inInfoVec, int &compositePort)
vtkCompositeDataPipeline::BLOCK_AMOUNT_OF_DETAIL
static vtkInformationDoubleKey * BLOCK_AMOUNT_OF_DETAIL()
vtkInformationDataObjectKey
Key for vtkDataObject values.
Definition: vtkInformationDataObjectKey.h:33
vtkCompositeDataPipeline::CheckCompositeData
virtual int CheckCompositeData(vtkInformation *request, int port, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
vtkCompositeDataPipeline::SUPPRESS_RESET_PI
static vtkInformationIntegerKey * SUPPRESS_RESET_PI()
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkStreamingDemandDrivenPipeline.h
vtkCommonExecutionModelModule.h
vtkgl::input
GLenum GLenum GLenum input
Definition: vtkgl.h:15941
vtkInformationDoubleKey
Key for double values in vtkInformation.
Definition: vtkInformationDoubleKey.h:34
vtkCompositeDataPipeline::GetCompositeOutputData
vtkDataObject * GetCompositeOutputData(int port)
vtkCompositeDataPipeline::ExecuteDataStart
virtual void ExecuteDataStart(vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
vtkCompositeDataPipeline::UPDATE_COMPOSITE_INDICES
static vtkInformationIntegerVectorKey * UPDATE_COMPOSITE_INDICES()
vtkCompositeDataSet
abstract superclass for composite (multi-block or AMR) datasets
Definition: vtkCompositeDataSet.h:51
vtkCompositeDataPipeline::vtkCompositeDataPipeline
vtkCompositeDataPipeline()
vtkCompositeDataPipeline::COMPOSITE_DATA_META_DATA
static vtkInformationObjectBaseKey * COMPOSITE_DATA_META_DATA()
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkCompositeDataPipeline
Executive supporting composite datasets.
Definition: vtkCompositeDataPipeline.h:66
vtkCompositeDataPipeline::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkInformationObjectBaseKey
Key for vtkObjectBase values.
Definition: vtkInformationObjectBaseKey.h:33
vtkInformationIntegerKey
Key for integer values in vtkInformation.
Definition: vtkInformationIntegerKey.h:34
vtkCompositeDataIterator
superclass for composite data iterators
Definition: vtkCompositeDataIterator.h:41
vtkCompositeDataPipeline::DATA_COMPOSITE_INDICES
static vtkInformationIntegerVectorKey * DATA_COMPOSITE_INDICES()
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkCompositeDataPipeline::InformationRequest
vtkInformation * InformationRequest
Definition: vtkCompositeDataPipeline.h:187
vtkCompositeDataPipeline::GenericRequest
vtkInformation * GenericRequest
Definition: vtkCompositeDataPipeline.h:185
vtkCompositeDataPipeline::ExecuteDataObject
virtual int ExecuteDataObject(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo)
vtkCompositeDataPipeline::NeedToExecuteBasedOnCompositeIndices
int NeedToExecuteBasedOnCompositeIndices(vtkInformation *outInfo)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkCompositeDataPipeline::PopInformation
virtual void PopInformation(vtkInformation *)
vtkCompositeDataPipeline::PushInformation
virtual void PushInformation(vtkInformation *)
vtkgl::index
GLuint index
Definition: vtkgl.h:11983
vtkCompositeDataPipeline::ResetPipelineInformation
virtual void ResetPipelineInformation(int port, vtkInformation *)
vtkCompositeDataPipeline::UpdateExtentRequest
vtkInformation * UpdateExtentRequest
Definition: vtkCompositeDataPipeline.h:188
vtkCompositeDataPipeline::NeedToExecuteData
virtual int NeedToExecuteData(int outputPort, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec)
vtkDemandDrivenPipeline::vtkCompositeDataPipeline
friend class vtkCompositeDataPipeline
Definition: vtkDemandDrivenPipeline.h:215
vtkCompositeDataPipeline::LOAD_REQUESTED_BLOCKS
static vtkInformationIntegerKey * LOAD_REQUESTED_BLOCKS()
vtkCompositeDataPipeline::CreateOutputCompositeDataSet
vtkCompositeDataSet * CreateOutputCompositeDataSet(vtkCompositeDataSet *input, int compositePort)
vtkCompositeDataPipeline::InputTypeIsValid
virtual int InputTypeIsValid(int port, int index, vtkInformationVector **inInfoVec)
vtkCompositeDataPipeline::GetCompositeInputData
vtkDataObject * GetCompositeInputData(int port, int index, vtkInformationVector **inInfoVec)
vtkCompositeDataPipeline::ExecuteEach
virtual void ExecuteEach(vtkCompositeDataIterator *iter, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int compositePort, int connection, vtkInformation *request, vtkCompositeDataSet *compositeOutput)
vtkCompositeDataPipeline::InformationCache
vtkInformation * InformationCache
Definition: vtkCompositeDataPipeline.h:183
vtkCompositeDataPipeline::~vtkCompositeDataPipeline
~vtkCompositeDataPipeline()
vtkInformationIntegerVectorKey
Key for integer vector values.
Definition: vtkInformationIntegerVectorKey.h:31
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:65
vtkCompositeDataPipeline::ExecuteSimpleAlgorithm
virtual void ExecuteSimpleAlgorithm(vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int compositePort)
vtkCompositeDataPipeline::ForwardUpstream
virtual int ForwardUpstream(int i, int j, vtkInformation *request)
vtkStreamingDemandDrivenPipeline
Executive supporting partial updates.
Definition: vtkStreamingDemandDrivenPipeline.h:51
vtkCompositeDataPipeline::New
static vtkCompositeDataPipeline * New()
vtkCompositeDataPipeline::InLocalLoop
int InLocalLoop
Definition: vtkCompositeDataPipeline.h:154
vtkCompositeDataPipeline::ForwardUpstream
virtual int ForwardUpstream(vtkInformation *request)