diff --git a/qglengine/glscene.cpp b/qglengine/glscene.cpp index 2674b26..4b1b0b8 100644 --- a/qglengine/glscene.cpp +++ b/qglengine/glscene.cpp @@ -254,11 +254,17 @@ ObjectBase * Scene::selectedObject() const { } +void gatherMeshes(ObjectBase * o, QSet & ums) { + if (o->mesh()) ums << o->mesh(); + for (int i = 0; i < o->childCount(); ++i) + gatherMeshes(o->child(i), ums); +} void Scene::cleanUnused() { QSet ums; - QMapIterator> it(geometries_used); + gatherMeshes(root_, ums); + /*QMapIterator> it(geometries_used); while (it.hasNext()) - ums |= it.next().value().keys().toSet(); + ums |= it.next().value().keys().toSet();*/ for (int i = 0; i < geometries.size(); ++i) { if (ums.contains(geometries[i])) continue; td_geometries << geometries[i];