#ifndef SHAPES_H
#define SHAPES_H
#include "glnode.h"
#include <QVector4D>
#include <QColor>
#include "../interfaces/visitor.h"
class SceneGroup;
class Shape : public GlNode
{
public:
	virtual void setColor(QColor& c) = 0;
	virtual QColor getColor() = 0;
	virtual void setType(int) = 0;
	virtual int getType() = 0;
    virtual SceneGroup* getParent() = 0;
    virtual void setParent(SceneGroup* s) = 0;
};

class Cube : public Shape
{
private:
	int type = 0;
    SceneGroup* _parent;
public:
    Cube(){}
    QColor color;
	void accept(Visitor& v) override;
	void setColor(QColor& c);
    QColor getColor();
	void setType(int);
	int getType();
    SceneGroup* getParent();
    void setParent(SceneGroup* s);
};

class Sphere : public Shape
{
private:
	int type = 0;
    SceneGroup* _parent;
public:
    Sphere(){}
    QColor color;
    void accept(Visitor& v) override;
    void setColor(QColor& c);
	QColor getColor();
	void setType(int);
	int getType();
    SceneGroup* getParent();
    void setParent(SceneGroup* s);
};
#endif // SHAPES_H
