28 #ifndef __itkProcessObject_h
29 #define __itkProcessObject_h
136 typedef std::vector< DataObjectIdentifierType >
NameArray;
165 {
return m_Inputs.size(); }
168 {
return m_Outputs.size(); }
174 NameArray GetOutputNames()
const;
180 DataObjectPointerArray GetOutputs();
185 bool HasOutput(
const DataObjectIdentifierType & key )
const;
190 DataObjectPointerArray GetIndexedInputs();
198 DataObjectPointerArraySizeType GetNumberOfIndexedInputs()
const;
203 virtual DataObjectPointerArraySizeType GetNumberOfValidRequiredInputs()
const;
208 DataObjectPointerArray GetIndexedOutputs();
210 DataObjectPointerArraySizeType GetNumberOfIndexedOutputs()
const;
227 virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx);
231 itkSetMacro(AbortGenerateData,
bool);
235 itkGetConstReferenceMacro(AbortGenerateData,
bool);
238 itkBooleanMacro(AbortGenerateData);
244 itkSetClampMacro(Progress,
float, 0.0f, 1.0f);
249 itkGetConstReferenceMacro(Progress,
float);
256 void UpdateProgress(
float amount);
276 virtual void Update();
284 virtual void UpdateLargestPossibleRegion();
298 virtual void UpdateOutputInformation();
302 virtual void PropagateRequestedRegion(
DataObject *output);
305 virtual void UpdateOutputData(
DataObject *output);
319 virtual void ResetPipeline();
335 virtual DataObjectPointer MakeOutput(
const DataObjectIdentifierType & );
342 virtual void SetReleaseDataFlag(
bool flag);
343 virtual bool GetReleaseDataFlag()
const;
360 itkSetMacro(ReleaseDataBeforeUpdateFlag,
bool);
361 itkGetConstReferenceMacro(ReleaseDataBeforeUpdateFlag,
bool);
362 itkBooleanMacro(ReleaseDataBeforeUpdateFlag);
367 itkGetConstReferenceMacro(NumberOfThreads,
ThreadIdType);
371 MultiThreader * GetMultiThreader()
const
372 {
return m_Threader; }
380 virtual void PrepareOutputs();
396 template<
class TDomainPartitioner,
class TAssociate >
418 virtual void DetermineNumberOfThreadsUsed();
422 void operator=(
const Self & );
425 void PrintSelf(std::ostream & os,
Indent indent)
const;
453 itkLegacyMacro(
virtual void RemoveInput(
DataObject *input));
462 itkGetStringMacro(PrimaryInputName);
466 virtual void SetPrimaryInput(
DataObject *input);
475 itkGetStringMacro(PrimaryOutputName);
490 itkLegacyMacro(
virtual void RemoveOutput(
DataObject *output));
498 virtual void SetPrimaryOutput(
DataObject *output);
518 virtual void VerifyPreconditions();
530 virtual void VerifyInputInformation();
547 virtual void PushBackInput(
const DataObject *input);
548 virtual void PopBackInput();
549 virtual void PushFrontInput(
const DataObject *input);
550 virtual void PopFrontInput();
575 void SetRequiredInputNames(
const NameArray & );
596 virtual void GenerateInputRequestedRegion();
609 virtual void GenerateOutputRequestedRegion(
DataObject *output);
621 virtual void GenerateOutputInformation();
630 virtual void PropagateResetPipeline();
643 virtual void ReleaseInputs();
653 virtual void CacheInputReleaseDataFlags();
658 virtual void RestoreInputReleaseDataFlags();
672 void operator=(
const Self &);
690 DataObjectIdentifierType MakeNameFromIndex( DataObjectPointerArraySizeType )
const;
691 DataObjectPointerArraySizeType MakeIndexFromName(
const DataObjectIdentifierType & )
const;
692 bool IsIndexedName(
const DataObjectIdentifierType & )
const;
711 typedef std::set< DataObjectIdentifierType, NameComparator >
NameSet;
743 friend class TestProcessObject;