Thanks to visit codestin.com
Credit goes to vtk.org

VTK  9.5.20250920
vtkAlgorithm.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
138#ifndef vtkAlgorithm_h
139#define vtkAlgorithm_h
140
141#include "vtkArrayComponents.h" // For enum
142#include "vtkCommonExecutionModelModule.h" // For export macro
143#include "vtkObject.h"
144#include "vtkWrappingHints.h" // For VTK_MARSHALMANUAL
145
146VTK_ABI_NAMESPACE_BEGIN
147class vtkAbstractArray;
148class vtkAlgorithmInternals;
150class vtkCollection;
151class vtkDataArray;
152class vtkDataObject;
153class vtkExecutive;
154class vtkInformation;
161
162class VTKCOMMONEXECUTIONMODEL_EXPORT VTK_MARSHALMANUAL vtkAlgorithm : public vtkObject
163{
164public:
165 static vtkAlgorithm* New();
166 vtkTypeMacro(vtkAlgorithm, vtkObject);
167 void PrintSelf(ostream& os, vtkIndent indent) override;
168
190 {
193 DEFAULT_PRECISION
194 };
195
201
207
213 virtual void SetExecutive(vtkExecutive* executive);
214
239 vtkInformation* request, vtkInformationVector** inInfo, vtkInformationVector* outInfo);
240
246 vtkInformation* request, vtkCollection* inInfo, vtkInformationVector* outInfo);
247
254 vtkInformationVector* outInfoVec, int requestFromOutputPort, vtkMTimeType* mtime);
255
263 virtual int ModifyRequest(vtkInformation* request, int when);
264
272
280
282
285 vtkGetObjectMacro(Information, vtkInformation);
288
293
298
300
303 bool UsesGarbageCollector() const override { return true; }
305
310
312
316 vtkSetMacro(AbortExecute, vtkTypeBool);
317 vtkGetMacro(AbortExecute, vtkTypeBool);
318 vtkBooleanMacro(AbortExecute, vtkTypeBool);
320
322
325 vtkGetMacro(Progress, double);
327
333 void UpdateProgress(double amount);
334
339
341
347 {
348 this->ContainerAlgorithm = containerAlg;
349 }
350 vtkAlgorithm* GetContainerAlgorithm() { return this->ContainerAlgorithm; }
352
354
361 vtkSetMacro(AbortOutput, bool);
362 vtkGetMacro(AbortOutput, bool);
364
366
378 void SetProgressShiftScale(double shift, double scale);
379 vtkGetMacro(ProgressShift, double);
380 vtkGetMacro(ProgressScale, double);
382
384
391 void SetProgressText(const char* ptext);
392 vtkGetStringMacro(ProgressText);
394
396
400 vtkGetMacro(ErrorCode, unsigned long);
402
403 // left public for performance since it is used in inner loops
404 std::atomic<vtkTypeBool> AbortExecute;
405
435
445
459
465
467
485 const char* name, int fieldAssociation, int component = vtkArrayComponents::AllComponents);
488
512 int idx, int port, int connection, int fieldAssociation, const char* name);
529 int idx, int port, int connection, int fieldAssociation, const char* name, int component);
531
533
549 int idx, int port, int connection, int fieldAssociation, int fieldAttributeType);
567 int idx, int port, int connection, int fieldAssociation, int fieldAttributeType, int component);
569
575 virtual void SetInputArrayToProcess(int idx, vtkInformation* info);
576
578
608 virtual void SetInputArrayToProcess(int idx, int port, int connection,
609 const char* fieldAssociation, const char* attributeTypeorName);
610 virtual void SetInputArrayToProcess(int idx, int port, int connection,
611 const char* fieldAssociation, const char* attributeTypeorName, const char* component);
613
618
630
635
636 // from here down are convenience methods that really are executive methods
637
642
648
653 vtkDataObject* GetInputDataObject(int port, int connection);
654
656
669 virtual void SetInputConnection(int port, vtkAlgorithmOutput* input);
672
674
683 virtual void AddInputConnection(int port, vtkAlgorithmOutput* input);
686
696 virtual void RemoveInputConnection(int port, vtkAlgorithmOutput* input);
697
701 virtual void RemoveInputConnection(int port, int idx);
702
706 virtual void RemoveAllInputConnections(int port);
707
716 virtual void SetInputDataObject(int port, vtkDataObject* data);
717 virtual void SetInputDataObject(vtkDataObject* data) { this->SetInputDataObject(0, data); }
718
724 virtual void AddInputDataObject(int port, vtkDataObject* data);
725 virtual void AddInputDataObject(vtkDataObject* data) { this->AddInputDataObject(0, data); }
726
735
740
745
750
755 vtkAlgorithm* GetInputAlgorithm(int port, int index, int& algPort);
756
760 vtkAlgorithm* GetInputAlgorithm(int port, int index);
761
766
771 vtkExecutive* GetInputExecutive(int port, int index);
772
777
786 vtkInformation* GetInputInformation(int port, int index);
787
792
801
803
807 virtual void Update(int port);
809 virtual void Update();
811
834 virtual vtkTypeBool Update(int port, vtkInformationVector* requests);
835
842
849 virtual int UpdatePiece(
850 int piece, int numPieces, int ghostLevels, const int extents[6] = nullptr);
851
858 virtual int UpdateExtent(const int extents[6]);
859
867 virtual int UpdateTimeStep(double time, int piece = -1, int numPieces = 1, int ghostLevels = 0,
868 const int extents[6] = nullptr);
869
874 virtual void UpdateInformation();
875
879 virtual void UpdateDataObject();
880
884 virtual void PropagateUpdateExtent();
885
890 virtual void UpdateWholeExtent();
891
896 void ConvertTotalInputToPortConnection(int ind, int& port, int& conn);
897
898 //======================================================================
899 // The following block of code is to support old style VTK applications. If
900 // you are using these calls there are better ways to do it in the new
901 // pipeline
902 //======================================================================
903
905
913
914 //========================================================================
915
917
924 int UpdateExtentIsEmpty(vtkInformation* pinfo, int extentType);
926
932
934
939 int* GetUpdateExtent() VTK_SIZEHINT(6) { return this->GetUpdateExtent(0); }
940 int* GetUpdateExtent(int port) VTK_SIZEHINT(6);
941 void GetUpdateExtent(int& x0, int& x1, int& y0, int& y1, int& z0, int& z1)
942 {
943 this->GetUpdateExtent(0, x0, x1, y0, y1, z0, z1);
944 }
945 void GetUpdateExtent(int port, int& x0, int& x1, int& y0, int& y1, int& z0, int& z1);
946 void GetUpdateExtent(int extent[6]) { this->GetUpdateExtent(0, extent); }
947 void GetUpdateExtent(int port, int extent[6]);
949
951
956 int GetUpdatePiece() { return this->GetUpdatePiece(0); }
957 int GetUpdatePiece(int port);
960 int GetUpdateGhostLevel() { return this->GetUpdateGhostLevel(0); }
961 int GetUpdateGhostLevel(int port);
963
965
975 vtkGetObjectMacro(ProgressObserver, vtkProgressObserver);
977
979
992
998
999protected:
1001 ~vtkAlgorithm() override;
1002
1003 // Time stamp to store the last time any filter was aborted.
1005
1006 // Time stamp to store the last time this filter checked for an
1007 // abort.
1009
1010 // Keys used to indicate that input/output port information has been
1011 // filled.
1013
1014 // Arbitrary extra information associated with this algorithm
1016
1022
1028 virtual int FillInputPortInformation(int port, vtkInformation* info);
1029
1035 virtual int FillOutputPortInformation(int port, vtkInformation* info);
1036
1040 virtual void SetNumberOfInputPorts(int n);
1041
1045 virtual void SetNumberOfOutputPorts(int n);
1046
1047 // Helper methods to check input/output port index ranges.
1048 int InputPortIndexInRange(int index, const char* action);
1049 int OutputPortIndexInRange(int index, const char* action);
1050
1056
1058
1066 int GetInputArrayAssociation(int idx, int connection, vtkInformationVector** inputVector);
1069
1090
1092
1098 int idx, vtkInformationVector** inputVector, int& association);
1100
1102
1110 vtkDataArray* GetInputArrayToProcess(int idx, int connection, vtkInformationVector** inputVector);
1112 int idx, int connection, vtkInformationVector** inputVector, int& association);
1114 vtkDataArray* GetInputArrayToProcess(int idx, vtkDataObject* input, int& association);
1116
1118
1124 int idx, vtkInformationVector** inputVector, int& association);
1126
1128
1137 int idx, int connection, vtkInformationVector** inputVector);
1139 int idx, int connection, vtkInformationVector** inputVector, int& association);
1143
1145
1175 vtkInformationVector** inputVector, int& association,
1176 int requestedComponent = vtkArrayComponents::Requested);
1178 int requestedComponent = vtkArrayComponents::Requested);
1179 template <typename ArrayType, typename... Params>
1181 {
1182 auto abstractArray = this->GetInputArray(std::forward<Params>(params)...);
1183 auto* castArray = ArrayType::SafeDownCast(abstractArray.GetPointer());
1184 auto result = vtkSmartPointer<ArrayType>(castArray);
1185 return result;
1186 }
1188
1197
1205
1207
1211 vtkSetMacro(ErrorCode, unsigned long);
1212 unsigned long ErrorCode;
1214
1215 // Progress/Update handling
1216 double Progress;
1218
1219 // Garbage collection support.
1221
1222 // executive methods below
1223
1230 virtual void SetNthInputConnection(int port, int index, vtkAlgorithmOutput* input);
1231
1238 virtual void SetNumberOfInputConnections(int port, int n);
1239
1241
1249 {
1250 this->SetInputDataObject(port, input);
1251 }
1253 {
1254 this->AddInputDataObject(port, input);
1255 }
1256
1258
1259private:
1260 vtkExecutive* Executive;
1261 vtkInformationVector* InputPortInformation;
1262 vtkInformationVector* OutputPortInformation;
1263 vtkAlgorithmInternals* AlgorithmInternal;
1264 static void ConnectionAdd(
1265 vtkAlgorithm* producer, int producerPort, vtkAlgorithm* consumer, int consumerPort);
1266 static void ConnectionRemove(
1267 vtkAlgorithm* producer, int producerPort, vtkAlgorithm* consumer, int consumerPort);
1268 static void ConnectionRemoveAllInput(vtkAlgorithm* consumer, int port);
1269 static void ConnectionRemoveAllOutput(vtkAlgorithm* producer, int port);
1270
1271 vtkAlgorithm(const vtkAlgorithm&) = delete;
1272 void operator=(const vtkAlgorithm&) = delete;
1273
1274 double ProgressShift;
1275 double ProgressScale;
1276 vtkAlgorithm* ContainerAlgorithm;
1277 bool AbortOutput;
1278};
1279
1280VTK_ABI_NAMESPACE_END
1281#endif
Abstract superclass for all arrays.
Proxy object to connect input/output ports.
Superclass for all sources, filters, and sinks in VTK.
virtual void UpdateDataObject()
Create output object(s).
vtkAlgorithmOutput * GetInputConnection(int port, int index)
Get the algorithm output port connected to an input port.
int GetUpdatePiece(int port)
These functions return the update extent for output ports that use piece extents.
void UpdateProgress(double amount)
Update the progress of the process object.
vtkInformation * GetInputArrayInformation(int idx)
Get the info object for the specified input array to this algorithm.
int GetInputArrayAssociation(int idx, vtkInformationVector **inputVector)
Get the association of the actual data array for the input array specified by idx,...
virtual void RemoveInputConnection(int port, vtkAlgorithmOutput *input)
Remove a connection from the given input port index.
vtkDataArray * GetInputArrayToProcess(int idx, int connection, vtkInformationVector **inputVector)
Filters that have multiple connections on one port can use this signature.
vtkAbstractArray * GetInputAbstractArrayToProcess(int idx, vtkInformationVector **inputVector)
Get the actual data array for the input array specified by idx, this is only reasonable during the RE...
virtual void SetNumberOfOutputPorts(int n)
Set the number of output ports provided by the algorithm.
virtual void SetInputArrayToProcess(int idx, int port, int connection, const char *fieldAssociation, const char *attributeTypeorName, const char *component)
Set the input data arrays that this algorithm will process.
virtual void SetNthInputConnection(int port, int index, vtkAlgorithmOutput *input)
Replace the Nth connection on the given input port.
int GetUpdateGhostLevel()
These functions return the update extent for output ports that use piece extents.
void GetUpdateExtent(int port, int &x0, int &x1, int &y0, int &y1, int &z0, int &z1)
These functions return the update extent for output ports that use 3D extents.
vtkInformation * GetOutputPortInformation(int port)
Get the information object associated with an output port.
int GetInputArrayAssociation(int idx, vtkDataObject *input)
Filters that have multiple connections on one port can use this signature.
virtual void AddInputDataObject(vtkDataObject *data)
vtkSmartPointer< vtkAbstractArray > GetInputArray(int idx, vtkDataObject *input, int &association, int requestedComponent=vtkArrayComponents::Requested)
Get an array from the input at index idx.
virtual void SetInputDataObject(vtkDataObject *data)
int UpdateExtentIsEmpty(vtkInformation *pinfo, int extentType)
This detects when the UpdateExtent will generate no data This condition is satisfied when the UpdateE...
int UpdateExtentIsEmpty(vtkInformation *pinfo, vtkDataObject *output)
This detects when the UpdateExtent will generate no data This condition is satisfied when the UpdateE...
virtual void SetInputArrayToProcess(int idx, int port, int connection, int fieldAssociation, const char *name, int component)
This method variant also accepts a component to consider rather than the entire tuple.
void GetUpdateExtent(int extent[6])
These functions return the update extent for output ports that use 3D extents.
vtkInformation * GetInputArrayFieldInformation(int idx, vtkInformationVector **inputVector)
This method takes in an index (as specified in SetInputArrayToProcess) and a pipeline information vec...
int GetUpdatePiece()
These functions return the update extent for output ports that use piece extents.
vtkInformation * Information
vtkAlgorithm * GetContainerAlgorithm()
Set/get a Container algorithm for this algorithm.
virtual vtkTypeBool Update(vtkInformation *requests)
Convenience method to update an algorithm after passing requests to its first output port.
virtual int FillOutputPortInformation(int port, vtkInformation *info)
Fill the output port information objects for this algorithm.
void SetContainerAlgorithm(vtkAlgorithm *containerAlg)
Set/get a Container algorithm for this algorithm.
vtkDataObject * GetOutputDataObject(int port)
Get the data object that will contain the algorithm output for the given port.
vtkExecutive * GetInputExecutive()
Equivalent to GetInputExecutive(0, 0)
void SetNoPriorTemporalAccessInformationKey()
Set to all output ports of this algorithm the information key vtkStreamingDemandDrivenPipeline::NO_PR...
vtkExecutive * GetInputExecutive(int port, int index)
Returns the executive associated with a particular input connection.
virtual void RemoveAllInputConnections(int port)
Removes all input connections.
virtual int ComputePipelineMTime(vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int requestFromOutputPort, vtkMTimeType *mtime)
A special version of ProcessRequest meant specifically for the pipeline modified time request.
virtual void AddInputConnection(vtkAlgorithmOutput *input)
Add a connection to the given input port index.
virtual vtkTypeBool Update(int port, vtkInformationVector *requests)
This method enables the passing of data requests to the algorithm to be used during execution (in add...
virtual int UpdatePiece(int piece, int numPieces, int ghostLevels, const int extents[6]=nullptr)
Convenience method to update an algorithm after passing requests to its first output port.
vtkAbstractArray * GetInputAbstractArrayToProcess(int idx, int connection, vtkInformationVector **inputVector, int &association)
Filters that have multiple connections on one port can use this signature.
vtkSmartPointer< vtkAbstractArray > GetInputArray(int idx, int connection, vtkInformationVector **inputVector, int &association, int requestedComponent=vtkArrayComponents::Requested)
Get an array from the input at index idx.
virtual void SetInputArrayToProcess(int idx, int port, int connection, const char *fieldAssociation, const char *attributeTypeorName)
Set the input data arrays that this algorithm will process.
static vtkInformationIntegerKey * PORT_REQUIREMENTS_FILLED()
virtual vtkTypeBool ProcessRequest(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo)
Upstream/Downstream requests form the generalized interface through which executives invoke a algorit...
int GetNumberOfOutputPorts()
Get the number of output ports provided by the algorithm.
virtual int ModifyRequest(vtkInformation *request, int when)
This method gives the algorithm a chance to modify the contents of a request before or after (specifi...
void ReleaseDataFlagOff()
Turn release data flag on or off for all output ports.
void SetInputDataInternal(int port, vtkDataObject *input)
These methods are used by subclasses to implement methods to set data objects directly as input.
int GetNumberOfInputPorts()
Get the number of input ports used by the algorithm.
int GetInputArrayAssociation(int idx, int connection, vtkInformationVector **inputVector)
Filters that have multiple connections on one port can use this signature.
void ReleaseDataFlagOn()
Turn release data flag on or off for all output ports.
bool CheckUpstreamAbort()
Checks to see if an upstream filter has been aborted.
void SetProgressShiftScale(double shift, double scale)
Specify the shift and scale values to use to apply to the progress amount when UpdateProgress is call...
vtkDataArray * GetInputArrayToProcess(int idx, int connection, vtkInformationVector **inputVector, int &association)
Filters that have multiple connections on one port can use this signature.
vtkDataArray * GetInputArrayToProcess(int idx, vtkInformationVector **inputVector, int &association)
Get the actual data array for the input array specified by idx, this is only reasonable during the RE...
vtkInformation * GetInputInformation()
Equivalent to GetInputInformation(0, 0)
unsigned long ErrorCode
The error code contains a possible error that occurred while reading or writing the file.
void GetUpdateExtent(int port, int extent[6])
These functions return the update extent for output ports that use 3D extents.
virtual void SetReleaseDataFlag(vtkTypeBool)
Turn release data flag on or off for all output ports.
vtkInformation * GetOutputInformation(int port)
Return the information object that is associated with a particular output port.
vtkInformation * GetInputPortInformation(int port)
Get the information object associated with an input port.
int GetUpdateGhostLevel(int port)
These functions return the update extent for output ports that use piece extents.
int * GetUpdateExtent(int port)
These functions return the update extent for output ports that use 3D extents.
void SetInputArrayToProcess(const char *name, int fieldAssociation, int component=vtkArrayComponents::AllComponents)
Set the input data arrays that this algorithm will process.
virtual void SetInputArrayToProcess(int idx, int port, int connection, int fieldAssociation, const char *name)
Set the input data arrays that this algorithm will process.
static vtkTimeStamp LastAbortTime
vtkTypeBool HasExecutive()
Check whether this algorithm has an assigned executive.
virtual void SetInputArrayToProcess(int idx, int port, int connection, int fieldAssociation, int fieldAttributeType, int component)
This method variant also accepts a component to consider rather than the entire tuple.
virtual void AddInputDataObject(int port, vtkDataObject *data)
Add the data-object as an input to this given port.
virtual vtkExecutive * CreateDefaultExecutive()
Create a default executive.
vtkAlgorithmOutput * GetOutputPort()
int OutputPortIndexInRange(int index, const char *action)
static void SetDefaultExecutivePrototype(vtkExecutive *proto)
If the DefaultExecutivePrototype is set, a copy of it is created in CreateDefaultExecutive() using Ne...
vtkAlgorithm * GetInputAlgorithm()
Equivalent to GetInputAlgorithm(0, 0).
bool CheckAbort()
Checks to see if this filter should abort.
bool ResetInputArraySpecifications()
Clear all existing input array specifications (as if SetInputArrayToProcess had never been called).
void ReportReferences(vtkGarbageCollector *) override
char * ProgressText
vtkAbstractArray * GetInputAbstractArrayToProcess(int idx, int connection, vtkInformationVector **inputVector)
Filters that have multiple connections on one port can use this signature.
vtkAlgorithm * GetInputAlgorithm(int port, int index)
Returns the algorithm connected to a port-index pair.
static vtkAlgorithm * New()
void SetProgressObserver(vtkProgressObserver *)
If an ProgressObserver is set, the algorithm will report progress through it rather than directly.
int GetInputArrayComponent(int idx)
Get the component to process of the actual data array for the input array specified by idx,...
void RemoveNoPriorTemporalAccessInformationKey()
Removes any information key vtkStreamingDemandDrivenPipeline::NO_PRIOR_TEMPORAL_ACCESS() to all outpu...
virtual void SetInputArrayToProcess(int idx, vtkInformation *info)
Set the input data arrays that this algorithm will process.
vtkDataArray * GetInputArrayToProcess(int idx, vtkInformationVector **inputVector)
Get the actual data array for the input array specified by idx, this is only reasonable during the RE...
void SetAbortExecuteAndUpdateTime()
Set AbortExecute Flag and update LastAbortTime.
virtual int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
virtual void UpdateWholeExtent()
Bring this algorithm's outputs up-to-date.
virtual void SetNumberOfInputConnections(int port, int n)
Set the number of input connections on the given input port.
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
int GetTotalNumberOfInputConnections()
Get the total number of inputs for this algorithm.
vtkDataArray * GetInputArrayToProcess(int idx, vtkDataObject *input)
Filters that have multiple connections on one port can use this signature.
virtual void SetInputConnection(vtkAlgorithmOutput *input)
Set the connection for the given input port index.
void ConvertTotalInputToPortConnection(int ind, int &port, int &conn)
Convenience routine to convert from a linear ordering of input connections to a port/connection pair.
virtual void SetExecutive(vtkExecutive *executive)
Set this algorithm's executive.
bool UsesGarbageCollector() const override
Participate in garbage collection.
virtual vtkTypeBool GetReleaseDataFlag()
Turn release data flag on or off for all output ports.
int GetNumberOfInputConnections(int port)
Get the number of inputs currently connected to a port.
void SetProgressText(const char *ptext)
Set the current text message associated with the progress state.
virtual void PropagateUpdateExtent()
Propagate meta-data upstream.
virtual void Update(int port)
Bring this algorithm's outputs up-to-date.
std::atomic< vtkTypeBool > AbortExecute
vtkExecutive * GetExecutive()
Get this algorithm's executive.
virtual int UpdateExtent(const int extents[6])
Convenience method to update an algorithm after passing requests to its first output port.
int GetUpdateNumberOfPieces()
These functions return the update extent for output ports that use piece extents.
vtkTypeBool ProcessRequest(vtkInformation *request, vtkCollection *inInfo, vtkInformationVector *outInfo)
Version of ProcessRequest() that is wrapped.
DesiredOutputPrecision
Values used for setting the desired output precision for various algorithms.
virtual void SetInputDataObject(int port, vtkDataObject *data)
Sets the data-object as an input on the given port index.
vtkAbstractArray * GetInputAbstractArrayToProcess(int idx, vtkInformationVector **inputVector, int &association)
Get the actual data array for the input array specified by idx, this is only reasonable during the RE...
void GetUpdateExtent(int &x0, int &x1, int &y0, int &y1, int &z0, int &z1)
These functions return the update extent for output ports that use 3D extents.
vtkDataArray * GetInputArrayToProcess(int idx, vtkDataObject *input, int &association)
Filters that have multiple connections on one port can use this signature.
vtkTimeStamp LastAbortCheckTime
virtual void SetNumberOfInputPorts(int n)
Set the number of input ports used by the algorithm.
vtkAbstractArray * GetInputAbstractArrayToProcess(int idx, vtkDataObject *input, int &association)
Filters that have multiple connections on one port can use this signature.
virtual void RemoveInputConnection(int port, int idx)
Remove a connection given by index idx.
vtkSmartPointer< ArrayType > GetInputArrayAs(Params &&... params)
Get an array from the input at index idx.
virtual void SetInputArrayToProcess(int idx, int port, int connection, int fieldAssociation, int fieldAttributeType)
Set the input data arrays that this algorithm will process.
vtkAbstractArray * GetInputAbstractArrayToProcess(int idx, vtkDataObject *input)
Filters that have multiple connections on one port can use this signature.
int * GetUpdateExtent()
These functions return the update extent for output ports that use 3D extents.
vtkProgressObserver * ProgressObserver
void SetNoPriorTemporalAccessInformationKey(int key)
Set to all output ports of this algorithm the information key vtkStreamingDemandDrivenPipeline::NO_PR...
vtkDataObject * GetInputDataObject(int port, int connection)
Get the data object that will contain the algorithm input for the given port and given connection.
virtual void UpdateInformation()
Bring the algorithm's information up-to-date.
vtkAlgorithmOutput * GetOutputPort(int index)
Get a proxy object corresponding to the given output port of this algorithm.
void AddInputDataInternal(int port, vtkDataObject *input)
~vtkAlgorithm() override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int GetUpdateNumberOfPieces(int port)
These functions return the update extent for output ports that use piece extents.
int InputPortIndexInRange(int index, const char *action)
int GetNumberOfInputArraySpecifications()
Get the number of input array indices that have already been set.
vtkInformation * GetInputInformation(int port, int index)
Return the information object that is associated with a particular input connection.
virtual int UpdateTimeStep(double time, int piece=-1, int numPieces=1, int ghostLevels=0, const int extents[6]=nullptr)
Convenience method to update an algorithm after passing requests to its first output port.
virtual void SetInformation(vtkInformation *)
Set/Get the information object associated with this algorithm.
virtual void Update()
Bring this algorithm's outputs up-to-date.
static vtkExecutive * DefaultExecutivePrototype
virtual void AddInputConnection(int port, vtkAlgorithmOutput *input)
Add a connection to the given input port index.
void RemoveAllInputs()
Remove all the input data.
vtkAlgorithm * GetInputAlgorithm(int port, int index, int &algPort)
Returns the algorithm and the output port index of that algorithm connected to a port-index pair.
create and manipulate ordered lists of objects
abstract superclass for arrays of numeric data
general representation of visualization data
Superclass for all pipeline executives in VTK.
Detect and break reference loops.
a simple class to control print indentation
Definition vtkIndent.h:108
Key for integer values in vtkInformation.
Key for string values in vtkInformation.
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
abstract base class for most VTK objects
Definition vtkObject.h:162
Basic class to optionally replace vtkAlgorithm progress functionality.
Hold a reference to a vtkObjectBase instance.
record modification and/or execution time
static vtkInformationStringVectorKey * INPUT_REQUIRED_DATA_TYPE()
static vtkInformationIntegerKey * INPUT_IS_OPTIONAL()
Keys used to specify input port requirements.
static vtkInformationIntegerKey * CAN_HANDLE_PIECE_REQUEST()
Key that tells the pipeline that a particular algorithm can or cannot handle piece request.
static vtkInformationIntegerKey * INPUT_PORT()
static vtkInformationInformationVectorKey * INPUT_REQUIRED_FIELDS()
static vtkInformationInformationVectorKey * INPUT_ARRAYS_TO_PROCESS()
static vtkInformationIntegerKey * INPUT_CONNECTION()
static vtkInformationIntegerKey * CAN_PRODUCE_SUB_EXTENT()
This key tells the executive that a particular output port is capable of producing an arbitrary subex...
static vtkInformationIntegerKey * ABORTED()
static vtkInformationIntegerKey * INPUT_IS_REPEATABLE()
int vtkTypeBool
Definition vtkABI.h:64
@ AllComponents
@ Requested
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:288
#define VTK_SIZEHINT(...)
#define VTK_UNBLOCKTHREADS
#define VTK_MARSHALMANUAL