diff --git a/lemon/adaptors.h b/lemon/adaptors.h --- a/lemon/adaptors.h +++ b/lemon/adaptors.h @@ -474,14 +474,11 @@ Parent::nextOut(i); } - void hide(const Node& n) const { _node_filter->set(n, false); } - void hide(const Arc& a) const { _arc_filter->set(a, false); } - - void unHide(const Node& n) const { _node_filter->set(n, true); } - void unHide(const Arc& a) const { _arc_filter->set(a, true); } - - bool hidden(const Node& n) const { return !(*_node_filter)[n]; } - bool hidden(const Arc& a) const { return !(*_arc_filter)[a]; } + void status(const Node& n, bool v) const { _node_filter->set(n, v); } + void status(const Arc& a, bool v) const { _arc_filter->set(a, v); } + + bool status(const Node& n) const { return (*_node_filter)[n]; } + bool status(const Arc& a) const { return (*_arc_filter)[a]; } typedef False NodeNumTag; typedef False ArcNumTag; @@ -617,14 +614,11 @@ while (i!=INVALID && !(*_arc_filter)[i]) Parent::nextOut(i); } - void hide(const Node& n) const { _node_filter->set(n, false); } - void hide(const Arc& e) const { _arc_filter->set(e, false); } - - void unHide(const Node& n) const { _node_filter->set(n, true); } - void unHide(const Arc& e) const { _arc_filter->set(e, true); } - - bool hidden(const Node& n) const { return !(*_node_filter)[n]; } - bool hidden(const Arc& e) const { return !(*_arc_filter)[e]; } + void status(const Node& n, bool v) const { _node_filter->set(n, v); } + void status(const Arc& a, bool v) const { _arc_filter->set(a, v); } + + bool status(const Node& n) const { return (*_node_filter)[n]; } + bool status(const Arc& a) const { return (*_arc_filter)[a]; } typedef False NodeNumTag; typedef False ArcNumTag; @@ -774,45 +768,57 @@ setArcFilterMap(arc_filter); } - /// \brief Hides the given node + /// \brief Sets the status of the given node /// - /// This function hides the given node in the subdigraph, - /// i.e. the iteration jumps over it. + /// This function sets the status of the given node. /// It is done by simply setting the assigned value of \c n - /// to be \c false in the node filter map. - void hide(const Node& n) const { Parent::hide(n); } - - /// \brief Hides the given arc + /// to \c v in the node filter map. + void status(const Node& n, bool v) const { Parent::status(n, v); } + + /// \brief Sets the status of the given arc /// - /// This function hides the given arc in the subdigraph, - /// i.e. the iteration jumps over it. + /// This function sets the status of the given arc. /// It is done by simply setting the assigned value of \c a - /// to be \c false in the arc filter map. - void hide(const Arc& a) const { Parent::hide(a); } - - /// \brief Shows the given node + /// to \c v in the arc filter map. + void status(const Arc& a, bool v) const { Parent::status(a, v); } + + /// \brief Returns the status of the given node /// - /// This function shows the given node in the subdigraph. - /// It is done by simply setting the assigned value of \c n - /// to be \c true in the node filter map. - void unHide(const Node& n) const { Parent::unHide(n); } - - /// \brief Shows the given arc + /// This function returns the status of the given node. + /// It is \c true if the given node is enabled (i.e. not hidden). + bool status(const Node& n) const { return Parent::status(n); } + + /// \brief Returns the status of the given arc /// - /// This function shows the given arc in the subdigraph. - /// It is done by simply setting the assigned value of \c a - /// to be \c true in the arc filter map. - void unHide(const Arc& a) const { Parent::unHide(a); } - - /// \brief Returns \c true if the given node is hidden. + /// This function returns the status of the given arc. + /// It is \c true if the given arc is enabled (i.e. not hidden). + bool status(const Arc& a) const { return Parent::status(a); } + + /// \brief Disables the given node /// - /// This function returns \c true if the given node is hidden. - bool hidden(const Node& n) const { return Parent::hidden(n); } - - /// \brief Returns \c true if the given arc is hidden. + /// This function disables the given node in the subdigraph, + /// so the iteration jumps over it. + /// It is the same as \ref status() "status(n, false)". + void disable(const Node& n) const { Parent::status(n, false); } + + /// \brief Disables the given arc /// - /// This function returns \c true if the given arc is hidden. - bool hidden(const Arc& a) const { return Parent::hidden(a); } + /// This function disables the given arc in the subdigraph, + /// so the iteration jumps over it. + /// It is the same as \ref status() "status(a, false)". + void disable(const Arc& a) const { Parent::status(a, false); } + + /// \brief Enables the given node + /// + /// This function enables the given node in the subdigraph. + /// It is the same as \ref status() "status(n, true)". + void enable(const Node& n) const { Parent::status(n, true); } + + /// \brief Enables the given arc + /// + /// This function enables the given arc in the subdigraph. + /// It is the same as \ref status() "status(a, true)". + void enable(const Arc& a) const { Parent::status(a, true); } }; @@ -970,14 +976,11 @@ Parent::nextInc(i, d); } - void hide(const Node& n) const { _node_filter_map->set(n, false); } - void hide(const Edge& e) const { _edge_filter_map->set(e, false); } - - void unHide(const Node& n) const { _node_filter_map->set(n, true); } - void unHide(const Edge& e) const { _edge_filter_map->set(e, true); } - - bool hidden(const Node& n) const { return !(*_node_filter_map)[n]; } - bool hidden(const Edge& e) const { return !(*_edge_filter_map)[e]; } + void status(const Node& n, bool v) const { _node_filter_map->set(n, v); } + void status(const Edge& e, bool v) const { _edge_filter_map->set(e, v); } + + bool status(const Node& n) const { return (*_node_filter_map)[n]; } + bool status(const Edge& e) const { return (*_edge_filter_map)[e]; } typedef False NodeNumTag; typedef False ArcNumTag; @@ -1172,14 +1175,11 @@ while (i!=INVALID && !(*_edge_filter_map)[i]) Parent::nextInc(i, d); } - void hide(const Node& n) const { _node_filter_map->set(n, false); } - void hide(const Edge& e) const { _edge_filter_map->set(e, false); } - - void unHide(const Node& n) const { _node_filter_map->set(n, true); } - void unHide(const Edge& e) const { _edge_filter_map->set(e, true); } - - bool hidden(const Node& n) const { return !(*_node_filter_map)[n]; } - bool hidden(const Edge& e) const { return !(*_edge_filter_map)[e]; } + void status(const Node& n, bool v) const { _node_filter_map->set(n, v); } + void status(const Edge& e, bool v) const { _edge_filter_map->set(e, v); } + + bool status(const Node& n) const { return (*_node_filter_map)[n]; } + bool status(const Edge& e) const { return (*_edge_filter_map)[e]; } typedef False NodeNumTag; typedef False ArcNumTag; @@ -1363,45 +1363,58 @@ setEdgeFilterMap(edge_filter_map); } - /// \brief Hides the given node + /// \brief Sets the status of the given node /// - /// This function hides the given node in the subgraph, - /// i.e. the iteration jumps over it. + /// This function sets the status of the given node. /// It is done by simply setting the assigned value of \c n - /// to be \c false in the node filter map. - void hide(const Node& n) const { Parent::hide(n); } - - /// \brief Hides the given edge + /// to \c v in the node filter map. + void status(const Node& n, bool v) const { Parent::status(n, v); } + + /// \brief Sets the status of the given edge /// - /// This function hides the given edge in the subgraph, - /// i.e. the iteration jumps over it. + /// This function sets the status of the given edge. /// It is done by simply setting the assigned value of \c e - /// to be \c false in the edge filter map. - void hide(const Edge& e) const { Parent::hide(e); } - - /// \brief Shows the given node + /// to \c v in the edge filter map. + void status(const Edge& e, bool v) const { Parent::status(e, v); } + + /// \brief Returns the status of the given node /// - /// This function shows the given node in the subgraph. - /// It is done by simply setting the assigned value of \c n - /// to be \c true in the node filter map. - void unHide(const Node& n) const { Parent::unHide(n); } - - /// \brief Shows the given edge + /// This function returns the status of the given node. + /// It is \c true if the given node is enabled (i.e. not hidden). + bool status(const Node& n) const { return Parent::status(n); } + + /// \brief Returns the status of the given edge /// - /// This function shows the given edge in the subgraph. - /// It is done by simply setting the assigned value of \c e - /// to be \c true in the edge filter map. - void unHide(const Edge& e) const { Parent::unHide(e); } - - /// \brief Returns \c true if the given node is hidden. + /// This function returns the status of the given edge. + /// It is \c true if the given edge is enabled (i.e. not hidden). + bool status(const Edge& e) const { return Parent::status(e); } + + /// \brief Disables the given node /// - /// This function returns \c true if the given node is hidden. - bool hidden(const Node& n) const { return Parent::hidden(n); } - - /// \brief Returns \c true if the given edge is hidden. + /// This function disables the given node in the subdigraph, + /// so the iteration jumps over it. + /// It is the same as \ref status() "status(n, false)". + void disable(const Node& n) const { Parent::status(n, false); } + + /// \brief Disables the given edge /// - /// This function returns \c true if the given edge is hidden. - bool hidden(const Edge& e) const { return Parent::hidden(e); } + /// This function disables the given edge in the subgraph, + /// so the iteration jumps over it. + /// It is the same as \ref status() "status(e, false)". + void disable(const Edge& e) const { Parent::status(e, false); } + + /// \brief Enables the given node + /// + /// This function enables the given node in the subdigraph. + /// It is the same as \ref status() "status(n, true)". + void enable(const Node& n) const { Parent::status(n, true); } + + /// \brief Enables the given edge + /// + /// This function enables the given edge in the subgraph. + /// It is the same as \ref status() "status(e, true)". + void enable(const Edge& e) const { Parent::status(e, true); } + }; /// \brief Returns a read-only SubGraph adaptor @@ -1519,25 +1532,31 @@ Parent::setArcFilterMap(const_true_map); } - /// \brief Hides the given node + /// \brief Sets the status of the given node /// - /// This function hides the given node in the subgraph, - /// i.e. the iteration jumps over it. + /// This function sets the status of the given node. /// It is done by simply setting the assigned value of \c n - /// to be \c false in the node filter map. - void hide(const Node& n) const { Parent::hide(n); } - - /// \brief Shows the given node + /// to \c v in the node filter map. + void status(const Node& n, bool v) const { Parent::status(n, v); } + + /// \brief Returns the status of the given node /// - /// This function shows the given node in the subgraph. - /// It is done by simply setting the assigned value of \c n - /// to be \c true in the node filter map. - void unHide(const Node& n) const { Parent::unHide(n); } - - /// \brief Returns \c true if the given node is hidden. + /// This function returns the status of the given node. + /// It is \c true if the given node is enabled (i.e. not hidden). + bool status(const Node& n) const { return Parent::status(n); } + + /// \brief Disables the given node /// - /// This function returns \c true if the given node is hidden. - bool hidden(const Node& n) const { return Parent::hidden(n); } + /// This function disables the given node, so the iteration + /// jumps over it. + /// It is the same as \ref status() "status(n, false)". + void disable(const Node& n) const { Parent::status(n, false); } + + /// \brief Enables the given node + /// + /// This function enables the given node. + /// It is the same as \ref status() "status(n, true)". + void enable(const Node& n) const { Parent::status(n, true); } }; @@ -1569,9 +1588,10 @@ Parent::setEdgeFilterMap(const_true_map); } - void hide(const Node& n) const { Parent::hide(n); } - void unHide(const Node& n) const { Parent::unHide(n); } - bool hidden(const Node& n) const { return Parent::hidden(n); } + void status(const Node& n, bool v) const { Parent::status(n, v); } + bool status(const Node& n) const { return Parent::status(n); } + void disable(const Node& n) const { Parent::status(n, false); } + void enable(const Node& n) const { Parent::status(n, true); } }; @@ -1656,25 +1676,31 @@ Parent::setArcFilterMap(arc_filter); } - /// \brief Hides the given arc + /// \brief Sets the status of the given arc /// - /// This function hides the given arc in the subdigraph, - /// i.e. the iteration jumps over it. + /// This function sets the status of the given arc. /// It is done by simply setting the assigned value of \c a - /// to be \c false in the arc filter map. - void hide(const Arc& a) const { Parent::hide(a); } - - /// \brief Shows the given arc + /// to \c v in the arc filter map. + void status(const Arc& a, bool v) const { Parent::status(a, v); } + + /// \brief Returns the status of the given arc /// - /// This function shows the given arc in the subdigraph. - /// It is done by simply setting the assigned value of \c a - /// to be \c true in the arc filter map. - void unHide(const Arc& a) const { Parent::unHide(a); } - - /// \brief Returns \c true if the given arc is hidden. + /// This function returns the status of the given arc. + /// It is \c true if the given arc is enabled (i.e. not hidden). + bool status(const Arc& a) const { return Parent::status(a); } + + /// \brief Disables the given arc /// - /// This function returns \c true if the given arc is hidden. - bool hidden(const Arc& a) const { return Parent::hidden(a); } + /// This function disables the given arc in the subdigraph, + /// so the iteration jumps over it. + /// It is the same as \ref status() "status(a, false)". + void disable(const Arc& a) const { Parent::status(a, false); } + + /// \brief Enables the given arc + /// + /// This function enables the given arc in the subdigraph. + /// It is the same as \ref status() "status(a, true)". + void enable(const Arc& a) const { Parent::status(a, true); } }; @@ -1754,25 +1780,31 @@ Parent::setEdgeFilterMap(edge_filter_map); } - /// \brief Hides the given edge + /// \brief Sets the status of the given edge /// - /// This function hides the given edge in the subgraph, - /// i.e. the iteration jumps over it. + /// This function sets the status of the given edge. /// It is done by simply setting the assigned value of \c e - /// to be \c false in the edge filter map. - void hide(const Edge& e) const { Parent::hide(e); } - - /// \brief Shows the given edge + /// to \c v in the edge filter map. + void status(const Edge& e, bool v) const { Parent::status(e, v); } + + /// \brief Returns the status of the given edge /// - /// This function shows the given edge in the subgraph. - /// It is done by simply setting the assigned value of \c e - /// to be \c true in the edge filter map. - void unHide(const Edge& e) const { Parent::unHide(e); } - - /// \brief Returns \c true if the given edge is hidden. + /// This function returns the status of the given edge. + /// It is \c true if the given edge is enabled (i.e. not hidden). + bool status(const Edge& e) const { return Parent::status(e); } + + /// \brief Disables the given edge /// - /// This function returns \c true if the given edge is hidden. - bool hidden(const Edge& e) const { return Parent::hidden(e); } + /// This function disables the given edge in the subgraph, + /// so the iteration jumps over it. + /// It is the same as \ref status() "status(e, false)". + void disable(const Edge& e) const { Parent::status(e, false); } + + /// \brief Enables the given edge + /// + /// This function enables the given edge in the subgraph. + /// It is the same as \ref status() "status(e, true)". + void enable(const Edge& e) const { Parent::status(e, true); } }; @@ -2767,9 +2799,9 @@ } } - /// \brief Augment on the given arc in the residual digraph. + /// \brief Augments on the given arc in the residual digraph. /// - /// Augment on the given arc in the residual digraph. It increases + /// Augments on the given arc in the residual digraph. It increases /// or decreases the flow value on the original arc according to the /// direction of the residual arc. void augment(const Arc& a, const Value& v) const {