CSCI441 OpenGL Library 5.17.0
CS@Mines CSCI441 Computer Graphics Course Library
Loading...
Searching...
No Matches
modelMaterial.hpp
Go to the documentation of this file.
1
12#ifndef CSCI441_MODEL_MATERIAL_H
13#define CSCI441_MODEL_MATERIAL_H
14
15#include "constants.h"
16
17#ifdef CSCI441_USE_GLEW
18 #include <GL/glew.h>
19#else
20 #include <glad/gl.h>
21#endif
22
23#include <glm/ext/vector_float4.hpp>
24
25namespace CSCI441_INTERNAL {
26
27 struct ModelMaterial {
28 glm::vec4 ambient;
29 glm::vec4 diffuse;
30 glm::vec4 specular;
31 GLfloat shininess;
32 [[maybe_unused]] glm::vec4 emissive;
33
34 GLuint map_Kd;
35 [[maybe_unused]] GLuint map_d;
36
37 ModelMaterial() :
38 shininess(0.0f),
39 map_Kd(0),
40 map_d(0) {
41 for(size_t i = 0; i < 3; i++) {
42 ambient[i] = diffuse[i] = specular[i] = emissive[i] = 0.0f;
43 }
44 ambient[3] = diffuse[3] = specular[3] = emissive[3] = 1.0f;
45 }
46 };
47
48 enum class MODEL_TYPE {OBJ, OFF, PLY, STL};
49}
50
51#endif // CSCI441_MODEL_MATERIAL_H