Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse > Class Template Reference

A DFS or BFS through a PCTree. More...

#include <ogdf/basic/pctree/PCTreeIterators.h>

Public Types

using difference_type = std::ptrdiff_t
 
using iterator_category = std::input_iterator_tag
 
using pointer = PCNode **
 
using reference = PCNode *&
 
using value_type = PCNode *
 

Public Member Functions

 FilteringPCTreeWalk ()=default
 
 FilteringPCTreeWalk ([[maybe_unused]] const PCTree &T, PCNode *start, std::function< bool(PCNode *)> visit=return_true, std::function< bool(PCNode *)> descend_from=return_true)
 
void append (PCNode *a)
 
FilteringPCTreeWalkbegin ()
 
FilteringPCTreeWalk end () const
 
void next ()
 
 operator bool () const
 
bool operator!= (const FilteringPCTreeWalk &rhs) const
 
PCNodeoperator* ()
 
FilteringPCTreeWalkoperator++ ()
 Increment operator (prefix, returns result). More...
 
FilteringPCTreeWalk operator++ (int)
 Increment operator (postfix, returns previous value). More...
 
bool operator== (const FilteringPCTreeWalk &rhs) const
 
int pendingCount () const
 
PCNodetop ()
 
bool valid () const
 

Static Public Member Functions

static bool return_true ([[maybe_unused]] PCNode *n)
 

Private Types

using container_type = typename std::conditional< dfs, std::vector< PCNode * >, std::deque< PCNode * > >::type
 

Private Attributes

std::function< bool(PCNode *)> m_descend
 
container_type m_pending
 
std::function< bool(PCNode *)> m_visit
 

Detailed Description

template<bool dfs, bool reverse = false>
class ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >

A DFS or BFS through a PCTree.

See also
FilteringBFS

Definition at line 132 of file PCTreeIterators.h.

Member Typedef Documentation

◆ container_type

template<bool dfs, bool reverse = false>
using ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::container_type = typename std::conditional<dfs, std::vector<PCNode*>, std::deque<PCNode*> >::type
private

Definition at line 134 of file PCTreeIterators.h.

◆ difference_type

template<bool dfs, bool reverse = false>
using ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::difference_type = std::ptrdiff_t

Definition at line 144 of file PCTreeIterators.h.

◆ iterator_category

template<bool dfs, bool reverse = false>
using ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::iterator_category = std::input_iterator_tag

Definition at line 142 of file PCTreeIterators.h.

◆ pointer

template<bool dfs, bool reverse = false>
using ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::pointer = PCNode**

Definition at line 145 of file PCTreeIterators.h.

◆ reference

template<bool dfs, bool reverse = false>
using ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::reference = PCNode*&

Definition at line 146 of file PCTreeIterators.h.

◆ value_type

template<bool dfs, bool reverse = false>
using ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::value_type = PCNode*

Definition at line 143 of file PCTreeIterators.h.

Constructor & Destructor Documentation

◆ FilteringPCTreeWalk() [1/2]

template<bool dfs, bool reverse = false>
ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::FilteringPCTreeWalk ( )
explicitdefault

◆ FilteringPCTreeWalk() [2/2]

template<bool dfs, bool reverse = false>
ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::FilteringPCTreeWalk ( [[maybe_unused] ] const PCTree T,
PCNode start,
std::function< bool(PCNode *)>  visit = return_true,
std::function< bool(PCNode *)>  descend_from = return_true 
)
inlineexplicit

Definition at line 152 of file PCTreeIterators.h.

Member Function Documentation

◆ append()

template<bool dfs, bool reverse = false>
void ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::append ( PCNode a)
inline

Definition at line 218 of file PCTreeIterators.h.

◆ begin()

template<bool dfs, bool reverse = false>
FilteringPCTreeWalk& ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::begin ( )
inline

Definition at line 165 of file PCTreeIterators.h.

◆ end()

template<bool dfs, bool reverse = false>
FilteringPCTreeWalk ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::end ( ) const
inline

Definition at line 167 of file PCTreeIterators.h.

◆ next()

template<bool dfs, bool reverse = false>
void ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::next ( )
inline

Definition at line 195 of file PCTreeIterators.h.

◆ operator bool()

template<bool dfs, bool reverse = false>
ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::operator bool ( ) const
inlineexplicit

Definition at line 214 of file PCTreeIterators.h.

◆ operator!=()

template<bool dfs, bool reverse = false>
bool ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::operator!= ( const FilteringPCTreeWalk< dfs, reverse > &  rhs) const
inline

Definition at line 163 of file PCTreeIterators.h.

◆ operator*()

template<bool dfs, bool reverse = false>
PCNode* ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::operator* ( )
inline

Definition at line 178 of file PCTreeIterators.h.

◆ operator++() [1/2]

template<bool dfs, bool reverse = false>
FilteringPCTreeWalk& ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::operator++ ( )
inline

Increment operator (prefix, returns result).

Definition at line 181 of file PCTreeIterators.h.

◆ operator++() [2/2]

template<bool dfs, bool reverse = false>
FilteringPCTreeWalk ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::operator++ ( int  )
inline

Increment operator (postfix, returns previous value).

Deprecated:
"Calling FilteringPCTreeWalk++ will copy the array of pending nodes"

Definition at line 189 of file PCTreeIterators.h.

◆ operator==()

template<bool dfs, bool reverse = false>
bool ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::operator== ( const FilteringPCTreeWalk< dfs, reverse > &  rhs) const
inline

Definition at line 161 of file PCTreeIterators.h.

◆ pendingCount()

template<bool dfs, bool reverse = false>
int ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::pendingCount ( ) const
inline

Definition at line 220 of file PCTreeIterators.h.

◆ return_true()

template<bool dfs, bool reverse = false>
static bool ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::return_true ( [[maybe_unused] ] PCNode n)
inlinestatic

Definition at line 148 of file PCTreeIterators.h.

◆ top()

template<bool dfs, bool reverse = false>
PCNode* ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::top ( )
inline

Definition at line 169 of file PCTreeIterators.h.

◆ valid()

template<bool dfs, bool reverse = false>
bool ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::valid ( ) const
inline

Definition at line 216 of file PCTreeIterators.h.

Member Data Documentation

◆ m_descend

template<bool dfs, bool reverse = false>
std::function<bool(PCNode*)> ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::m_descend
private

Definition at line 138 of file PCTreeIterators.h.

◆ m_pending

template<bool dfs, bool reverse = false>
container_type ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::m_pending
private

Definition at line 136 of file PCTreeIterators.h.

◆ m_visit

template<bool dfs, bool reverse = false>
std::function<bool(PCNode*)> ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::m_visit
private

Definition at line 137 of file PCTreeIterators.h.


The documentation for this class was generated from the following file: