int Geometry<3>::_faceNeighbourhood(const face_t *f, int depth, T *result) const { if (depth < 0 || f->is_tagged()) return 0; f->tag(); *(*result)++ = f; int r = 1; for (size_t i = 0; i < f->nEdges(); ++i) { const face_t *f2 = connectedFace(f, f->edge(i)); if (f2) { r += _faceNeighbourhood(f2, depth - 1, (*result)); } } return r; }
int Geometry<3>::_faceNeighbourhood(const face_t *f, int depth, T *result) const { if (depth < 0 || f->is_tagged()) return 0; f->tag(); *(*result)++ = f; int r = 1; for (size_t i = 0; i < f->edges.size(); ++i) { const std::vector<const face_t *> &edge_faces = connectivity.edge_to_face[edgeToIndex_fast(f->edges[i])]; const face_t *f2 = connectedFace(f, f->edges[i]); if (f2) { r += _faceNeighbourhood(f2, depth - 1, (*result)); } } return r; }