#ifndef MATERIAL_HH_INCLUDED #define MATERIAL_HH_INCLUDED #include #include #include #include #include using namespace ACGL::OpenGL; class Material{ public: Material(std::string filePath, float ambientFactor, float diffuseFactor, float specularFactor, float shininess, bool movingTexture = false); Material(); SharedTexture2D getReference(); ~Material(); float getAmbientFactor(); float getDiffuseFactor(); float getSpecularFactor(); float getShininess(); bool isMoving(); static std::vector* getAllTextures(); static std::vector* getAllMaterials(); int getTextureUnit(); private: int textureUnit; ACGL::OpenGL::SharedTexture2D reference; float ambientFactor; float diffuseFactor; float specularFactor; float shininess; bool movingTexture; static std::set allTexturesSet; static std::vector allTexturesVector; }; #endif