SparrowRenderer/phongmaterial.h

63 lines
1.3 KiB
C++

#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