28 #ifndef __itkProcessObject_h
29 #define __itkProcessObject_h
134 typedef std::vector< DataObjectIdentifierType >
NameArray;
163 {
return m_Inputs.size(); }
166 {
return m_Outputs.size(); }
172 NameArray GetOutputNames()
const;
178 DataObjectPointerArray GetOutputs();
183 bool HasOutput(
const DataObjectIdentifierType & key )
const;
188 DataObjectPointerArray GetIndexedInputs();
196 DataObjectPointerArraySizeType GetNumberOfIndexedInputs()
const;
205 virtual DataObjectPointerArraySizeType GetNumberOfValidRequiredInputs()
const;
210 DataObjectPointerArray GetIndexedOutputs();
212 DataObjectPointerArraySizeType GetNumberOfIndexedOutputs()
const;
229 virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx);
233 itkSetMacro(AbortGenerateData,
bool);
237 itkGetConstReferenceMacro(AbortGenerateData,
bool);
240 itkBooleanMacro(AbortGenerateData);
246 itkSetClampMacro(Progress,
float, 0.0f, 1.0f);
251 itkGetConstReferenceMacro(Progress,
float);
258 void UpdateProgress(
float amount);
278 virtual void Update();
286 virtual void UpdateLargestPossibleRegion();
300 virtual void UpdateOutputInformation();
304 virtual void PropagateRequestedRegion(
DataObject *output);
307 virtual void UpdateOutputData(
DataObject *output);
321 virtual void ResetPipeline();
337 virtual DataObjectPointer MakeOutput(
const DataObjectIdentifierType & );
344 virtual void SetReleaseDataFlag(
bool flag);
345 virtual bool GetReleaseDataFlag()
const;
362 itkSetMacro(ReleaseDataBeforeUpdateFlag,
bool);
363 itkGetConstReferenceMacro(ReleaseDataBeforeUpdateFlag,
bool);
364 itkBooleanMacro(ReleaseDataBeforeUpdateFlag);
369 itkGetConstReferenceMacro(NumberOfThreads,
ThreadIdType);
373 MultiThreader * GetMultiThreader()
const
374 {
return m_Threader; }
382 virtual void PrepareOutputs();
398 template<
class TDomainPartitioner,
class TAssociate >
420 virtual void DetermineNumberOfThreadsUsed();
424 void operator=(
const Self & );
427 void PrintSelf(std::ostream & os,
Indent indent)
const;
455 itkLegacyMacro(
virtual void RemoveInput(
DataObject *input));
463 virtual void SetPrimaryInput(
DataObject *input);
482 itkLegacyMacro(
virtual void RemoveOutput(
DataObject *output));
490 virtual void SetPrimaryOutput(
DataObject *output);
507 virtual void VerifyPreconditions();
519 virtual void VerifyInputInformation();
531 virtual void PushBackInput(
const DataObject *input);
532 virtual void PopBackInput();
533 virtual void PushFrontInput(
const DataObject *input);
534 virtual void PopFrontInput();
559 void SetRequiredInputNames(
const NameArray & );
580 virtual void GenerateInputRequestedRegion();
593 virtual void GenerateOutputRequestedRegion(
DataObject *output);
605 virtual void GenerateOutputInformation();
614 virtual void PropagateResetPipeline();
627 virtual void ReleaseInputs();
637 virtual void CacheInputReleaseDataFlags();
642 virtual void RestoreInputReleaseDataFlags();
655 void operator=(
const Self &);
691 typedef std::set< DataObjectIdentifierType, NameComparator >
NameSet;
719 friend class TestProcessObject;