Bedge_list Bface_list::get_edges() const { // Extract a list of the edges found in the given faces. // Get clean slate clear_edge_flags(); // Put edges into output array uniquely: Bedge_list ret(size()*2); // pre-allocate plenty for (Bface_list::size_type i=0; i<size(); i++) { for (int j=1; j<4; j++) { Bedge* e = at(i)->e(j); if (e->flag() == 0) { e->set_flag(1); ret.push_back(e); } } } return ret; }