#pragma once

#include "Model3D.h"

namespace Framework
{
    class Texture;
    class GraphicsApi;

    enum CubeSeite
    {
        VORNE,
        HINTEN,
        RECHTS,
        LINKS,
        OBEN,
        UNTEN
    };

    //! A model of a cube
    class Cube : public Model3D
    {
    public:
        //! Constructor
        //! \param size The size of the cube
        DLLEXPORT Cube(float size, GraphicsApi* zApi);
        //! Sets the texture of the cube so that it is the same on all sides
        //! \param textur The texture
        DLLEXPORT void setTexture(Texture* textur);
        //! Sets the texture of a specific side of the cube
        //! \param textur The texture
        //! \param s The side to set
        DLLEXPORT void setTexture(Texture* textur, CubeSeite s);
    };
} // namespace Framework