#ifndef PHONGMATERIAL_H #define PHONGMATERIAL_H #include "material.h" #include "glm/vec3.hpp" class Texture; class PhongMaterial : public Material { public: glm::vec3 ambient; glm::vec3 diffuse; glm::vec3 specular; float shininess; Texture* ambient_texture; Texture* diffuse_texture; Texture* specular_texture; Texture* normal_map; PhongMaterial() : ambient(0), diffuse(0.5f), specular(0.5f), shininess(10), ambient_texture(NULL), diffuse_texture(NULL), specular_texture(NULL), normal_map(NULL) {} PhongMaterial(glm::vec3 myKd, glm::vec3 myKs, float myNs) : ambient(0), diffuse(myKd), specular(myKs), shininess(myNs), ambient_texture(NULL), diffuse_texture(NULL), specular_texture(NULL), normal_map(NULL) {} virtual void bindAttributes(Shader* myShader = NULL); virtual unsigned int getFlags(); Shader* getShader() {return shader;} /** * deprecated, you should use setDiffuseTexture instead */ void setTexture(Texture* myTexture); void setAmbientTexture(Texture* myTexture); void setDiffuseTexture(Texture* myTexture); void setSpecularTexture(Texture* myTexture); void setNormalMap(Texture* myNormalMap); private: Shader* shader; }; #endif // PHONGMATERIAL_H