29 #ifndef __vtkExecutive_h
30 #define __vtkExecutive_h
32 #include "vtkCommonExecutionModelModule.h"
33 #include "vtkObject.h"
37 class vtkAlgorithmToExecutiveFriendship;
39 class vtkExecutiveInternals;
43 class vtkInformationIntegerKey;
44 class vtkInformationRequestKey;
45 class vtkInformationKeyVectorKey;
46 class vtkInformationVector;
48 class VTKCOMMONEXECUTIONMODEL_EXPORT
vtkExecutive :
public vtkObject
52 void PrintSelf(ostream& os, vtkIndent indent);
60 virtual int ProcessRequest(vtkInformation* request,
61 vtkInformationVector** inInfo,
62 vtkInformationVector* outInfo);
76 ComputePipelineMTime(vtkInformation* request,
77 vtkInformationVector** inInfoVec,
78 vtkInformationVector* outInfoVec,
79 int requestFromOutputPort,
80 unsigned long* mtime);
90 virtual int Update(
int port);
96 int GetNumberOfInputPorts();
97 int GetNumberOfOutputPorts();
101 int GetNumberOfInputConnections(
int port);
104 virtual vtkInformation* GetOutputInformation(
int port);
107 vtkInformationVector* GetOutputInformation();
110 vtkInformation* GetInputInformation(
int port,
int connection);
113 vtkInformationVector* GetInputInformation(
int port);
116 vtkInformationVector** GetInputInformation();
119 vtkExecutive* GetInputExecutive(
int port,
int connection);
124 virtual void SetOutputData(
int port,
vtkDataObject*, vtkInformation *info);
130 virtual vtkDataObject* GetInputData(
int port,
int connection);
131 virtual vtkDataObject* GetInputData(
int port,
int connection,
132 vtkInformationVector **inInfoVec);
146 void SetSharedInputInformation(vtkInformationVector** inInfoVec);
147 void SetSharedOutputInformation(vtkInformationVector* outInfoVec);
152 virtual void Register(vtkObjectBase* o);
153 virtual void UnRegister(vtkObjectBase* o);
166 static vtkInformationIntegerKey* FROM_OUTPUT_PORT();
171 static vtkInformationIntegerKey* ALGORITHM_BEFORE_FORWARD();
172 static vtkInformationIntegerKey* ALGORITHM_AFTER_FORWARD();
173 static vtkInformationIntegerKey* ALGORITHM_DIRECTION();
174 static vtkInformationIntegerKey* FORWARD_DIRECTION();
175 static vtkInformationKeyVectorKey* KEYS_TO_COPY();
185 virtual int CallAlgorithm(vtkInformation* request,
int direction,
186 vtkInformationVector** inInfo,
187 vtkInformationVector* outInfo);
195 int InputPortIndexInRange(
int port,
const char* action);
196 int OutputPortIndexInRange(
int port,
const char* action);
207 int CheckAlgorithm(
const char* method, vtkInformation* request);
209 virtual int ForwardDownstream(vtkInformation* request);
210 virtual int ForwardUpstream(vtkInformation* request);
211 virtual void CopyDefaultInformation(vtkInformation* request,
int direction,
212 vtkInformationVector** inInfo,
213 vtkInformationVector* outInfo);
216 virtual void ResetPipelineInformation(
int port, vtkInformation*)=0;
219 virtual int UpdateDataObject()=0;
222 virtual void ReportReferences(vtkGarbageCollector*);
240 vtkInformationVector* OutputInformation;
243 vtkExecutiveInternals* ExecutiveInternal;
246 friend class vtkAlgorithmToExecutiveFriendship;
virtual int UpdateInformation()
Superclass for all pipeline executives in VTK.
Proxy object to connect input/output ports.
Superclass for all sources, filters, and sinks in VTK.
vtkInformationVector * SharedOutputInformation
vtkInformationVector ** SharedInputInformation
general representation of visualization data