VTK
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 =========================================================================*/
38 #ifndef vtkAlgorithm_h
39 #define vtkAlgorithm_h
40 
41 #include "vtkCommonExecutionModelModule.h" // For export macro
42 #include "vtkObject.h"
43 
44 class vtkAbstractArray;
45 class vtkAlgorithmInternals;
46 class vtkAlgorithmOutput;
47 class vtkCollection;
48 class vtkDataArray;
49 class vtkDataObject;
50 class vtkExecutive;
51 class vtkInformation;
58 
59 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkAlgorithm : public vtkObject
60 {
61 public:
62  static vtkAlgorithm *New();
63  vtkTypeMacro(vtkAlgorithm,vtkObject);
64  void PrintSelf(ostream& os, vtkIndent indent) override;
65 
81  {
84  DEFAULT_PRECISION
85  };
86 
91  int HasExecutive();
92 
98 
104  virtual void SetExecutive(vtkExecutive* executive);
105 
129  virtual int ProcessRequest(vtkInformation* request,
130  vtkInformationVector** inInfo,
131  vtkInformationVector* outInfo);
132 
138  vtkCollection* inInfo,
139  vtkInformationVector* outInfo);
140 
146  virtual int
148  vtkInformationVector** inInfoVec,
149  vtkInformationVector* outInfoVec,
150  int requestFromOutputPort,
151  vtkMTimeType* mtime);
152 
160  virtual int ModifyRequest(vtkInformation* request, int when);
161 
169 
177 
179 
182  vtkGetObjectMacro(Information, vtkInformation);
185 
190 
195 
197 
200  void Register(vtkObjectBase* o) override;
201  void UnRegister(vtkObjectBase* o) override;
203 
205 
209  vtkSetMacro(AbortExecute,vtkTypeBool);
210  vtkGetMacro(AbortExecute,vtkTypeBool);
211  vtkBooleanMacro(AbortExecute,vtkTypeBool);
213 
215 
218  vtkSetClampMacro(Progress,double,0.0,1.0);
219  vtkGetMacro(Progress,double);
221 
227  void UpdateProgress(double amount);
228 
230 
237  void SetProgressText(const char* ptext);
238  vtkGetStringMacro(ProgressText);
240 
242 
246  vtkGetMacro( ErrorCode, unsigned long );
248 
249  // left public for performance since it is used in inner loops
251 
281 
291 
305 
306 
308 
316  virtual void SetInputArrayToProcess(int idx, int port, int connection,
317  int fieldAssociation,
318  const char *name);
319  virtual void SetInputArrayToProcess(int idx, int port, int connection,
320  int fieldAssociation,
321  int fieldAttributeType);
322  virtual void SetInputArrayToProcess(int idx, vtkInformation *info);
324 
348  virtual void SetInputArrayToProcess(int idx, int port, int connection,
349  const char* fieldAssociation,
350  const char* attributeTypeorName);
351 
356 
357  // from here down are convenience methods that really are executive methods
358 
359 
360 
365 
371 
377  int connection);
378 
380 
393  virtual void SetInputConnection(int port, vtkAlgorithmOutput* input);
396 
398 
407  virtual void AddInputConnection(int port, vtkAlgorithmOutput* input);
410 
420  virtual void RemoveInputConnection(int port, vtkAlgorithmOutput* input);
421 
425  virtual void RemoveInputConnection(int port, int idx);
426 
430  virtual void RemoveAllInputConnections(int port);
431 
442  { this->SetInputDataObject(0, data); }
443 
451  { this->AddInputDataObject(0, data); }
452 
461  return this->GetOutputPort(0); }
462 
467 
472 
477 
482  vtkAlgorithm* GetInputAlgorithm(int port, int index, int& algPort);
483 
488 
493  {
494  return this->GetInputAlgorithm(0, 0);
495  }
496 
502 
507  {
508  return this->GetInputExecutive(0, 0);
509  }
510 
520 
525  {
526  return this->GetInputInformation(0, 0);
527  }
528 
537 
539 
542  virtual void Update(int port);
543  virtual void Update();
545 
568  virtual int Update(int port, vtkInformationVector* requests);
569 
575  virtual int Update(vtkInformation* requests);
576 
583  virtual int UpdatePiece(
584  int piece, int numPieces, int ghostLevels, const int extents[6]=nullptr);
585 
591  virtual int UpdateExtent(const int extents[6]);
592 
599  virtual int UpdateTimeStep(double time,
600  int piece=-1, int numPieces=1, int ghostLevels=0, const int extents[6]=nullptr);
601 
605  virtual void UpdateInformation();
606 
610  virtual void UpdateDataObject();
611 
615  virtual void PropagateUpdateExtent();
616 
620  virtual void UpdateWholeExtent();
621 
626  void ConvertTotalInputToPortConnection(int ind, int& port, int& conn);
627 
628  //======================================================================
629  //The following block of code is to support old style VTK applications. If
630  //you are using these calls there are better ways to do it in the new
631  //pipeline
632  //======================================================================
633 
635 
638  virtual void SetReleaseDataFlag(int);
639  virtual int GetReleaseDataFlag();
643 
644  //========================================================================
645 
647 
654  int UpdateExtentIsEmpty(vtkInformation *pinfo, int extentType);
656 
662 
664 
670  {
671  return this->GetUpdateExtent(0);
672  }
674  void GetUpdateExtent(int& x0, int& x1, int& y0, int& y1,
675  int& z0, int& z1)
676  {
677  this->GetUpdateExtent(0, x0, x1, y0, y1, z0, z1);
678  }
680  int& x0, int& x1, int& y0, int& y1,
681  int& z0, int& z1);
682  void GetUpdateExtent(int extent[6])
683  {
684  this->GetUpdateExtent(0, extent);
685  }
686  void GetUpdateExtent(int port, int extent[6]);
688 
690 
696  {
697  return this->GetUpdatePiece(0);
698  }
701  {
702  return this->GetUpdateNumberOfPieces(0);
703  }
706  {
707  return this->GetUpdateGhostLevel(0);
708  }
711 
713 
723  vtkGetObjectMacro(ProgressObserver, vtkProgressObserver);
725 
726 protected:
728  ~vtkAlgorithm() override;
729 
730  // Keys used to indicate that input/output port information has been
731  // filled.
733 
734  // Arbitrary extra information associated with this algorithm
736 
743 
750 
754  virtual void SetNumberOfInputPorts(int n);
755 
759  virtual void SetNumberOfOutputPorts(int n);
760 
761  // Helper methods to check input/output port index ranges.
762  int InputPortIndexInRange(int index, const char* action);
763  int OutputPortIndexInRange(int index, const char* action);
764 
769  int GetInputArrayAssociation(int idx, vtkInformationVector **inputVector);
770 
772 
780  int GetInputArrayAssociation(int idx, int connection,
781  vtkInformationVector **inputVector);
784 
785 
787 
793  vtkInformationVector **inputVector,
794  int& association);
796 
798 
807  int connection,
808  vtkInformationVector **inputVector);
810  int connection,
811  vtkInformationVector **inputVector,
812  int& association);
814  vtkDataObject* input);
816  vtkDataObject* input,
817  int& association);
819 
820 
822 
828  (int idx, vtkInformationVector **inputVector, int& association);
830 
832 
841  int connection,
842  vtkInformationVector **inputVector);
844  int connection,
845  vtkInformationVector **inputVector,
846  int& association);
848  vtkDataObject* input);
850  vtkDataObject* input,
851  int& association);
853 
854 
855 
864  vtkInformationVector **inputVector);
865 
866 
874 
876 
880  vtkSetMacro( ErrorCode, unsigned long );
881  unsigned long ErrorCode;
883 
884  // Progress/Update handling
885  double Progress;
887 
888  // Garbage collection support.
890 
891  // executive methods below
892 
899  virtual void SetNthInputConnection(int port, int index,
900  vtkAlgorithmOutput* input);
901 
908  virtual void SetNumberOfInputConnections(int port, int n);
909 
911 
919  { this->SetInputDataObject(port, input); }
921  { this->AddInputDataObject(port, input); }
922 
924 
925 private:
926  vtkExecutive* Executive;
927  vtkInformationVector* InputPortInformation;
928  vtkInformationVector* OutputPortInformation;
929  vtkAlgorithmInternals* AlgorithmInternal;
930  static void ConnectionAdd(vtkAlgorithm* producer, int producerPort,
931  vtkAlgorithm* consumer, int consumerPort);
932  static void ConnectionRemove(vtkAlgorithm* producer, int producerPort,
933  vtkAlgorithm* consumer, int consumerPort);
934  static void ConnectionRemoveAllInput(vtkAlgorithm* consumer, int port);
935  static void ConnectionRemoveAllOutput(vtkAlgorithm* producer, int port);
936 
937 private:
938  vtkAlgorithm(const vtkAlgorithm&) = delete;
939  void operator=(const vtkAlgorithm&) = delete;
940 };
941 
942 #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::INPUT_ARRAYS_TO_PROCESS
static vtkInformationInformationVectorKey * INPUT_ARRAYS_TO_PROCESS()
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::AbortExecute
vtkTypeBool AbortExecute
Definition: vtkAlgorithm.h:246
vtkAlgorithm::SetProgressText
void SetProgressText(const char *ptext)
Set the current text message associated with the progress state.
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)
vtkAlgorithm::Information
vtkInformation * Information
Definition: vtkAlgorithm.h:735
vtkAlgorithm::ReleaseDataFlagOn
void ReleaseDataFlagOn()
vtkInformationStringKey
Key for string values in vtkInformation.
Definition: vtkInformationStringKey.h:37
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])
Definition: vtkAlgorithm.h:682
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:83
vtkAlgorithm::PORT_REQUIREMENTS_FILLED
static vtkInformationIntegerKey * PORT_REQUIREMENTS_FILLED()
vtkAlgorithm::INPUT_PORT
static vtkInformationIntegerKey * INPUT_PORT()
vtkAlgorithm::RemoveInputConnection
virtual void RemoveInputConnection(int port, int idx)
Remove a connection given by index idx.
vtkAlgorithm::UnRegister
void UnRegister(vtkObjectBase *o) override
Decrease the reference count (release by another object).
vtkAlgorithm::RemoveInputConnection
virtual void RemoveInputConnection(int port, vtkAlgorithmOutput *input)
Remove a connection from the given input port index.
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:460
vtkAlgorithm::UpdateProgress
void UpdateProgress(double amount)
Update the progress of the process object.
vtkAlgorithm::AddInputDataObject
virtual void AddInputDataObject(vtkDataObject *data)
Definition: vtkAlgorithm.h:450
vtkAlgorithm
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:60
vtkAlgorithm::SetInputDataObject
virtual void SetInputDataObject(vtkDataObject *data)
Definition: vtkAlgorithm.h:441
vtkX3D::data
@ data
Definition: vtkX3D.h:315
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)
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:42
vtkAlgorithm::HasExecutive
int HasExecutive()
Check whether this algorithm has an assigned executive.
vtkAlgorithm::Update
virtual int Update(int port, vtkInformationVector *requests)
This method enables the passing of data requests to the algorithm to be used during execution (in add...
vtkAlgorithm::GetInputAbstractArrayToProcess
vtkAbstractArray * GetInputAbstractArrayToProcess(int idx, int connection, vtkInformationVector **inputVector, int &association)
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()
Definition: vtkAlgorithm.h:705
vtkAlgorithm::CAN_PRODUCE_SUB_EXTENT
static vtkInformationIntegerKey * CAN_PRODUCE_SUB_EXTENT()
This key tells the executive that a particular output port is capable of producing an arbitrary subex...
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
Definition: vtkAlgorithm.h:880
vtkAlgorithm::PropagateUpdateExtent
virtual void PropagateUpdateExtent()
Propagate meta-data upstream.
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:60
vtkAlgorithm::GetUpdatePiece
int GetUpdatePiece()
These functions return the update extent for output ports that use piece extents.
Definition: vtkAlgorithm.h:695
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:918
vtkAlgorithm::GetInputArrayFieldInformation
vtkInformation * GetInputArrayFieldInformation(int idx, vtkInformationVector **inputVector)
This method takes in an index (as specified in SetInputArrayToProcess) and a pipeline information vec...
vtkAlgorithm::INPUT_REQUIRED_FIELDS
static vtkInformationInformationVectorKey * INPUT_REQUIRED_FIELDS()
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkX3D::time
@ time
Definition: vtkX3D.h:497
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)
vtkAlgorithm::RemoveAllInputs
void RemoveAllInputs()
Remove all the input data.
vtkAlgorithm::GetExecutive
vtkExecutive * GetExecutive()
Get this algorithm's executive.
vtkAlgorithm::UpdateExtentIsEmpty
int UpdateExtentIsEmpty(vtkInformation *pinfo, int extentType)
vtkAlgorithm::vtkAlgorithm
vtkAlgorithm()
vtkAlgorithm::ReleaseDataFlagOff
void ReleaseDataFlagOff()
vtkAlgorithm::GetUpdateExtent
void GetUpdateExtent(int &x0, int &x1, int &y0, int &y1, int &z0, int &z1)
Definition: vtkAlgorithm.h:674
vtkAlgorithm::GetOutputDataObject
vtkDataObject * GetOutputDataObject(int port)
Get the data object that will contain the algorithm output for the given port.
vtkAlgorithm::ProgressObserver
vtkProgressObserver * ProgressObserver
Definition: vtkAlgorithm.h:923
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)
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:447
vtkAlgorithm::AddInputConnection
virtual void AddInputConnection(int port, vtkAlgorithmOutput *input)
Add a connection to the given input port index.
vtkExecutive
Superclass for all pipeline executives in VTK.
Definition: vtkExecutive.h:50
vtkCollection
create and manipulate ordered lists of objects
Definition: vtkCollection.h:52
vtkAlgorithm::GetReleaseDataFlag
virtual int GetReleaseDataFlag()
vtkAlgorithm::RemoveAllInputConnections
virtual void RemoveAllInputConnections(int port)
Removes all input connections.
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:42
vtkAlgorithm::GetInputConnection
vtkAlgorithmOutput * GetInputConnection(int port, int index)
Get the algorithm output port connected to an input port.
vtkAlgorithm::GetUpdateNumberOfPieces
int GetUpdateNumberOfPieces()
Definition: vtkAlgorithm.h:700
vtkAlgorithm::Update
virtual int Update(vtkInformation *requests)
Convenience method to update an algorithm after passing requests to its first output port.
vtkObjectBase
abstract base class for most VTK objects
Definition: vtkObjectBase.h:66
vtkAlgorithm::GetUpdateExtent
void GetUpdateExtent(int port, int extent[6])
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()
vtkAlgorithm::GetInputDataObject
vtkDataObject * GetInputDataObject(int port, int connection)
Get the data object that will contain the algorithm input for the given port and given connection.
vtkInformationIntegerKey
Key for integer values in vtkInformation.
Definition: vtkInformationIntegerKey.h:35
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:40
vtkAlgorithm::INPUT_IS_REPEATABLE
static vtkInformationIntegerKey * INPUT_IS_REPEATABLE()
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)
vtkAlgorithm::GetUpdateExtent
int * GetUpdateExtent()
These functions return the update extent for output ports that use 3D extents.
Definition: vtkAlgorithm.h:669
vtkAlgorithm::GetOutputPortInformation
vtkInformation * GetOutputPortInformation(int port)
Get the information object associated with an output port.
vtkAlgorithm::ProgressText
char * ProgressText
Definition: vtkAlgorithm.h:886
vtkAlgorithm::Progress
double Progress
Definition: vtkAlgorithm.h:885
vtkAlgorithm::AddInputConnection
virtual void AddInputConnection(vtkAlgorithmOutput *input)
vtkX3D::name
@ name
Definition: vtkX3D.h:219
vtkGarbageCollector
Detect and break reference loops.
Definition: vtkGarbageCollector.h:100
vtkObject.h
vtkAlgorithm::SINGLE_PRECISION
@ SINGLE_PRECISION
Definition: vtkAlgorithm.h:82
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:79
vtkAlgorithm::GetInputArrayToProcess
vtkDataArray * GetInputArrayToProcess(int idx, vtkDataObject *input, int &association)
vtkAlgorithm::SetInputConnection
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:87
vtkAlgorithm::CAN_HANDLE_PIECE_REQUEST
static vtkInformationIntegerKey * CAN_HANDLE_PIECE_REQUEST()
Key that tells the pipeline that a particular algorithm can or cannot handle piece request.
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkAlgorithm::New
static vtkAlgorithm * New()
vtkAlgorithm::ReportReferences
void ReportReferences(vtkGarbageCollector *) override
vtkAlgorithm::ProcessRequest
virtual int ProcessRequest(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo)
Upstream/Downstream requests form the generalized interface through which executives invoke a algorit...
vtkAlgorithm::GetInputInformation
vtkInformation * GetInputInformation()
Equivalent to GetInputInformation(0, 0)
Definition: vtkAlgorithm.h:524
vtkAlgorithm::GetInputArrayToProcess
vtkDataArray * GetInputArrayToProcess(int idx, vtkDataObject *input)
vtkAlgorithm::GetInputAlgorithm
vtkAlgorithm * GetInputAlgorithm()
Equivalent to GetInputAlgorithm(0, 0).
Definition: vtkAlgorithm.h:492
vtkAlgorithm::UpdateInformation
virtual void UpdateInformation()
Bring the algorithm's information up-to-date.
vtkAlgorithm::GetUpdateExtent
int * GetUpdateExtent(int port)
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)
vtkInformationStringVectorKey
Key for String vector values.
Definition: vtkInformationStringVectorKey.h:37
vtkAlgorithmOutput
Proxy object to connect input/output ports.
Definition: vtkAlgorithmOutput.h:40
vtkAlgorithm::GetInputExecutive
vtkExecutive * GetInputExecutive()
Equivalent to GetInputExecutive(0, 0)
Definition: vtkAlgorithm.h:506
vtkAlgorithm::GetInputArrayInformation
vtkInformation * GetInputArrayInformation(int idx)
Get the info object for the specified input array to this algorithm.
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)
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::INPUT_IS_OPTIONAL
static vtkInformationIntegerKey * INPUT_IS_OPTIONAL()
Keys used to specify input port requirements.
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)
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::INPUT_REQUIRED_DATA_TYPE
static vtkInformationStringVectorKey * INPUT_REQUIRED_DATA_TYPE()
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:345
vtkAlgorithm::UpdateDataObject
virtual void UpdateDataObject()
Create output object(s).
vtkAlgorithm::SetInformation
virtual void SetInformation(vtkInformation *)
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:37
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:65
vtkAlgorithm::DefaultExecutivePrototype
static vtkExecutive * DefaultExecutivePrototype
Definition: vtkAlgorithm.h:910
vtkX3D::index
@ index
Definition: vtkX3D.h:246
vtkAlgorithm::INPUT_CONNECTION
static vtkInformationIntegerKey * INPUT_CONNECTION()
vtkAlgorithm::ProcessRequest
int ProcessRequest(vtkInformation *request, vtkCollection *inInfo, vtkInformationVector *outInfo)
Version of ProcessRequest() that is wrapped.
vtkAlgorithm::FillOutputPortInformation
virtual int FillOutputPortInformation(int port, vtkInformation *info)
Fill the output port information objects for this algorithm.
vtkAlgorithm::SetInputConnection
virtual void SetInputConnection(vtkAlgorithmOutput *input)
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:920
vtkAlgorithm::DesiredOutputPrecision
DesiredOutputPrecision
Values used for setting the desired output precision for various algorithms.
Definition: vtkAlgorithm.h:81
vtkMTimeType
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:302
vtkAlgorithm::SetInputDataObject
virtual void SetInputDataObject(int port, vtkDataObject *data)
Sets the data-object as an input on the given port index.
vtkAlgorithm::GetOutputInformation
vtkInformation * GetOutputInformation(int port)
Return the information object that is associated with a particular output port.
vtkAlgorithm::GetUpdateGhostLevel
int GetUpdateGhostLevel(int port)
vtkAlgorithm::GetInputAbstractArrayToProcess
vtkAbstractArray * GetInputAbstractArrayToProcess(int idx, vtkDataObject *input)