#ifndef __Group__
#define __Group__

#ifndef CORE_DLL 
    #ifdef CORE_BUILD
	    #define CORE_DLL __declspec(dllexport)
    #else
	    #define CORE_DLL __declspec(dllimport)
        #pragma comment(lib, "Core.lib")
    #endif
#endif

#include <list>
#include "Node.h"

#pragma warning(push)
#pragma warning(disable:4251)

class CORE_DLL Group : public Node {
public:
    Group();
    virtual ~Group();

    void addChild(Node* child);
    void removeChild(Node* child);

    void removeChildren();

    std::list<Node*>& getChildren();
protected:
    std::list<Node*> _children;
};

#pragma warning(pop)

#endif