#pragma once #include #include "SceneNode.h" class SceneGraph : public SceneNode { public: SceneGraph() : SceneNode(L"Root") {}; SceneGraph(wstring name) : SceneNode(name) {}; ~SceneGraph(void) {}; bool Initialise(void); void Update(FXMMATRIX& currentWorldTransformation); void Render(void); void Shutdown(void); void Add(SceneNodePointer node); void Remove(SceneNodePointer node); SceneNodePointer Find(wstring name); SceneNodePointer GetRootNode(); SceneNodePointer GetParent(); SceneNodePointer GetFirstChild(); list& GetChildren(); protected: // Here you need to add whatever collection you are going to // use to store the children of this scene graph list _children; }; typedef shared_ptr SceneGraphPointer;