#pragma once

#include "TextData.h"

#include <vector>
#include <memory>

class RootNode;
class AbstractVisualNode;
class SceneItem;
class FontsManager;

class Scene
{
public:
    Scene();

    void update(FontsManager* fontsManager);

    unsigned getNumItems() const;

    SceneItem* getItem(std::size_t idx) const;

    RootNode* getRootNode() const;
private:
    void updateNode(AbstractVisualNode* node, FontsManager* fontsManager);
    std::unique_ptr<RootNode> mRootNode;
    std::vector<SceneItem*> mSceneItems;
};
