2016-12-28 02:17:48 -04:00
|
|
|
#pragma once
|
|
|
|
|
#ifndef MATERIAL_HPP
|
|
|
|
|
#define MATERIAL_HPP
|
|
|
|
|
|
|
|
|
|
#include <glm/vec3.hpp>
|
|
|
|
|
|
|
|
|
|
using glm::vec3;
|
|
|
|
|
|
|
|
|
|
class Material {
|
|
|
|
|
public:
|
|
|
|
|
vec3 m_diffuse;
|
|
|
|
|
vec3 m_specular;
|
|
|
|
|
float m_rho;
|
|
|
|
|
float m_shininess;
|
2017-01-01 20:57:35 -04:00
|
|
|
float m_ref_index;
|
2017-01-02 00:08:22 -04:00
|
|
|
bool m_refract;
|
2017-01-05 06:16:14 -04:00
|
|
|
float kd;
|
|
|
|
|
float ks;
|
2016-12-28 02:17:48 -04:00
|
|
|
|
2017-01-05 06:16:14 -04:00
|
|
|
Material(): m_diffuse(vec3(1.0f)), m_specular(vec3(1.0f)), m_rho(0.0f), m_shininess(89.0f), m_ref_index(1.0f), m_refract(false), kd(0.4f), ks(0.4f) { }
|
2017-01-01 20:57:35 -04:00
|
|
|
|
|
|
|
|
Material(const Material & m) {
|
|
|
|
|
m_diffuse = m.m_diffuse;
|
|
|
|
|
m_specular = m.m_specular;
|
|
|
|
|
m_rho = m.m_rho;
|
|
|
|
|
m_shininess = m.m_shininess;
|
|
|
|
|
m_ref_index = m.m_ref_index;
|
2017-01-02 00:08:22 -04:00
|
|
|
m_refract = m.m_refract;
|
2017-01-01 20:57:35 -04:00
|
|
|
}
|
2016-12-28 02:17:48 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|