32 #ifndef vtkAlgorithm_h
33 #define vtkAlgorithm_h
35 #include "vtkCommonExecutionModelModule.h"
39 class vtkAlgorithmInternals;
144 int requestFromOutputPort,
183 int GetNumberOfInputPorts();
188 int GetNumberOfOutputPorts();
212 vtkSetClampMacro(Progress,
double,0.0,1.0);
213 vtkGetMacro(Progress,
double);
221 void UpdateProgress(
double amount);
231 void SetProgressText(
const char* ptext);
232 vtkGetStringMacro(ProgressText);
240 vtkGetMacro( ErrorCode,
unsigned long );
310 virtual void SetInputArrayToProcess(
int idx,
int port,
int connection,
311 int fieldAssociation,
313 virtual void SetInputArrayToProcess(
int idx,
int port,
int connection,
314 int fieldAssociation,
315 int fieldAttributeType);
342 virtual void SetInputArrayToProcess(
int idx,
int port,
int connection,
343 const char* fieldAssociation,
344 const char* attributeTypeorName);
358 void RemoveAllInputs();
419 virtual void RemoveInputConnection(
int port,
int idx);
424 virtual void RemoveAllInputConnections(
int port);
436 { this->SetInputDataObject(0,
data); }
445 { this->AddInputDataObject(0,
data); }
455 return this->GetOutputPort(0); }
460 int GetNumberOfInputConnections(
int port);
465 int GetTotalNumberOfInputConnections();
488 return this->GetInputAlgorithm(0, 0);
502 return this->GetInputExecutive(0, 0);
520 return this->GetInputInformation(0, 0);
536 virtual void Update(
int port);
537 virtual void Update();
577 virtual int UpdatePiece(
578 int piece,
int numPieces,
int ghostLevels,
const int extents[6]=
nullptr);
585 virtual int UpdateExtent(
const int extents[6]);
593 virtual int UpdateTimeStep(
double time,
594 int piece=-1,
int numPieces=1,
int ghostLevels=0,
const int extents[6]=
nullptr);
599 virtual void UpdateInformation();
604 virtual void UpdateDataObject();
609 virtual void PropagateUpdateExtent();
614 virtual void UpdateWholeExtent();
620 void ConvertTotalInputToPortConnection(
int ind,
int&
port,
int& conn);
632 virtual void SetReleaseDataFlag(
int);
633 virtual int GetReleaseDataFlag();
634 void ReleaseDataFlagOn();
635 void ReleaseDataFlagOff();
655 static void SetDefaultExecutivePrototype(
vtkExecutive* proto);
665 return this->GetUpdateExtent(0);
671 this->GetUpdateExtent(0, x0, x1, y0, y1, z0, z1);
673 void GetUpdateExtent(
int port,
674 int& x0,
int& x1,
int& y0,
int& y1,
678 this->GetUpdateExtent(0,
extent);
680 void GetUpdateExtent(
int port,
int extent[6]);
691 return this->GetUpdatePiece(0);
693 int GetUpdatePiece(
int port);
696 return this->GetUpdateNumberOfPieces(0);
698 int GetUpdateNumberOfPieces(
int port);
701 return this->GetUpdateGhostLevel(0);
703 int GetUpdateGhostLevel(
int port);
748 virtual void SetNumberOfInputPorts(
int n);
753 virtual void SetNumberOfOutputPorts(
int n);
756 int InputPortIndexInRange(
int index,
const char* action);
757 int OutputPortIndexInRange(
int index,
const char* action);
774 int GetInputArrayAssociation(
int idx,
int connection,
874 vtkSetMacro( ErrorCode,
unsigned long );
893 virtual void SetNthInputConnection(
int port,
int index,
902 virtual void SetNumberOfInputConnections(
int port,
int n);
913 { this->SetInputDataObject(
port, input); }
915 { this->AddInputDataObject(
port, input); }
923 vtkAlgorithmInternals* AlgorithmInternal;
924 static void ConnectionAdd(
vtkAlgorithm* producer,
int producerPort,
926 static void ConnectionRemove(
vtkAlgorithm* producer,
int producerPort,