| 607 | //-------------------------------------------------------------------------- |
| 608 | |
| 609 | edges_t graph::hide_node(GTL::node n) |
| 610 | { |
| 611 | assert (n.data->owner == this); |
| 612 | |
| 613 | pre_hide_node_handler (n); |
| 614 | edges_t implicitly_hidden_edges; |
| 615 | |
| 616 | if (!n.is_hidden()){ |
| 617 | // hide all connected egdes |
| 618 | for (int i = 0; i <= 1; ++i) |
| 619 | { |
| 620 | edges_t::iterator end = n.data->edges[i].end(); |
| 621 | edges_t::iterator edge = n.data->edges[i].begin(); |
| 622 | while (edge != end) |
| 623 | { |
| 624 | implicitly_hidden_edges.push_back(*edge); |
| 625 | hide_edge(*edge); |
| 626 | edge = n.data->edges[i].begin(); |
| 627 | } |
| 628 | } |
| 629 | |
| 630 | // hide node |
| 631 | hidden_nodes.push_back(n); |
| 632 | nodes.erase(n.data->pos); |
| 633 | n.data->hidden = true; |
| 634 | ++hidden_nodes_count; |
| 635 | } |
| 636 | |
| 637 | post_hide_node_handler (n); |
| 638 | |
| 639 | return implicitly_hidden_edges; |
| 640 | } |
| 641 | |
| 642 | //-------------------------------------------------------------------------- |
| 643 | // restore_node |
no test coverage detected