From 816d9054461f755a446107a6a8c0136ec11cb81a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Tue, 10 Dec 2019 22:42:08 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@674 a8b55f48-bf90-11e4-a774-851b48703e85 --- qglengine/glscene.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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];