24 m_MiniPipelineFilter = 0;
27 this->ResetProgress();
30 m_CallbackCommand = CommandType::New();
31 m_CallbackCommand->SetCallbackFunction(
this, & Self::ReportProgress );
37 UnregisterAllFilters();
45 unsigned long progressTag =
47 unsigned long iterationTag =
59 m_FilterRecord.push_back(record);
67 FilterRecordVector::iterator it;
68 for(it = m_FilterRecord.begin(); it != m_FilterRecord.end();++it)
70 it->Filter->RemoveObserver(it->ProgressObserverTag);
71 it->Filter->RemoveObserver(it->IterationObserverTag);
75 m_FilterRecord.clear();
86 m_AccumulatedProgress = 0.0f;
87 m_BaseAccumulatedProgress = 0.0f;
90 FilterRecordVector::iterator it;
91 for(it = m_FilterRecord.begin();it != m_FilterRecord.end();++it)
94 it->Filter->SetProgress( 0.0f );
102 m_BaseAccumulatedProgress = m_AccumulatedProgress;
104 FilterRecordVector::iterator it;
105 for(it = m_FilterRecord.begin();it != m_FilterRecord.end();++it)
108 it->Filter->SetProgress( 0.0f );
119 if(
typeid( event ) ==
typeid( pe ) )
122 m_AccumulatedProgress = m_BaseAccumulatedProgress;
124 FilterRecordVector::iterator it;
125 for(it = m_FilterRecord.begin();it != m_FilterRecord.end();++it)
127 m_AccumulatedProgress += it->Filter->GetProgress() * it->Weight;
131 m_MiniPipelineFilter->UpdateProgress(m_AccumulatedProgress);
134 if ( m_MiniPipelineFilter->GetAbortGenerateData() )
137 FilterRecordVector::iterator fit;
138 for(fit = m_FilterRecord.begin();fit != m_FilterRecord.end();++fit)
140 if (who == fit->Filter)
142 fit->Filter->AbortGenerateDataOn();
147 else if (
typeid( event ) ==
typeid ( ie ) )
155 Superclass::PrintSelf(os,indent);
157 if (m_MiniPipelineFilter)
159 os << indent << m_MiniPipelineFilter << std::endl;
161 os << indent << m_AccumulatedProgress << std::endl;
162 os << indent << m_BaseAccumulatedProgress << std::endl;