18#ifndef itkWatershedSegmentTreeGenerator_h
19#define itkWatershedSegmentTreeGenerator_h
77template <
typename TScalar>
119 if (st != this->GetInput(0))
121 m_HighestCalculatedFloodLevel = 0.0;
135 EquivalencyTableType *
156 itkSetMacro(Merge,
bool);
157 itkGetConstMacro(Merge,
bool);
168 itkGetConstMacro(FloodLevel,
double);
173 itkSetMacro(HighestCalculatedFloodLevel,
double);
174 itkGetConstMacro(HighestCalculatedFloodLevel,
double);
182 itkSetMacro(ConsumeInput,
bool);
183 itkGetConstMacro(ConsumeInput,
bool);
202 using Superclass::MakeOutput;
232 bool m_Merge{
false };
233 double m_FloodLevel{ 0.0 };
234 bool m_ConsumeInput{
false };
244 double m_HighestCalculatedFloodLevel{ 0.0 };
249#ifndef ITK_MANUAL_INSTANTIATION
250# include "itkWatershedSegmentTreeGenerator.hxx"
Base class for all data objects in ITK.
SmartPointer< Self > Pointer
Hash table to manage integral label equivalencies.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
Hash table to manage integral label equivalencies that are order dependent.
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
DataObject * GetOutput(const DataObjectIdentifierType &key)
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
virtual void SetNthInput(DataObjectPointerArraySizeType idx, DataObject *input)
DataObject * GetInput(const DataObjectIdentifierType &key)
Return an input.
void SetFloodLevel(double)
static void MergeSegments(SegmentTableTypePointer, OneWayEquivalencyTableTypePointer, const IdentifierType, const IdentifierType)
void PrintSelf(std::ostream &os, Indent indent) const override
void ExtractMergeHierarchy(SegmentTableTypePointer, SegmentTreeTypePointer)
void GenerateOutputRequestedRegion(DataObject *output) override
~SegmentTreeGenerator() override=default
void GenerateInputRequestedRegion() override
typename SegmentTableType::Pointer SegmentTableTypePointer
void SetInputEquivalencyTable(EquivalencyTableType *eq)
SegmentTableType * GetInputSegmentTable()
void MergeEquivalencies()
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx) override
Make a DataObject of the correct type to used as the specified output.
std::unordered_map< IdentifierType, bool > HashMapType
typename OneWayEquivalencyTableType::Pointer OneWayEquivalencyTableTypePointer
void SetInputSegmentTable(SegmentTableType *st)
static void PruneMergeSegments(SegmentTableTypePointer, OneWayEquivalencyTableTypePointer, const IdentifierType, const IdentifierType, ScalarType)
void CompileMergeList(SegmentTableTypePointer, SegmentTreeTypePointer)
void GenerateData() override
typename SegmentTreeType::Pointer SegmentTreeTypePointer
SegmentTreeType * GetOutputSegmentTree()
EquivalencyTableType * GetInputEquivalencyTable()
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
class ITK_FORWARD_EXPORT ProcessObject
SizeValueType IdentifierType