// =============================================================== //
//                                                                 //
//   File      : AP_TreeSet.hxx                                    //
//   Purpose   : function for sets of tree nodes                   //
//                                                                 //
//   Coded by Ralf Westram (coder@reallysoft.de) in January 2017   //
//   http://www.arb-home.de/                                       //
//                                                                 //
// =============================================================== //

#ifndef AP_TREESET_HXX
#define AP_TREESET_HXX

#ifndef AP_TREE_HXX
#include "AP_Tree.hxx"
#endif
#ifndef _GLIBCXX_SET
#include <set>
#endif

typedef std::set<AP_tree*>          AP_tree_set;
typedef AP_tree_set::iterator       AP_tree_set_iter;
typedef AP_tree_set::const_iterator AP_tree_set_citer;

void collect_enclosing_groups(AP_tree *node, AP_tree_set& groups);
void collect_contained_groups(AP_tree *node, AP_tree_set& groups);

#else
#error AP_TreeSet.hxx included twice
#endif // AP_TREESET_HXX
