// Create Body Class
#include <vector>
#include "MatrixStack.h"
#include <glm/glm.hpp>
#include <memory>
#include "Shape.h"
#include "Program.h"

using namespace std;
using namespace glm;

class Component
{
  public:
  Component *parent;
  vector<Component> children;
  bool selected;
  vec3 t;
  vec3 tp;
  vec3 r;
  vec3 s;
    Component();
    Component(const Component& c);
    void draw(shared_ptr<MatrixStack> MV, shared_ptr<MatrixStack> P, shared_ptr<Shape> S, shared_ptr<Program> Prog);
    Component& getNext(Component *addr);
    Component& getPrevious(Component *addr);
    Component& getLastChild();
};
