#ifndef GRAPHICALCONTAINERNODE_H
#define GRAPHICALCONTAINERNODE_H

#include "graphicalnode.h"
#include "glm/vec2.hpp"
#include "glm/mat4x4.hpp"
#include <vector>

class GraphicalContainerNode : public GraphicalNode
{
protected:
    std::vector<GraphicalNode*> m_children;
    glm::mat4 m_combinedTransform;

public:
    virtual ~GraphicalContainerNode();

    virtual void update();

    virtual void setSceneTree(SceneTree* tree);

    virtual void updateVisibility(bool visible);

    void addChild(GraphicalNode* node);
    void removeChild(GraphicalNode* node);
};

#endif // GRAPHICALCONTAINERNODE_H
