From 636f5327aaa77160c08db539756fbd10dade0a84 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Mon, 5 May 2014 12:15:20 +0200 Subject: [PATCH] Code cleanup regarding scenegraphnodes --- include/openspace/query/query.h | 3 +-- include/openspace/rendering/renderengine.h | 6 ++--- include/openspace/scenegraph/scenegraph.h | 6 +++++ src/engine/openspaceengine.cpp | 2 +- src/query/query.cpp | 29 ++++++---------------- src/rendering/renderengine.cpp | 4 +-- src/scenegraph/scenegraph.cpp | 8 ++++++ 7 files changed, 29 insertions(+), 29 deletions(-) diff --git a/include/openspace/query/query.h b/include/openspace/query/query.h index 993560116b..3d2bbd1249 100644 --- a/include/openspace/query/query.h +++ b/include/openspace/query/query.h @@ -25,7 +25,6 @@ #ifndef __QUERY_H__ #define __QUERY_H__ -#include #include namespace openspace { @@ -33,7 +32,7 @@ namespace openspace { class SceneGraph; class SceneGraphNode; -std::shared_ptr getSceneGraph(); +SceneGraph* getSceneGraph(); SceneGraphNode* getSceneGraphNode(const std::string& name); diff --git a/include/openspace/rendering/renderengine.h b/include/openspace/rendering/renderengine.h index a1597022f1..da2c74d712 100644 --- a/include/openspace/rendering/renderengine.h +++ b/include/openspace/rendering/renderengine.h @@ -41,8 +41,8 @@ public: bool initialize(); - void setSceneGraph(std::shared_ptr sceneGraph); - std::shared_ptr sceneGraph(); + void setSceneGraph(SceneGraph* sceneGraph); + SceneGraph* sceneGraph(); Camera* camera() const; @@ -57,7 +57,7 @@ public: private: Camera* _mainCamera; - std::shared_ptr _sceneGraph; + SceneGraph* _sceneGraph; }; } // namespace openspace diff --git a/include/openspace/scenegraph/scenegraph.h b/include/openspace/scenegraph/scenegraph.h index 41a3dfb79f..56249fe426 100644 --- a/include/openspace/scenegraph/scenegraph.h +++ b/include/openspace/scenegraph/scenegraph.h @@ -88,6 +88,12 @@ public: */ SceneGraphNode* root() const; + /** + * Return the scenegraph node with the specified name or nullptr if that + * name does not exist + */ + SceneGraphNode* sceneGraphNode(const std::string& name) const; + private: std::string _focus, _position; diff --git a/src/engine/openspaceengine.cpp b/src/engine/openspaceengine.cpp index 9eefa348df..7e5f9c43f0 100644 --- a/src/engine/openspaceengine.cpp +++ b/src/engine/openspaceengine.cpp @@ -247,7 +247,7 @@ bool OpenSpaceEngine::initialize() FactoryManager::initialize(); // Load scenegraph - std::shared_ptr sceneGraph(new SceneGraph); + SceneGraph* sceneGraph = new SceneGraph; _renderEngine->setSceneGraph(sceneGraph); if (!OsEng.configurationManager().hasValue( constants::openspaceengine::keyConfigScene)) { diff --git a/src/query/query.cpp b/src/query/query.cpp index 4002873b81..5e814b0f9a 100644 --- a/src/query/query.cpp +++ b/src/query/query.cpp @@ -29,31 +29,18 @@ namespace openspace { namespace { - const std::string _loggerCat = "Query"; - - SceneGraphNode* getSceneGraphNode(SceneGraphNode* thisNode, const std::string& name) { - if (thisNode->nodeName() == name) - return thisNode; - else { - for (auto it : thisNode->children()) { - SceneGraphNode* childNode = getSceneGraphNode(it, name); - if (childNode != nullptr) - return childNode; - } - return nullptr; - } - } +const std::string _loggerCat = "Query"; } -std::shared_ptr getSceneGraph() { +SceneGraph* getSceneGraph() +{ return OsEng.renderEngine().sceneGraph(); } -SceneGraphNode* getSceneGraphNode(const std::string& name) { - std::shared_ptr sceneGraph = getSceneGraph(); - - SceneGraphNode* rootNode = sceneGraph->root(); - return getSceneGraphNode(rootNode, name); +SceneGraphNode* getSceneGraphNode(const std::string& name) +{ + SceneGraph* sceneGraph = getSceneGraph(); + return sceneGraph->sceneGraphNode(name); } -} // namespace +} // namespace diff --git a/src/rendering/renderengine.cpp b/src/rendering/renderengine.cpp index a6e4f6d7c4..2be46a2716 100644 --- a/src/rendering/renderengine.cpp +++ b/src/rendering/renderengine.cpp @@ -202,14 +202,14 @@ void RenderEngine::render() } } -std::shared_ptr RenderEngine::sceneGraph() +SceneGraph* RenderEngine::sceneGraph() { // TODO custom assert (ticket #5) assert(_sceneGraph); return _sceneGraph; } -void RenderEngine::setSceneGraph(std::shared_ptr sceneGraph) +void RenderEngine::setSceneGraph(SceneGraph* sceneGraph) { _sceneGraph = sceneGraph; } diff --git a/src/scenegraph/scenegraph.cpp b/src/scenegraph/scenegraph.cpp index 5fddbf3e0f..a7e6fa2574 100644 --- a/src/scenegraph/scenegraph.cpp +++ b/src/scenegraph/scenegraph.cpp @@ -331,4 +331,12 @@ SceneGraphNode* SceneGraph::root() const return _root; } +SceneGraphNode* SceneGraph::sceneGraphNode(const std::string& name) const { + auto it = _allNodes.find(name); + if (it == _allNodes.end()) + return nullptr; + else + return it->second; +} + } // namespace openspace