diff --git a/src/osgViewer/CompositeViewer.cpp b/src/osgViewer/CompositeViewer.cpp index 8b560143b..c52067c4c 100644 --- a/src/osgViewer/CompositeViewer.cpp +++ b/src/osgViewer/CompositeViewer.cpp @@ -402,6 +402,8 @@ void CompositeViewer::getCameras(Cameras& cameras, bool onlyActive) void CompositeViewer::getScenes(Scenes& scenes, bool onlyValid) { + scenes.clear(); + typedef std::set SceneSet; SceneSet sceneSet; @@ -423,6 +425,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) @@ -433,6 +437,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 569f22434..1968a15b8 100644 --- a/src/osgViewer/Viewer.cpp +++ b/src/osgViewer/Viewer.cpp @@ -994,11 +994,13 @@ 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); }