#ifndef INTERACTABLEGRAPHICSOBJECT_HPP_INCLUDED
#define INTERACTABLEGRAPHICSOBJECT_HPP_INCLUDED

#include "../../Core/Classes/GraphicsObject.hpp"
#include "../../Core/Types/Tile.hpp"
#include "../../Core/Types/Box.hpp"
#include "../../Core/Types/Convex.hpp"
#include "../../Core/Types/Wireframe.hpp"
#include <cstdint>

namespace Interactable
{
    class GraphicsObject : public Internal::GraphicsObject
    {
        public:
            GraphicsObject(const Internal::GraphicsObject& G);

            GraphicsObject() = default;
            GraphicsObject(GraphicsObject&& Obj) = default;
            GraphicsObject(const GraphicsObject& Obj) = default;
            GraphicsObject& operator=(GraphicsObject&& Obj) = default;
            GraphicsObject& operator=(const GraphicsObject& Obj) = default;

            std::vector<Point> GetModel() const;
            Wireframe GetWireframe() const;
            Convex GetConvex() const;
            Box GetBox() const;

            double GetVisibility() const;
            Tile GetTile() const;

    };
}

#endif // INTERACTABLEGRAPHICSOBJECT_HPP_INCLUDED
