From a0fa4eb1927ebf861bb01b2b745b84d61c123cfb Mon Sep 17 00:00:00 2001 From: Anton Arbring Date: Thu, 16 Apr 2015 12:09:46 -0400 Subject: [PATCH] Added function to remove child in SceneGraphNode --- include/openspace/scenegraph/scenegraphnode.h | 2 ++ src/scenegraph/scenegraphnode.cpp | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/openspace/scenegraph/scenegraphnode.h b/include/openspace/scenegraph/scenegraphnode.h index a4288db99d..c1443a94ee 100644 --- a/include/openspace/scenegraph/scenegraphnode.h +++ b/include/openspace/scenegraph/scenegraphnode.h @@ -68,6 +68,8 @@ public: void addNode(SceneGraphNode* child); void setParent(SceneGraphNode* parent); + bool abandonChild(SceneGraphNode* child); + const psc& position() const; psc worldPosition() const; diff --git a/src/scenegraph/scenegraphnode.cpp b/src/scenegraph/scenegraphnode.cpp index d8d050dee9..22e828fe05 100644 --- a/src/scenegraph/scenegraphnode.cpp +++ b/src/scenegraph/scenegraphnode.cpp @@ -291,6 +291,17 @@ void SceneGraphNode::setParent(SceneGraphNode* parent) _parent = parent; } +bool SceneGraphNode::abandonChild(SceneGraphNode* child) { + std::vector < SceneGraphNode* >::iterator it = std::find(_children.begin(), _children.end(), child); + + if (it != _children.end()){ + _children.erase(it); + return true; + } + + return false; +} + const psc& SceneGraphNode::position() const { return _ephemeris->position();