VTK  9.1.0
vtkAlgorithm.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkAlgorithm.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 =========================================================================*/
100 #ifndef vtkAlgorithm_h
101 #define vtkAlgorithm_h
102 
103 #include "vtkCommonExecutionModelModule.h" // For export macro
104 #include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_0_0
105 #include "vtkObject.h"
106 
107 class vtkAbstractArray;
108 class vtkAlgorithmInternals;
109 class vtkAlgorithmOutput;
110 class vtkCollection;
111 class vtkDataArray;
112 class vtkDataObject;
113 class vtkExecutive;
114 class vtkInformation;
120 class vtkProgressObserver;
121 
122 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkAlgorithm : public vtkObject
123 {
124 public:
125  static vtkAlgorithm* New();
126  vtkTypeMacro(vtkAlgorithm, vtkObject);
127  void PrintSelf(ostream& os, vtkIndent indent) override;
128 
150  {
153  DEFAULT_PRECISION
154  };
155 
161 
167 
173  virtual void SetExecutive(vtkExecutive* executive);
174 
199  vtkInformation* request, vtkInformationVector** inInfo, vtkInformationVector* outInfo);
200 
206  vtkInformation* request, vtkCollection* inInfo, vtkInformationVector* outInfo);
207 
213  virtual int ComputePipelineMTime(vtkInformation* request, vtkInformationVector** inInfoVec,
214  vtkInformationVector* outInfoVec, int requestFromOutputPort, vtkMTimeType* mtime);
215 
223  virtual int ModifyRequest(vtkInformation* request, int when);
224 
232 
240 
242 
245  vtkGetObjectMacro(Information, vtkInformation);
248 
253 
258 
260 
263  void Register(vtkObjectBase* o) override;
264  void UnRegister(vtkObjectBase* o) override;
266 
268 
272  vtkSetMacro(AbortExecute, vtkTypeBool);
273  vtkGetMacro(AbortExecute, vtkTypeBool);
274  vtkBooleanMacro(AbortExecute, vtkTypeBool);
276 
278 
281  vtkGetMacro(Progress, double);
283 
288  VTK_DEPRECATED_IN_9_0_0("Use vtkAlgorithm::UpdateProgress")
289  void SetProgress(double);
290 
296  void UpdateProgress(double amount);
297 
299 
311  void SetProgressShiftScale(double shift, double scale);
312  vtkGetMacro(ProgressShift, double);
313  vtkGetMacro(ProgressScale, double);
315 
317 
324  void SetProgressText(const char* ptext);
325  vtkGetStringMacro(ProgressText);
327 
329 
333  vtkGetMacro(ErrorCode, unsigned long);
335 
336  // left public for performance since it is used in inner loops
337  vtkTypeBool AbortExecute;
338 
343  static vtkInformationIntegerKey* INPUT_IS_OPTIONAL();
347  static vtkInformationIntegerKey* INPUT_IS_REPEATABLE();
351  static vtkInformationInformationVectorKey* INPUT_REQUIRED_FIELDS();
355  static vtkInformationStringVectorKey* INPUT_REQUIRED_DATA_TYPE();
359  static vtkInformationInformationVectorKey* INPUT_ARRAYS_TO_PROCESS();
363  static vtkInformationIntegerKey* INPUT_PORT();
367  static vtkInformationIntegerKey* INPUT_CONNECTION();
368 
377  static vtkInformationIntegerKey* CAN_PRODUCE_SUB_EXTENT();
378 
391  static vtkInformationIntegerKey* CAN_HANDLE_PIECE_REQUEST();
392 
394 
402  virtual void SetInputArrayToProcess(
403  int idx, int port, int connection, int fieldAssociation, const char* name);
404  virtual void SetInputArrayToProcess(
405  int idx, int port, int connection, int fieldAssociation, int fieldAttributeType);
406  virtual void SetInputArrayToProcess(int idx, vtkInformation* info);
408 
432  virtual void SetInputArrayToProcess(int idx, int port, int connection,
433  const char* fieldAssociation, const char* attributeTypeorName);
434 
438  vtkInformation* GetInputArrayInformation(int idx);
439 
440  // from here down are convenience methods that really are executive methods
441 
445  void RemoveAllInputs();
446 
451  vtkDataObject* GetOutputDataObject(int port);
452 
457  vtkDataObject* GetInputDataObject(int port, int connection);
458 
460 
473  virtual void SetInputConnection(int port, vtkAlgorithmOutput* input);
474  virtual void SetInputConnection(vtkAlgorithmOutput* input);
476 
478 
487  virtual void AddInputConnection(int port, vtkAlgorithmOutput* input);
488  virtual void AddInputConnection(vtkAlgorithmOutput* input);
490 
500  virtual void RemoveInputConnection(int port, vtkAlgorithmOutput* input);
501 
505  virtual void RemoveInputConnection(int port, int idx);
506 
510  virtual void RemoveAllInputConnections(int port);
511 
520  virtual void SetInputDataObject(int port, vtkDataObject* data);
521  virtual void SetInputDataObject(vtkDataObject* data) { this->SetInputDataObject(0, data); }
522 
529  virtual void AddInputDataObject(vtkDataObject* data) { this->AddInputDataObject(0, data); }
530 
539 
544 
549 
554 
559  vtkAlgorithm* GetInputAlgorithm(int port, int index, int& algPort);
560 
565 
570 
576 
581 
591 
596 
605 
607 
610  virtual void Update(int port);
611  virtual void Update();
613 
636  virtual vtkTypeBool Update(int port, vtkInformationVector* requests);
637 
643  virtual vtkTypeBool Update(vtkInformation* requests);
644 
651  virtual int UpdatePiece(
652  int piece, int numPieces, int ghostLevels, const int extents[6] = nullptr);
653 
659  virtual int UpdateExtent(const int extents[6]);
660 
667  virtual int UpdateTimeStep(double time, int piece = -1, int numPieces = 1, int ghostLevels = 0,
668  const int extents[6] = nullptr);
669 
673  virtual void UpdateInformation();
674 
678  virtual void UpdateDataObject();
679 
683  virtual void PropagateUpdateExtent();
684 
688  virtual void UpdateWholeExtent();
689 
694  void ConvertTotalInputToPortConnection(int ind, int& port, int& conn);
695 
696  //======================================================================
697  // The following block of code is to support old style VTK applications. If
698  // you are using these calls there are better ways to do it in the new
699  // pipeline
700  //======================================================================
701 
703 
706  virtual void SetReleaseDataFlag(int);
707  virtual int GetReleaseDataFlag();
711 
712  //========================================================================
713 
715 
722  int UpdateExtentIsEmpty(vtkInformation* pinfo, int extentType);
724 
730 
732 
737  int* GetUpdateExtent() VTK_SIZEHINT(6) { return this->GetUpdateExtent(0); }
739  void GetUpdateExtent(int& x0, int& x1, int& y0, int& y1, int& z0, int& z1)
740  {
741  this->GetUpdateExtent(0, x0, x1, y0, y1, z0, z1);
742  }
743  void GetUpdateExtent(int port, int& x0, int& x1, int& y0, int& y1, int& z0, int& z1);
744  void GetUpdateExtent(int extent[6]) { this->GetUpdateExtent(0, extent); }
745  void GetUpdateExtent(int port, int extent[6]);
747 
749 
754  int GetUpdatePiece() { return this->GetUpdatePiece(0); }
758  int GetUpdateGhostLevel() { return this->GetUpdateGhostLevel(0); }
761 
763 
773  vtkGetObjectMacro(ProgressObserver, vtkProgressObserver);
775 
776 protected:
778  ~vtkAlgorithm() override;
779 
780  // Keys used to indicate that input/output port information has been
781  // filled.
783 
784  // Arbitrary extra information associated with this algorithm
786 
793 
800 
804  virtual void SetNumberOfInputPorts(int n);
805 
809  virtual void SetNumberOfOutputPorts(int n);
810 
811  // Helper methods to check input/output port index ranges.
812  int InputPortIndexInRange(int index, const char* action);
813  int OutputPortIndexInRange(int index, const char* action);
814 
819  int GetInputArrayAssociation(int idx, vtkInformationVector** inputVector);
820 
822 
830  int GetInputArrayAssociation(int idx, int connection, vtkInformationVector** inputVector);
833 
835 
841  int idx, vtkInformationVector** inputVector, int& association);
843 
845 
853  vtkDataArray* GetInputArrayToProcess(int idx, int connection, vtkInformationVector** inputVector);
855  int idx, int connection, vtkInformationVector** inputVector, int& association);
857  vtkDataArray* GetInputArrayToProcess(int idx, vtkDataObject* input, int& association);
859 
861 
867  int idx, vtkInformationVector** inputVector, int& association);
869 
871 
880  int idx, int connection, vtkInformationVector** inputVector);
882  int idx, int connection, vtkInformationVector** inputVector, int& association);
884  vtkAbstractArray* GetInputAbstractArrayToProcess(int idx, vtkDataObject* input, int& association);
886 
895 
903 
905 
909  vtkSetMacro(ErrorCode, unsigned long);
910  unsigned long ErrorCode;
912 
913  // Progress/Update handling
914  double Progress;
916 
917  // Garbage collection support.
919 
920  // executive methods below
921 
928  virtual void SetNthInputConnection(int port, int index, vtkAlgorithmOutput* input);
929 
936  virtual void SetNumberOfInputConnections(int port, int n);
937 
939 
947  {
948  this->SetInputDataObject(port, input);
949  }
951  {
952  this->AddInputDataObject(port, input);
953  }
954 
956 
957 private:
958  vtkExecutive* Executive;
959  vtkInformationVector* InputPortInformation;
960  vtkInformationVector* OutputPortInformation;
961  vtkAlgorithmInternals* AlgorithmInternal;
962  static void ConnectionAdd(
963  vtkAlgorithm* producer, int producerPort, vtkAlgorithm* consumer, int consumerPort);
964  static void ConnectionRemove(
965  vtkAlgorithm* producer, int producerPort, vtkAlgorithm* consumer, int consumerPort);
966  static void ConnectionRemoveAllInput(vtkAlgorithm* consumer, int port);
967  static void ConnectionRemoveAllOutput(vtkAlgorithm* producer, int port);
968 
969 private:
970  vtkAlgorithm(const vtkAlgorithm&) = delete;
971  void operator=(const vtkAlgorithm&) = delete;
972 
973  double ProgressShift;
974  double ProgressScale;
975 };
976 
977 #endif
vtkAlgorithm::GetInputAbstractArrayToProcess
vtkAbstractArray * GetInputAbstractArrayToProcess(int idx, int connection, vtkInformationVector **inputVector)
Filters that have multiple connections on one port can use this signature.
vtkAlgorithm::InputPortIndexInRange
int InputPortIndexInRange(int index, const char *action)
vtkAlgorithm::CreateDefaultExecutive
virtual vtkExecutive * CreateDefaultExecutive()
Create a default executive.
vtkAlgorithm::SetReleaseDataFlag
virtual void SetReleaseDataFlag(int)
Turn release data flag on or off for all output ports.
vtkAlgorithm::AddInputDataObject
virtual void AddInputDataObject(int port, vtkDataObject *data)
Add the data-object as an input to this given port.
vtkAlgorithm::GetTotalNumberOfInputConnections
int GetTotalNumberOfInputConnections()
Get the total number of inputs for this algorithm.
vtkAlgorithm::SetNumberOfInputConnections
virtual void SetNumberOfInputConnections(int port, int n)
Set the number of input connections on the given input port.
vtkAlgorithm::GetInputArrayAssociation
int GetInputArrayAssociation(int idx, vtkDataObject *input)
Filters that have multiple connections on one port can use this signature.
vtkAlgorithm::Information
vtkInformation * Information
Definition: vtkAlgorithm.h:785
vtkAlgorithm::ReleaseDataFlagOn
void ReleaseDataFlagOn()
Turn release data flag on or off for all output ports.
vtkInformationStringKey
Key for string values in vtkInformation.
Definition: vtkInformationStringKey.h:34
vtkAlgorithm::~vtkAlgorithm
~vtkAlgorithm() override
vtkAlgorithm::Update
virtual void Update(int port)
Bring this algorithm's outputs up-to-date.
vtkAlgorithm::GetUpdateExtent
void GetUpdateExtent(int extent[6])
These functions return the update extent for output ports that use 3D extents.
Definition: vtkAlgorithm.h:744
vtkAlgorithm::UpdateTimeStep
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.
vtkAlgorithm::DOUBLE_PRECISION
@ DOUBLE_PRECISION
Definition: vtkAlgorithm.h:152
vtkAlgorithm::PORT_REQUIREMENTS_FILLED
static vtkInformationIntegerKey * PORT_REQUIREMENTS_FILLED()
vtkX3D::scale
@ scale
Definition: vtkX3D.h:235
vtkAlgorithm::UnRegister
void UnRegister(vtkObjectBase *o) override
Participate in garbage collection.
vtkAlgorithm::GetNumberOfInputPorts
int GetNumberOfInputPorts()
Get the number of input ports used by the algorithm.
vtkAlgorithm::OutputPortIndexInRange
int OutputPortIndexInRange(int index, const char *action)
vtkAlgorithm::GetOutputPort
vtkAlgorithmOutput * GetOutputPort()
Definition: vtkAlgorithm.h:538
vtkAlgorithm::AddInputDataObject
virtual void AddInputDataObject(vtkDataObject *data)
Definition: vtkAlgorithm.h:529
vtkAlgorithm
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:123
vtkAlgorithm::SetInputDataObject
virtual void SetInputDataObject(vtkDataObject *data)
Definition: vtkAlgorithm.h:521
vtkX3D::data
@ data
Definition: vtkX3D.h:321
vtkAlgorithm::FillInputPortInformation
virtual int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
vtkAlgorithm::GetInputAbstractArrayToProcess
vtkAbstractArray * GetInputAbstractArrayToProcess(int idx, vtkDataObject *input, int &association)
Filters that have multiple connections on one port can use this signature.
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:145
vtkAlgorithm::HasExecutive
int HasExecutive()
Check whether this algorithm has an assigned executive.
vtkAlgorithm::GetInputAbstractArrayToProcess
vtkAbstractArray * GetInputAbstractArrayToProcess(int idx, int connection, vtkInformationVector **inputVector, int &association)
Filters that have multiple connections on one port can use this signature.
vtkAlgorithm::GetInputPortInformation
vtkInformation * GetInputPortInformation(int port)
Get the information object associated with an input port.
vtkAlgorithm::ModifyRequest
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...
vtkAlgorithm::SetProgressObserver
void SetProgressObserver(vtkProgressObserver *)
If an ProgressObserver is set, the algorithm will report progress through it rather than directly.
vtkAlgorithm::GetInputArrayAssociation
int GetInputArrayAssociation(int idx, vtkInformationVector **inputVector)
Get the assocition of the actual data array for the input array specified by idx, this is only reason...
vtkAlgorithm::GetUpdateGhostLevel
int GetUpdateGhostLevel()
These functions return the update extent for output ports that use piece extents.
Definition: vtkAlgorithm.h:758
vtkAlgorithm::GetNumberOfOutputPorts
int GetNumberOfOutputPorts()
Get the number of output ports provided by the algorithm.
vtkAlgorithm::GetInputArrayToProcess
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...
vtkAlgorithm::ErrorCode
unsigned long ErrorCode
The error code contains a possible error that occurred while reading or writing the file.
Definition: vtkAlgorithm.h:909
vtkAlgorithm::PropagateUpdateExtent
virtual void PropagateUpdateExtent()
Propagate meta-data upstream.
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:82
vtkAlgorithm::GetUpdatePiece
int GetUpdatePiece()
These functions return the update extent for output ports that use piece extents.
Definition: vtkAlgorithm.h:754
vtkAlgorithm::SetExecutive
virtual void SetExecutive(vtkExecutive *executive)
Set this algorithm's executive.
vtkAlgorithm::SetInputDataInternal
void SetInputDataInternal(int port, vtkDataObject *input)
These methods are used by subclasses to implement methods to set data objects directly as input.
Definition: vtkAlgorithm.h:946
vtkAlgorithm::GetInputArrayFieldInformation
vtkInformation * GetInputArrayFieldInformation(int idx, vtkInformationVector **inputVector)
This method takes in an index (as specified in SetInputArrayToProcess) and a pipeline information vec...
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:159
vtkX3D::time
@ time
Definition: vtkX3D.h:503
vtkAlgorithm::GetInputArrayToProcess
vtkDataArray * GetInputArrayToProcess(int idx, int connection, vtkInformationVector **inputVector)
Filters that have multiple connections on one port can use this signature.
vtkAlgorithm::SetNumberOfInputPorts
virtual void SetNumberOfInputPorts(int n)
Set the number of input ports used by the algorithm.
vtkAlgorithm::GetInputExecutive
vtkExecutive * GetInputExecutive(int port, int index)
Returns the executive associated with a particular input connection.
vtkAlgorithm::GetInputAbstractArrayToProcess
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...
vtkAlgorithm::GetUpdatePiece
int GetUpdatePiece(int port)
These functions return the update extent for output ports that use piece extents.
vtkAlgorithm::GetExecutive
vtkExecutive * GetExecutive()
Get this algorithm's executive.
vtkAlgorithm::UpdateExtentIsEmpty
int UpdateExtentIsEmpty(vtkInformation *pinfo, int extentType)
This detects when the UpdateExtent will generate no data This condition is satisfied when the UpdateE...
vtkAlgorithm::vtkAlgorithm
vtkAlgorithm()
vtkAlgorithm::ReleaseDataFlagOff
void ReleaseDataFlagOff()
Turn release data flag on or off for all output ports.
vtkAlgorithm::GetUpdateExtent
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.
Definition: vtkAlgorithm.h:739
vtkAlgorithm::ProgressObserver
vtkProgressObserver * ProgressObserver
Definition: vtkAlgorithm.h:955
vtkAlgorithm::Register
void Register(vtkObjectBase *o) override
Participate in garbage collection.
vtkAlgorithm::GetInputInformation
vtkInformation * GetInputInformation(int port, int index)
Return the information object that is associated with a particular input connection.
vtkAlgorithm::GetInputArrayToProcess
vtkDataArray * GetInputArrayToProcess(int idx, int connection, vtkInformationVector **inputVector, int &association)
Filters that have multiple connections on one port can use this signature.
vtkAlgorithm::UpdateExtentIsEmpty
int UpdateExtentIsEmpty(vtkInformation *pinfo, vtkDataObject *output)
This detects when the UpdateExtent will generate no data This condition is satisfied when the UpdateE...
vtkX3D::port
@ port
Definition: vtkX3D.h:453
vtkExecutive
Superclass for all pipeline executives in VTK.
Definition: vtkExecutive.h:76
vtkCollection
create and manipulate ordered lists of objects
Definition: vtkCollection.h:53
vtkAlgorithm::GetReleaseDataFlag
virtual int GetReleaseDataFlag()
Turn release data flag on or off for all output ports.
vtkAlgorithm::ConvertTotalInputToPortConnection
void ConvertTotalInputToPortConnection(int ind, int &port, int &conn)
Convenience routine to convert from a linear ordering of input connections to a port/connection pair.
VTK_SIZEHINT
#define VTK_SIZEHINT(...)
Definition: vtkWrappingHints.h:48
vtkAlgorithm::GetInputConnection
vtkAlgorithmOutput * GetInputConnection(int port, int index)
Get the algorithm output port connected to an input port.
vtkAlgorithm::GetUpdateNumberOfPieces
int GetUpdateNumberOfPieces()
These functions return the update extent for output ports that use piece extents.
Definition: vtkAlgorithm.h:756
vtkObjectBase
abstract base class for most VTK objects
Definition: vtkObjectBase.h:70
vtkAlgorithm::GetUpdateExtent
void GetUpdateExtent(int port, int extent[6])
These functions return the update extent for output ports that use 3D extents.
vtkAlgorithm::GetInputAlgorithm
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.
vtkAlgorithm::Update
virtual void Update()
Bring this algorithm's outputs up-to-date.
vtkInformationIntegerKey
Key for integer values in vtkInformation.
Definition: vtkInformationIntegerKey.h:32
vtkAlgorithm::GetOutputPort
vtkAlgorithmOutput * GetOutputPort(int index)
Get a proxy object corresponding to the given output port of this algorithm.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
VTK_DEPRECATED_IN_9_0_0
#define VTK_DEPRECATED_IN_9_0_0(reason)
Definition: vtkDeprecation.h:126
vtkAlgorithm::UpdateExtent
virtual int UpdateExtent(const int extents[6])
Convenience method to update an algorithm after passing requests to its first output port.
vtkAlgorithm::GetInputArrayToProcess
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...
vtkAlgorithm::GetUpdateExtent
int * GetUpdateExtent()
These functions return the update extent for output ports that use 3D extents.
Definition: vtkAlgorithm.h:737
vtkAlgorithm::GetOutputPortInformation
vtkInformation * GetOutputPortInformation(int port)
Get the information object associated with an output port.
vtkAlgorithm::ProgressText
char * ProgressText
Definition: vtkAlgorithm.h:915
vtkAlgorithm::Progress
double Progress
Definition: vtkAlgorithm.h:914
vtkAlgorithm::ProcessRequest
vtkTypeBool ProcessRequest(vtkInformation *request, vtkCollection *inInfo, vtkInformationVector *outInfo)
Version of ProcessRequest() that is wrapped.
vtkX3D::name
@ name
Definition: vtkX3D.h:225
vtkGarbageCollector
Detect and break reference loops.
Definition: vtkGarbageCollector.h:95
vtkObject.h
vtkAlgorithm::SINGLE_PRECISION
@ SINGLE_PRECISION
Definition: vtkAlgorithm.h:151
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:76
vtkAlgorithm::GetInputArrayToProcess
vtkDataArray * GetInputArrayToProcess(int idx, vtkDataObject *input, int &association)
Filters that have multiple connections on one port can use this signature.
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:183
vtkX3D::info
@ info
Definition: vtkX3D.h:382
vtkAlgorithm::New
static vtkAlgorithm * New()
vtkAlgorithm::ReportReferences
void ReportReferences(vtkGarbageCollector *) override
vtkAlgorithm::GetInputInformation
vtkInformation * GetInputInformation()
Equivalent to GetInputInformation(0, 0)
Definition: vtkAlgorithm.h:595
vtkAlgorithm::GetInputArrayToProcess
vtkDataArray * GetInputArrayToProcess(int idx, vtkDataObject *input)
Filters that have multiple connections on one port can use this signature.
vtkAlgorithm::GetInputAlgorithm
vtkAlgorithm * GetInputAlgorithm()
Equivalent to GetInputAlgorithm(0, 0).
Definition: vtkAlgorithm.h:569
vtkAlgorithm::Update
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...
vtkAlgorithm::UpdateInformation
virtual void UpdateInformation()
Bring the algorithm's information up-to-date.
vtkAlgorithm::GetUpdateExtent
int * GetUpdateExtent(int port)
These functions return the update extent for output ports that use 3D extents.
vtkDeprecation.h
vtkAlgorithm::UpdatePiece
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.
vtkAlgorithm::GetInputAbstractArrayToProcess
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...
vtkInformationStringVectorKey
Key for String vector values.
Definition: vtkInformationStringVectorKey.h:34
vtkAlgorithmOutput
Proxy object to connect input/output ports.
Definition: vtkAlgorithmOutput.h:66
vtkAlgorithm::GetInputExecutive
vtkExecutive * GetInputExecutive()
Equivalent to GetInputExecutive(0, 0)
Definition: vtkAlgorithm.h:580
vtkInformationInformationVectorKey
Key for vtkInformation vectors.
Definition: vtkInformationInformationVectorKey.h:34
vtkAlgorithm::UpdateWholeExtent
virtual void UpdateWholeExtent()
Bring this algorithm's outputs up-to-date.
vtkAlgorithm::GetUpdateNumberOfPieces
int GetUpdateNumberOfPieces(int port)
These functions return the update extent for output ports that use piece extents.
vtkAlgorithm::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkAlgorithm::GetInputAlgorithm
vtkAlgorithm * GetInputAlgorithm(int port, int index)
Returns the algorithm connected to a port-index pair.
vtkAlgorithm::SetDefaultExecutivePrototype
static void SetDefaultExecutivePrototype(vtkExecutive *proto)
If the DefaultExecutivePrototype is set, a copy of it is created in CreateDefaultExecutive() using Ne...
vtkAlgorithm::GetUpdateExtent
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.
vtkAlgorithm::ComputePipelineMTime
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.
vtkAlgorithm::SetNthInputConnection
virtual void SetNthInputConnection(int port, int index, vtkAlgorithmOutput *input)
Replace the Nth connection on the given input port.
vtkX3D::extent
@ extent
Definition: vtkX3D.h:351
vtkAlgorithm::UpdateDataObject
virtual void UpdateDataObject()
Create output object(s).
vtkAlgorithm::SetInformation
virtual void SetInformation(vtkInformation *)
Set/Get the information object associated with this algorithm.
vtkAlgorithm::SetNumberOfOutputPorts
virtual void SetNumberOfOutputPorts(int n)
Set the number of output ports provided by the algorithm.
vtkProgressObserver
Basic class to optionally replace vtkAlgorithm progress functionality.
Definition: vtkProgressObserver.h:40
vtkAlgorithm::Update
virtual vtkTypeBool Update(vtkInformation *requests)
Convenience method to update an algorithm after passing requests to its first output port.
vtkAlgorithm::GetNumberOfInputConnections
int GetNumberOfInputConnections(int port)
Get the number of inputs currently connected to a port.
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:169
vtkAlgorithm::DefaultExecutivePrototype
static vtkExecutive * DefaultExecutivePrototype
Definition: vtkAlgorithm.h:938
vtkX3D::index
@ index
Definition: vtkX3D.h:252
vtkAlgorithm::ProcessRequest
virtual vtkTypeBool ProcessRequest(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo)
Upstream/Downstream requests form the generalized interface through which executives invoke a algorit...
vtkAlgorithm::FillOutputPortInformation
virtual int FillOutputPortInformation(int port, vtkInformation *info)
Fill the output port information objects for this algorithm.
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkAlgorithm::GetInputArrayAssociation
int GetInputArrayAssociation(int idx, int connection, vtkInformationVector **inputVector)
Filters that have multiple connections on one port can use this signature.
vtkAlgorithm::AddInputDataInternal
void AddInputDataInternal(int port, vtkDataObject *input)
Definition: vtkAlgorithm.h:950
vtkAlgorithm::DesiredOutputPrecision
DesiredOutputPrecision
Values used for setting the desired output precision for various algorithms.
Definition: vtkAlgorithm.h:150
vtkMTimeType
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287
vtkAlgorithm::GetOutputInformation
vtkInformation * GetOutputInformation(int port)
Return the information object that is associated with a particular output port.
vtkAlgorithm::GetUpdateGhostLevel
int GetUpdateGhostLevel(int port)
These functions return the update extent for output ports that use piece extents.
vtkAlgorithm::GetInputAbstractArrayToProcess
vtkAbstractArray * GetInputAbstractArrayToProcess(int idx, vtkDataObject *input)
Filters that have multiple connections on one port can use this signature.