Bface_list Bface_list::reachable_faces(Bface* f, CSimplexFilter& pass) { // Returns the list of faces reachable from f, crossing // only edges accepted by the filter. It sets needed // flags (on the entire mesh) then calls grow_connected(). Bface_list ret; if (!(f && f->mesh())) return ret; // Ensure all reachable face flags are set to 1: // XXX - // touches every face in the mesh; a better // implementation would just touch reachable ones // (or is that impossible to implement?) f->mesh()->faces().set_flags(1); ret.grow_connected(f, pass); return ret; }