lemon/ugraph_adaptor.h
changeset 2381 0248790c66ea
parent 2096 dbe860a83dc9
child 2386 81b47fc5c444
equal deleted inserted replaced
11:494e70a2fb55 12:9c6aaa672885
   149       return graph->maxEdgeId();
   149       return graph->maxEdgeId();
   150     }
   150     }
   151 
   151 
   152     typedef typename ItemSetTraits<Graph, Node>::ItemNotifier NodeNotifier;
   152     typedef typename ItemSetTraits<Graph, Node>::ItemNotifier NodeNotifier;
   153 
   153 
   154     NodeNotifier& getNotifier(Node) const {
   154     NodeNotifier& notifier(Node) const {
   155       return graph->getNotifier(Node());
   155       return graph->notifier(Node());
   156     } 
   156     } 
   157 
   157 
   158     typedef typename ItemSetTraits<Graph, Edge>::ItemNotifier EdgeNotifier;
   158     typedef typename ItemSetTraits<Graph, Edge>::ItemNotifier EdgeNotifier;
   159 
   159 
   160     EdgeNotifier& getNotifier(Edge) const {
   160     EdgeNotifier& notifier(Edge) const {
   161       return graph->getNotifier(Edge());
   161       return graph->notifier(Edge());
   162     } 
   162     } 
   163 
   163 
   164     typedef typename ItemSetTraits<Graph, UEdge>::ItemNotifier UEdgeNotifier;
   164     typedef typename ItemSetTraits<Graph, UEdge>::ItemNotifier UEdgeNotifier;
   165 
   165 
   166     UEdgeNotifier& getNotifier(UEdge) const {
   166     UEdgeNotifier& notifier(UEdge) const {
   167       return graph->getNotifier(UEdge());
   167       return graph->notifier(UEdge());
   168     } 
   168     } 
   169 
   169 
   170     template <typename _Value>
   170     template <typename _Value>
   171     class NodeMap : public Graph::template NodeMap<_Value> {
   171     class NodeMap : public Graph::template NodeMap<_Value> {
   172     public:
   172     public:
   309     }
   309     }
   310 
   310 
   311     void firstInc(UEdge& i, bool& d, const Node& n) const { 
   311     void firstInc(UEdge& i, bool& d, const Node& n) const { 
   312       Parent::firstInc(i, d, n); 
   312       Parent::firstInc(i, d, n); 
   313       while (i!=INVALID && (!(*uedge_filter_map)[i] 
   313       while (i!=INVALID && (!(*uedge_filter_map)[i] 
       
   314             || !(*node_filter_map)[Parent::source(i)]
   314             || !(*node_filter_map)[Parent::target(i)])) Parent::nextInc(i, d); 
   315             || !(*node_filter_map)[Parent::target(i)])) Parent::nextInc(i, d); 
   315     }
   316     }
   316 
   317 
   317     void next(Node& i) const { 
   318     void next(Node& i) const { 
   318       Parent::next(i); 
   319       Parent::next(i); 
   345 	     || !(*node_filter_map)[Parent::target(i)])) Parent::nextOut(i); 
   346 	     || !(*node_filter_map)[Parent::target(i)])) Parent::nextOut(i); 
   346     }
   347     }
   347 
   348 
   348     void nextInc(UEdge& i, bool& d) const { 
   349     void nextInc(UEdge& i, bool& d) const { 
   349       Parent::nextInc(i, d); 
   350       Parent::nextInc(i, d); 
   350       while (i!=INVALID && (!(*uedge_filter_map)[i] 
   351       while (i!=INVALID && (!(*uedge_filter_map)[i]
   351             || !(*node_filter_map)[Parent::source(i)])) Parent::nextInc(i, d); 
   352             || !(*node_filter_map)[Parent::source(i)]
       
   353             || !(*node_filter_map)[Parent::target(i)])) Parent::nextInc(i, d); 
   352     }
   354     }
   353 
   355 
   354     /// \brief Hide the given node in the graph.
   356     /// \brief Hide the given node in the graph.
   355     ///
   357     ///
   356     /// This function hides \c n in the graph, i.e. the iteration 
   358     /// This function hides \c n in the graph, i.e. the iteration 
   985       return graph->maxEdgeId();
   987       return graph->maxEdgeId();
   986     }
   988     }
   987 
   989 
   988     typedef typename ItemSetTraits<Graph, Node>::ItemNotifier NodeNotifier;
   990     typedef typename ItemSetTraits<Graph, Node>::ItemNotifier NodeNotifier;
   989 
   991 
   990     NodeNotifier& getNotifier(Node) const {
   992     NodeNotifier& notifier(Node) const {
   991       return graph->getNotifier(Node());
   993       return graph->notifier(Node());
   992     } 
   994     } 
   993 
   995 
   994     typedef typename ItemSetTraits<Graph, Edge>::ItemNotifier EdgeNotifier;
   996     typedef typename ItemSetTraits<Graph, Edge>::ItemNotifier EdgeNotifier;
   995 
   997 
   996     EdgeNotifier& getNotifier(Edge) const {
   998     EdgeNotifier& notifier(Edge) const {
   997       return graph->getNotifier(Edge());
   999       return graph->notifier(Edge());
   998     } 
  1000     } 
   999 
  1001 
  1000     template <typename _Value>
  1002     template <typename _Value>
  1001     class NodeMap : public _UGraph::template NodeMap<_Value> {
  1003     class NodeMap : public _UGraph::template NodeMap<_Value> {
  1002     public:
  1004     public: