#ifndef SCENEGROUP_H
#define SCENEGROUP_H

#include "glnode.h"
#include "../interfaces/ivisitable.h"
#include "../interfaces/visitor.h"

class SceneGroup : public GlNode
{
private:
    std::vector<GlNode*> children;
    int childIndex = 0;
    SceneGroup* _parent;
public:
    void addChild(GlNode* c);
    GlNode* getChild();
    bool hasNext();

	std::vector<GlNode*>* getChildren();

	GlNode* childAt(int i);

    SceneGroup* getParent();
    void setParent(SceneGroup* s);

    void accept(Visitor& v) override;
    SceneGroup();
};

#endif // SCENEGROUP_H
