#pragma once

#include "Model3D.h"

namespace Framework
{
    class Textur;
    class GraphicsApi;

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

    //! Ein Model eines Wuerfels
    class Cube : public Model3D
    {
    public:
        //! Konstruktor
        //! \param size Die Groesse des Wuerfels
        DLLEXPORT Cube(float size, GraphicsApi* zApi);
        //! Setzt die Textur des Wuerfels, so dass sie an allen Seiten gleich ist
        //! \param textur Die Textur
        DLLEXPORT void setTextur(Textur* textur);
        //! Setzt die Textur von einer bestimmten Seite des Wuerfels
        //! \param textur Die Textur
        //! \param s Die Seite, die gesetzt werden soll
        DLLEXPORT void setTextur(Textur* textur, CubeSeite s);
    };
} // namespace Framework