18 #ifndef itkWatershedSegmentTree_h
19 #define itkWatershedSegmentTree_h
46 template<
typename TScalar >
56 itkTypeMacro(WatershedSegmentTree,
DataObject);
77 struct merge_comp:
public std:: binary_function< bool, const merge_t &,
88 struct sort_comp:
public std:: binary_function< bool, const merge_t &,
97 typename DequeType::size_type
Size()
const
98 {
return m_Deque.size(); }
103 {
return m_Deque.empty(); }
108 {
return m_Deque.front(); }
113 {
return m_Deque.back(); }
117 {
return m_Deque.front(); }
121 {
return m_Deque.back(); }
125 { m_Deque.push_front(t); }
129 { m_Deque.push_back(t); }
133 { m_Deque.pop_front(); }
137 { m_Deque.pop_back(); }
141 {
return m_Deque.begin(); }
145 {
return m_Deque.begin(); }
150 {
return m_Deque.end(); }
155 {
return m_Deque.end(); }
163 void Initialize()
override;
170 void PrintSelf(std::ostream & os,
Indent indent)
const override;
177 #ifndef ITK_MANUAL_INSTANTIATION
178 #include "itkWatershedSegmentTree.hxx"
const merge_t & Front() const
typename DequeType::value_type ValueType
bool operator()(const merge_t &a, const merge_t &b)
SegmentTree(const Self &)
void PushBack(const ValueType &t)
class ITK_FORWARD_EXPORT DataObject
bool operator()(const merge_t &a, const merge_t &b)
SizeValueType IdentifierType
ConstIterator End() const
const merge_t & Back() const
ConstIterator Begin() const
void PushFront(const ValueType &t)
typename DequeType::iterator Iterator
void operator=(const Self &)
Control indentation during Print() invocation.
std::deque< merge_t > DequeType
typename DequeType::const_iterator ConstIterator
Base class for most ITK classes.
DequeType::size_type Size() const
Base class for all data objects in ITK.