VTK  9.5.2
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
26 <div class="examplegrid">
28 <a href="https://examples.vtk.org/site/Cxx/Developers/vtkTestAlgorithmFilter">
29 <div class="examplegrid_container">
30 <img src="/Kitware/vtk-examples/gh-pages/src/Testing/Baseline//Cxx/Developers/TestvtkTestAlgorithmFilter.png">
31 <div class="examplegrid_overlay">
32 <div class="examplegrid_text">vtkTestAlgorithmFilter</div>
33 </div>
34 </div>
35 </a>
37
38 <a href="https://examples.vtk.org/site/Cxx/Developers/vtkTestAlgorithmSource">
39 <div class="examplegrid_container">
40 <img src="/Kitware/vtk-examples/gh-pages/src/Testing/Baseline//Cxx/Developers/TestvtkTestAlgorithmSource.png">
41 <div class="examplegrid_overlay">
42 <div class="examplegrid_text">vtkTestAlgorithmSource</div>
43 </div>
44 </div>
45 </a>
46
47
48 <a href="https://examples.vtk.org/site/Cxx/Developers/vtkTestFilterProgressFilter">
49 <div class="examplegrid_container">
50 <img src="/Kitware/vtk-examples/gh-pages/src/Testing/Baseline//Cxx/Developers/TestvtkTestFilterProgressFilter.png">
51 <div class="examplegrid_overlay">
52 <div class="examplegrid_text">vtkTestFilterProgressFilter</div>
53 </div>
54 </div>
55 </a>
56
57
58 <a href="https://examples.vtk.org/site/Cxx/Developers/vtkTestFilterSelfProgressFilter">
59 <div class="examplegrid_container">
60 <img src="/Kitware/vtk-examples/gh-pages/src/Testing/Baseline//Cxx/Developers/TestvtkTestFilterSelfProgressFilter.png">
61 <div class="examplegrid_overlay">
62 <div class="examplegrid_text">vtkTestFilterSelfProgressFilter</div>
63 </div>
64 </div>
65 </a>
66
67
68 <a href="https://examples.vtk.org/site/Cxx/Developers/vtkTestProgressReportFilter">
69 <div class="examplegrid_container">
70 <img src="/Kitware/vtk-examples/gh-pages/src/Testing/Baseline//Cxx/Developers/TestvtkTestProgressReportFilter.png">
71 <div class="examplegrid_overlay">
72 <div class="examplegrid_text">vtkTestProgressReportFilter</div>
73 </div>
74 </div>
75 </a>
76
77
78 <a href="https://examples.vtk.org/site/Cxx/GeometricObjects/OpenVRTessellatedBoxSource">
79 <div class="examplegrid_container">
80 <img src="/Kitware/vtk-examples/gh-pages/src/Testing/Baseline//Cxx/GeometricObjects/TestOpenVRTessellatedBoxSource.png">
81 <div class="examplegrid_overlay">
82 <div class="examplegrid_text">OpenVRTessellatedBoxSource</div>
83 </div>
84 </div>
85 </a>
86
87
88 <a href="https://examples.vtk.org/site/Cxx/GeometricObjects/TessellatedBoxSource">
89 <div class="examplegrid_container">
90 <img src="/Kitware/vtk-examples/gh-pages/src/Testing/Baseline//Cxx/GeometricObjects/TestTessellatedBoxSource.png">
91 <div class="examplegrid_overlay">
92 <div class="examplegrid_text">TessellatedBoxSource</div>
93 </div>
94 </div>
95 </a>
96
97
98 <a href="https://examples.vtk.org/site/Cxx/Interaction/EllipticalButton">
99 <div class="examplegrid_container">
100 <img src="/Kitware/vtk-examples/gh-pages/src/Testing/Baseline//Cxx/Interaction/TestEllipticalButton.png">
101 <div class="examplegrid_overlay">
102 <div class="examplegrid_text">EllipticalButton</div>
103 </div>
104 </div>
105 </a>
106
108 <a href="https://examples.vtk.org/site/Cxx/Visualization/ReverseAccess">
109 <div class="examplegrid_container">
110 <img src="/Kitware/vtk-examples/gh-pages/src/Testing/Baseline//Cxx/Visualization/TestReverseAccess.png">
111 <div class="examplegrid_overlay">
112 <div class="examplegrid_text">ReverseAccess</div>
113 </div>
114 </div>
115 </a>
116
117
118 <a href="https://examples.vtk.org/site/Cxx/VolumeRendering/FixedPointVolumeRayCastMapperCT">
119 <div class="examplegrid_container">
120 <img src="/Kitware/vtk-examples/gh-pages/src/Testing/Baseline//Cxx/VolumeRendering/TestFixedPointVolumeRayCastMapperCT.png">
121 <div class="examplegrid_overlay">
122 <div class="examplegrid_text">FixedPointVolumeRayCastMapperCT</div>
123 </div>
124 </div>
125 </a>
126
127 </div>
129 @endhtmlonly
130
131 @par Tests:
132 @ref c2_vtk_t_vtkAlgorithm "vtkAlgorithm (Tests)"
133 */
134
135#ifndef vtkAlgorithm_h
136#define vtkAlgorithm_h
137
138#include "vtkCommonExecutionModelModule.h" // For export macro
139#include "vtkObject.h"
140#include "vtkWrappingHints.h" // For VTK_MARSHALMANUAL
141
142VTK_ABI_NAMESPACE_BEGIN
143class vtkAbstractArray;
144class vtkAlgorithmInternals;
146class vtkCollection;
147class vtkDataArray;
148class vtkDataObject;
149class vtkExecutive;
150class vtkInformation;
157
158class VTKCOMMONEXECUTIONMODEL_EXPORT VTK_MARSHALMANUAL vtkAlgorithm : public vtkObject
159{
160public:
161 static vtkAlgorithm* New();
162 vtkTypeMacro(vtkAlgorithm, vtkObject);
163 void PrintSelf(ostream& os, vtkIndent indent) override;
164
182 * DOUBLE_PRECISION - Output double-precision floating-point (i.e. double)
183 * DEFAULT_PRECISION - Output precision should match the input precision.
184 */
190 };
191
203
209 virtual void SetExecutive(vtkExecutive* executive);
210
235 vtkInformation* request, vtkInformationVector** inInfo, vtkInformationVector* outInfo);
242 vtkInformation* request, vtkCollection* inInfo, vtkInformationVector* outInfo);
243
250 vtkInformationVector* outInfoVec, int requestFromOutputPort, vtkMTimeType* mtime);
251
259 virtual int ModifyRequest(vtkInformation* request, int when);
260
268
276
278
281 vtkGetObjectMacro(Information, vtkInformation);
284
289
296
299 bool UsesGarbageCollector() const override { return true; }
301
306
308
314 vtkBooleanMacro(AbortExecute, vtkTypeBool);
316
318
321 vtkGetMacro(Progress, double);
323
329 void UpdateProgress(double amount);
330
335
337
343 {
344 this->ContainerAlgorithm = containerAlg;
345 }
346 vtkAlgorithm* GetContainerAlgorithm() { return this->ContainerAlgorithm; }
350
357 vtkSetMacro(AbortOutput, bool);
358 vtkGetMacro(AbortOutput, bool);
360
362
374 void SetProgressShiftScale(double shift, double scale);
375 vtkGetMacro(ProgressShift, double);
376 vtkGetMacro(ProgressScale, double);
378
380
387 void SetProgressText(const char* ptext);
388 vtkGetStringMacro(ProgressText);
392
396 vtkGetMacro(ErrorCode, unsigned long);
398
399 // left public for performance since it is used in inner loops
400 std::atomic<vtkTypeBool> AbortExecute;
401
431
441
455
461
463
472 void SetInputArrayToProcess(const char* name, int fieldAssociation);
493 int idx, int port, int connection, int fieldAssociation, const char* name);
509 int idx, int port, int connection, int fieldAssociation, int fieldAttributeType);
510
516 virtual void SetInputArrayToProcess(int idx, vtkInformation* info);
517
543 virtual void SetInputArrayToProcess(int idx, int port, int connection,
544 const char* fieldAssociation, const char* attributeTypeorName);
546
551
552 // from here down are convenience methods that really are executive methods
553
558
564
569 vtkDataObject* GetInputDataObject(int port, int connection);
570
572
585 virtual void SetInputConnection(int port, vtkAlgorithmOutput* input);
588
599 virtual void AddInputConnection(int port, vtkAlgorithmOutput* input);
602
612 virtual void RemoveInputConnection(int port, vtkAlgorithmOutput* input);
613
617 virtual void RemoveInputConnection(int port, int idx);
618
622 virtual void RemoveAllInputConnections(int port);
632 virtual void SetInputDataObject(int port, vtkDataObject* data);
633 virtual void SetInputDataObject(vtkDataObject* data) { this->SetInputDataObject(0, data); }
634
640 virtual void AddInputDataObject(int port, vtkDataObject* data);
641 virtual void AddInputDataObject(vtkDataObject* data) { this->AddInputDataObject(0, data); }
642
651
656
661
671 vtkAlgorithm* GetInputAlgorithm(int port, int index, int& algPort);
672
676 vtkAlgorithm* GetInputAlgorithm(int port, int index);
677
682
687 vtkExecutive* GetInputExecutive(int port, int index);
688
693
697 * meta-data coming from the REQUEST_INFORMATION pass and set
698 * requests for the REQUEST_UPDATE_EXTENT pass. NOTE:
699 * Do not use this in any of the pipeline passes. Use
700 * the information objects passed as arguments instead.
701 */
702 vtkInformation* GetInputInformation(int port, int index);
708
719
723 virtual void Update(int port);
725 virtual void Update();
727
750 virtual vtkTypeBool Update(int port, vtkInformationVector* requests);
751
758
765 virtual int UpdatePiece(
766 int piece, int numPieces, int ghostLevels, const int extents[6] = nullptr);
767
774 virtual int UpdateExtent(const int extents[6]);
775
783 virtual int UpdateTimeStep(double time, int piece = -1, int numPieces = 1, int ghostLevels = 0,
784 const int extents[6] = nullptr);
785
790 virtual void UpdateInformation();
791
795 virtual void UpdateDataObject();
796
800 virtual void PropagateUpdateExtent();
801
806 virtual void UpdateWholeExtent();
807
812 void ConvertTotalInputToPortConnection(int ind, int& port, int& conn);
813
814 //======================================================================
815 // The following block of code is to support old style VTK applications. If
816 // you are using these calls there are better ways to do it in the new
817 // pipeline
818 //======================================================================
819
821
829
830 //========================================================================
831
833
840 int UpdateExtentIsEmpty(vtkInformation* pinfo, int extentType);
842
848
850
855 int* GetUpdateExtent() VTK_SIZEHINT(6) { return this->GetUpdateExtent(0); }
856 int* GetUpdateExtent(int port) VTK_SIZEHINT(6);
857 void GetUpdateExtent(int& x0, int& x1, int& y0, int& y1, int& z0, int& z1)
858 {
859 this->GetUpdateExtent(0, x0, x1, y0, y1, z0, z1);
860 }
861 void GetUpdateExtent(int port, int& x0, int& x1, int& y0, int& y1, int& z0, int& z1);
862 void GetUpdateExtent(int extent[6]) { this->GetUpdateExtent(0, extent); }
863 void GetUpdateExtent(int port, int extent[6]);
865
867
872 int GetUpdatePiece() { return this->GetUpdatePiece(0); }
873 int GetUpdatePiece(int port);
876 int GetUpdateGhostLevel() { return this->GetUpdateGhostLevel(0); }
877 int GetUpdateGhostLevel(int port);
879
881
893
895
905 void SetNoPriorTemporalAccessInformationKey(int key);
906 void SetNoPriorTemporalAccessInformationKey();
908
914
915protected:
917 ~vtkAlgorithm() override;
918
919 // Time stamp to store the last time any filter was aborted.
921
922 // Time stamp to store the last time this filter checked for an
923 // abort.
925
926 // Keys used to indicate that input/output port information has been
927 // filled.
929
930 // Arbitrary extra information associated with this algorithm
932
938
944 virtual int FillInputPortInformation(int port, vtkInformation* info);
945
951 virtual int FillOutputPortInformation(int port, vtkInformation* info);
952
956 virtual void SetNumberOfInputPorts(int n);
957
961 virtual void SetNumberOfOutputPorts(int n);
962
963 // Helper methods to check input/output port index ranges.
964 int InputPortIndexInRange(int index, const char* action);
965 int OutputPortIndexInRange(int index, const char* action);
966
972
974
982 int GetInputArrayAssociation(int idx, int connection, vtkInformationVector** inputVector);
985
987
993 int idx, vtkInformationVector** inputVector, int& association);
995
997
1005 vtkDataArray* GetInputArrayToProcess(int idx, int connection, vtkInformationVector** inputVector);
1007 int idx, int connection, vtkInformationVector** inputVector, int& association);
1009 vtkDataArray* GetInputArrayToProcess(int idx, vtkDataObject* input, int& association);
1011
1013
1019 int idx, vtkInformationVector** inputVector, int& association);
1021
1023
1032 int idx, int connection, vtkInformationVector** inputVector);
1034 int idx, int connection, vtkInformationVector** inputVector, int& association);
1038
1047
1055
1057
1061 vtkSetMacro(ErrorCode, unsigned long);
1062 unsigned long ErrorCode;
1064
1065 // Progress/Update handling
1066 double Progress;
1068
1069 // Garbage collection support.
1071
1072 // executive methods below
1073
1080 virtual void SetNthInputConnection(int port, int index, vtkAlgorithmOutput* input);
1081
1088 virtual void SetNumberOfInputConnections(int port, int n);
1089
1091
1099 {
1100 this->SetInputDataObject(port, input);
1101 }
1103 {
1104 this->AddInputDataObject(port, input);
1105 }
1106
1108
1109private:
1110 vtkExecutive* Executive;
1111 vtkInformationVector* InputPortInformation;
1112 vtkInformationVector* OutputPortInformation;
1113 vtkAlgorithmInternals* AlgorithmInternal;
1114 static void ConnectionAdd(
1115 vtkAlgorithm* producer, int producerPort, vtkAlgorithm* consumer, int consumerPort);
1116 static void ConnectionRemove(
1117 vtkAlgorithm* producer, int producerPort, vtkAlgorithm* consumer, int consumerPort);
1118 static void ConnectionRemoveAllInput(vtkAlgorithm* consumer, int port);
1119 static void ConnectionRemoveAllOutput(vtkAlgorithm* producer, int port);
1120
1121 vtkAlgorithm(const vtkAlgorithm&) = delete;
1122 void operator=(const vtkAlgorithm&) = delete;
1123
1124 double ProgressShift;
1125 double ProgressScale;
1126 vtkAlgorithm* ContainerAlgorithm;
1127 bool AbortOutput;
1128};
1129
1130VTK_ABI_NAMESPACE_END
1131#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.
void SetInputArrayToProcess(const char *name, int fieldAssociation)
Set the input data arrays that this algorithm will process.
vtkInformation * GetInputArrayInformation(int idx)
Get the info object for the specified input array to this algorithm.
virtual void RemoveInputConnection(int port, vtkAlgorithmOutput *input)
Remove a connection from the given input port index.
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.
virtual void AddInputDataObject(vtkDataObject *data)
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...
void GetUpdateExtent(int extent[6])
These functions return the update extent for output ports that use 3D extents.
int GetUpdatePiece()
These functions return the update extent for output ports that use piece extents.
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.
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).
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.
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.
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.
int GetNumberOfInputPorts()
Get the number of input ports used by the algorithm.
void ReleaseDataFlagOn()
Turn release data flag on or off for all output ports.
void SetProgressShiftScale(double shift, double scale)
Specify the shift and scale values to use to apply to the progress amount when UpdateProgress is call...
virtual VTK_UNBLOCKTHREADS 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.
vtkInformation * GetInputInformation()
Equivalent to GetInputInformation(0, 0).
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.
virtual void SetInputArrayToProcess(int idx, int port, int connection, int fieldAssociation, const char *name)
Set the input data arrays that this algorithm will process.
vtkTypeBool HasExecutive()
Check whether this algorithm has an assigned executive.
virtual void AddInputDataObject(int port, vtkDataObject *data)
Add the data-object as an input to this given port.
vtkAlgorithmOutput * GetOutputPort()
virtual VTK_UNBLOCKTHREADS void Update()
Bring this algorithm's outputs up-to-date.
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.
vtkAlgorithm * GetInputAlgorithm(int port, int index)
Returns the algorithm connected to a port-index pair.
virtual VTK_UNBLOCKTHREADS void UpdateInformation()
Bring the algorithm's information up-to-date.
static vtkAlgorithm * New()
void SetProgressObserver(vtkProgressObserver *)
If an ProgressObserver is set, the algorithm will report progress through it rather than directly.
virtual void SetInputArrayToProcess(int idx, vtkInformation *info)
Set the input data arrays that this algorithm will process.
void SetAbortExecuteAndUpdateTime()
Set AbortExecute Flag and update LastAbortTime.
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.
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.
virtual VTK_UNBLOCKTHREADS void Update(int port)
Bring this algorithm's outputs up-to-date.
void SetProgressText(const char *ptext)
Set the current text message associated with the progress state.
virtual void PropagateUpdateExtent()
Propagate meta-data upstream.
std::atomic< vtkTypeBool > AbortExecute
vtkExecutive * GetExecutive()
Get this algorithm's executive.
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.
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.
virtual VTK_UNBLOCKTHREADS void UpdateWholeExtent()
Bring this algorithm's outputs up-to-date.
virtual void RemoveInputConnection(int port, int idx)
Remove a connection given by 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.
int * GetUpdateExtent()
These functions return the update extent for output ports that use 3D extents.
vtkDataObject * GetInputDataObject(int port, int connection)
Get the data object that will contain the algorithm input for the given port and given connection.
vtkAlgorithmOutput * GetOutputPort(int index)
Get a proxy object corresponding to the given output port of this algorithm.
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.
vtkInformation * GetInputInformation(int port, int index)
Return the information object that is associated with a particular input connection.
virtual void SetInformation(vtkInformation *)
Set/Get the information object associated with this algorithm.
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.
virtual VTK_UNBLOCKTHREADS int UpdateExtent(const int extents[6])
Convenience method to update an algorithm after passing requests to its first output port.
create and manipulate ordered lists of objects
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.
virtual void ReportReferences(vtkGarbageCollector *)
Basic class to optionally replace vtkAlgorithm progress functionality.
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
virtual int FillOutputPortInformation(int port, vtkInformation *info)
Fill the output port information objects for this algorithm.
int * GetUpdateExtent()
These functions return the update extent for output ports that use 3D extents.
void AddInputDataInternal(int port, vtkDataObject *input)
virtual void SetNumberOfInputConnections(int port, int n)
Set the number of input connections on the given input port.
virtual void SetNumberOfOutputPorts(int n)
Set the number of output ports provided by the algorithm.
void SetInputDataInternal(int port, vtkDataObject *input)
These methods are used by subclasses to implement methods to set data objects directly as input.
*unsigned long ErrorCode
static vtkTimeStamp LastAbortTime
virtual int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
vtkTimeStamp LastAbortCheckTime
char * ProgressText
~vtkAlgorithm() override
vtkProgressObserver * ProgressObserver
**vtkAbstractArray * GetInputAbstractArrayToProcess(int idx, vtkInformationVector **inputVector, int &association)
**vtkDataArray * GetInputArrayToProcess(int idx, vtkInformationVector **inputVector, int &association)
vtkInformation * Information
static vtkInformationIntegerKey * PORT_REQUIREMENTS_FILLED()
vtkAlgorithm()
*double Progress
bool CheckUpstreamAbort()
Checks to see if an upstream filter has been aborted.
int GetInputArrayAssociation(int idx, vtkInformationVector **inputVector)
Get the association of the actual data array for the input array specified by idx,...
virtual void SetNumberOfInputPorts(int n)
Set the number of input ports used by the algorithm.
virtual void SetInputDataObject(int port, vtkDataObject *data)
Sets the data-object as an input on the given port index.
vtkAlgorithm vtkObject RemoveNoPriorTemporalAccessInformationKey()
Removes any information key vtkStreamingDemandDrivenPipeline::NO_PRIOR_TEMPORAL_ACCESS() to all outpu...
virtual void SetNthInputConnection(int port, int index, vtkAlgorithmOutput *input)
Replace the Nth connection on the given input port.
static vtkExecutive * DefaultExecutivePrototype
virtual vtkExecutive * CreateDefaultExecutive()
Create a default executive.
int OutputPortIndexInRange(int index, const char *action)
virtual void AddInputDataObject(int port, vtkDataObject *data)
Add the data-object as an input to this given port.
*vtkInformation * GetInputArrayFieldInformation(int idx, vtkInformationVector **inputVector)
This method takes in an index (as specified in SetInputArrayToProcess) and a pipeline information vec...
int InputPortIndexInRange(int index, const char *action)
#define vtkDataArray
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287
#define VTK_SIZEHINT(...)
#define VTK_UNBLOCKTHREADS
#define VTK_MARSHALMANUAL