diff --git a/src/osgViewer/CompositeViewer.cpp b/src/osgViewer/CompositeViewer.cpp index 53c64700b..7064a2a58 100644 --- a/src/osgViewer/CompositeViewer.cpp +++ b/src/osgViewer/CompositeViewer.cpp @@ -348,6 +348,8 @@ void CompositeViewer::getCameras(Cameras& cameras, bool onlyActive) void CompositeViewer::getScenes(Scenes& scenes, bool onlyValid) { + scenes.clear(); + typedef std::set SceneSet; SceneSet sceneSet; @@ -369,6 +371,8 @@ void CompositeViewer::getScenes(Scenes& scenes, bool onlyValid) void CompositeViewer::getViews(Views& views, bool onlyValid) { + views.clear(); + for(RefViews::iterator vitr = _views.begin(); vitr != _views.end(); ++vitr) @@ -379,6 +383,8 @@ void CompositeViewer::getViews(Views& views, bool onlyValid) void CompositeViewer::getAllThreads(Threads& threads, bool onlyActive) { + threads.clear(); + OperationThreads operationThreads; getOperationThreads(operationThreads); diff --git a/src/osgViewer/Viewer.cpp b/src/osgViewer/Viewer.cpp index 0a9135863..82ec311d9 100644 --- a/src/osgViewer/Viewer.cpp +++ b/src/osgViewer/Viewer.cpp @@ -939,16 +939,20 @@ void Viewer::updateTraversal() void Viewer::getScenes(Scenes& scenes, bool onlyValid) { + scenes.clear(); scenes.push_back(_scene.get()); } void Viewer::getViews(Views& views, bool onlyValid) { + views.clear(); views.push_back(this); } void Viewer::getAllThreads(Threads& threads, bool onlyActive) { + threads.clear(); + OperationThreads operationThreads; getOperationThreads(operationThreads);