SparrowEngine/scene.cpp
2015-09-24 11:41:23 +02:00

53 lines
1008 B
C++

#include "scene.h"
#include "resourcemanager.h"
// Scene
Scene::Scene(std::string name) :
m_name(name)
{
RESOURCE_ADD(this, Scene, m_name);
}
Scene::~Scene()
{
RESOURCE_ADD(NULL, Scene, m_name);
}
// Container Node
void ContainerNode::update()
{
for(SceneNode* sn : m_children)
sn->update();
}
void ContainerNode::addChild(const std::string &childName)
{
SceneNode* node = RESOURCE_GET(SceneNode, childName);
if(node != NULL)
{
m_children.push_back(node);
node->m_parent = this;
}
}
void ContainerNode::removeChild(const std::string &childName)
{
SceneNode* node = RESOURCE_GET(SceneNode, childName);
if(node != NULL)
{
for(unsigned int i=0; i<m_children.size(); ++i)
{
if(m_children[i] == node)
{
m_children[i]->m_parent = NULL;
m_children[i] == m_children.back();
m_children.pop_back();
break;
}
}
}
}