diff --git a/source/FAST/Algorithms/RunUntilFinished/RunUntilFinished.cpp b/source/FAST/Algorithms/RunUntilFinished/RunUntilFinished.cpp index 72bfb660d..fcc9332be 100644 --- a/source/FAST/Algorithms/RunUntilFinished/RunUntilFinished.cpp +++ b/source/FAST/Algorithms/RunUntilFinished/RunUntilFinished.cpp @@ -5,15 +5,25 @@ namespace fast { RunUntilFinished::RunUntilFinished() { createInputPort(0); createOutputPort(0); + m_finished = false; } void RunUntilFinished::execute() { - // TODO this assumes the parent only has 1 output port auto parentPO = mInputConnections[0]->getProcessObject(); + if(m_finished) { + return; + } + // TODO this assumes the parent only has 1 output port DataObject::pointer inputData; + Progress progress(1000); + progress.setText("Running "); do { inputData = parentPO->runAndGetOutputData(); + if(inputData->hasFrameData("progress")) + progress.update(round(1000*inputData->getFrameData("progress"))); } while(!inputData->isLastFrame()); + progress.update(1000); + m_finished = true; addOutputData(0, inputData); } diff --git a/source/FAST/Algorithms/RunUntilFinished/RunUntilFinished.hpp b/source/FAST/Algorithms/RunUntilFinished/RunUntilFinished.hpp index d6378fa77..4fcbe2ad9 100644 --- a/source/FAST/Algorithms/RunUntilFinished/RunUntilFinished.hpp +++ b/source/FAST/Algorithms/RunUntilFinished/RunUntilFinished.hpp @@ -17,6 +17,7 @@ class FAST_EXPORT RunUntilFinished : public ProcessObject { FAST_CONSTRUCTOR(RunUntilFinished); private: void execute() override; + bool m_finished = false; }; } \ No newline at end of file