#pragma once

#include "Model3D.h"

namespace Framework
{
    class Texture;
    class GraphicsApi;

    //! A 3D model that can be used to display a texture in three-dimensional space
    class TextureModel : public Model3D
    {
    public:
        //! Constructor
        DLLEXPORT TextureModel(GraphicsApi* zApi);
        DLLEXPORT TextureModel(GraphicsApi* zApi, const char* uniqueName);
        //! Sets the texture to be displayed
        //! \param t The texture
        DLLEXPORT void setTexture(Texture* t);
        //! Sets the size in which the texture is displayed
        //! \param gr A vector containing width and height for x and y
        DLLEXPORT void setSize(Vec2<float> gr);
        //! Sets the size in which the texture is displayed
        //! \param b The width in which the texture is displayed
        //! \param h The height in which the texture is displayed
        DLLEXPORT void setSize(float b, float h);
    };
} // namespace Framework