29 #ifndef vtkAlgorithm_h
30 #define vtkAlgorithm_h
32 #include "vtkCommonExecutionModelModule.h"
35 VTK_ABI_NAMESPACE_BEGIN
37 class vtkAlgorithmInternals;
181 int GetNumberOfInputPorts();
186 int GetNumberOfOutputPorts();
198 void SetAbortExecuteAndUpdateTime();
214 vtkGetMacro(Progress,
double);
222 void UpdateProgress(
double amount);
237 this->ContainerAlgorithm = containerAlg;
250 vtkSetMacro(AbortOutput,
bool);
251 vtkGetMacro(AbortOutput,
bool);
267 void SetProgressShiftScale(
double shift,
double scale);
268 vtkGetMacro(ProgressShift,
double);
269 vtkGetMacro(ProgressScale,
double);
280 void SetProgressText(
const char* ptext);
281 vtkGetStringMacro(ProgressText);
289 vtkGetMacro(ErrorCode,
unsigned long);
364 virtual void SetInputArrayToProcess(
365 int idx,
int port,
int connection,
int fieldAssociation,
const char*
name);
366 virtual void SetInputArrayToProcess(
367 int idx,
int port,
int connection,
int fieldAssociation,
int fieldAttributeType);
394 virtual void SetInputArrayToProcess(
int idx,
int port,
int connection,
395 const char* fieldAssociation,
const char* attributeTypeorName);
407 void RemoveAllInputs();
467 virtual void RemoveInputConnection(
int port,
int idx);
472 virtual void RemoveAllInputConnections(
int port);
505 int GetNumberOfInputConnections(
int port);
510 int GetTotalNumberOfInputConnections();
572 virtual void Update(
int port);
573 virtual void Update();
613 virtual int UpdatePiece(
614 int piece,
int numPieces,
int ghostLevels,
const int extents[6] =
nullptr);
621 virtual int UpdateExtent(
const int extents[6]);
629 virtual int UpdateTimeStep(
double time,
int piece = -1,
int numPieces = 1,
int ghostLevels = 0,
630 const int extents[6] =
nullptr);
635 virtual void UpdateInformation();
640 virtual void UpdateDataObject();
645 virtual void PropagateUpdateExtent();
650 virtual void UpdateWholeExtent();
656 void ConvertTotalInputToPortConnection(
int ind,
int&
port,
int& conn);
670 void ReleaseDataFlagOn();
671 void ReleaseDataFlagOff();
691 static void SetDefaultExecutivePrototype(
vtkExecutive* proto);
703 this->GetUpdateExtent(0, x0, x1, y0, y1, z0, z1);
705 void GetUpdateExtent(
int port,
int& x0,
int& x1,
int& y0,
int& y1,
int& z0,
int& z1);
707 void GetUpdateExtent(
int port,
int extent[6]);
717 int GetUpdatePiece(
int port);
719 int GetUpdateNumberOfPieces(
int port);
721 int GetUpdateGhostLevel(
int port);
760 bool CheckUpstreamAbort();
779 virtual void SetNumberOfInputPorts(
int n);
784 virtual void SetNumberOfOutputPorts(
int n);
787 int InputPortIndexInRange(
int index,
const char* action);
788 int OutputPortIndexInRange(
int index,
const char* action);
884 vtkSetMacro(ErrorCode,
unsigned long);
911 virtual void SetNumberOfInputConnections(
int port,
int n);
923 this->SetInputDataObject(port, input);
927 this->AddInputDataObject(port, input);
936 vtkAlgorithmInternals* AlgorithmInternal;
937 static void ConnectionAdd(
939 static void ConnectionRemove(
947 double ProgressShift;
948 double ProgressScale;
953 VTK_ABI_NAMESPACE_END
vtkAlgorithmOutput * GetOutputPort()
vtkAlgorithm * GetContainerAlgorithm()
Set/get a Container algorithm for this algorithm.
abstract base class for most VTK objects
DesiredOutputPrecision
Values used for setting the desired output precision for various algorithms.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
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. ...
vtkTypeUInt32 vtkMTimeType
static vtkTimeStamp LastAbortTime
int * GetUpdateExtent()
These functions return the update extent for output ports that use 3D extents.
Abstract superclass for all arrays.
record modification and/or execution time
vtkAlgorithm * GetInputAlgorithm()
Equivalent to GetInputAlgorithm(0, 0).
vtkInformation * GetInputInformation()
Equivalent to GetInputInformation(0, 0)
virtual void AddInputDataObject(vtkDataObject *data)
Superclass for all pipeline executives in VTK.
void SetInputDataInternal(int port, vtkDataObject *input)
These methods are used by subclasses to implement methods to set data objects directly as input...
Detect and break reference loops.
Proxy object to connect input/output ports.
void AddInputDataInternal(int port, vtkDataObject *input)
Superclass for all sources, filters, and sinks in VTK.
vtkInformation * Information
a simple class to control print indentation
virtual void ReportReferences(vtkGarbageCollector *)
int GetUpdateNumberOfPieces()
These functions return the update extent for output ports that use piece extents. ...
abstract superclass for arrays of numeric data
#define VTK_SIZEHINT(...)
void SetContainerAlgorithm(vtkAlgorithm *containerAlg)
Set/get a Container algorithm for this algorithm.
virtual void SetInputDataObject(vtkDataObject *data)
unsigned long ErrorCode
The error code contains a possible error that occurred while reading or writing the file...
create and manipulate ordered lists of objects
int GetUpdateGhostLevel()
These functions return the update extent for output ports that use piece extents. ...
vtkTimeStamp LastAbortCheckTime
bool UsesGarbageCollector() const override
Participate in garbage collection.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
vtkProgressObserver * ProgressObserver
general representation of visualization data
vtkExecutive * GetInputExecutive()
Equivalent to GetInputExecutive(0, 0)
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.
Basic class to optionally replace vtkAlgorithm progress functionality.
static vtkExecutive * DefaultExecutivePrototype
std::atomic< vtkTypeBool > AbortExecute