PGR Copakond OpenGL Engine - Bowling
Loading...
Searching...
No Matches
light.h
Go to the documentation of this file.
1#ifndef PGR_SEM_COPAKOND_LIGHT_H
2#define PGR_SEM_COPAKOND_LIGHT_H
3
4#include "../pgr-portable.h"
5
6namespace copakond {
7
10 GLint type;
11 GLint position;
12 GLint direction;
13 GLint ambient;
14 GLint diffuse;
15 GLint specular;
16 GLint range;
17 GLint angle;
18 GLint exponent;
19 GLint dim;
20};
21
23class Light {
24public:
30
31protected:
33
34 glm::vec3 _position;
35 glm::vec3 _direction;
36
37 glm::vec3 _ambient;
38 glm::vec3 _diffuse;
39 glm::vec3 _specular;
40
41 int _id;
42 float _range;
43 float _angle;
44 float _exponent;
45 bool _dim;
47
48public:
53 Light(LightType type, glm::vec3 position, glm::vec3 direction, glm::vec3 ambient, glm::vec3 diffuse, glm::vec3 specular, float range,
54 float angle, float exponent, bool dim);
55
56 int type() { return _type; }
57 glm::vec3 &position() { return _position; }
58 glm::vec3 &direction() { return _direction; }
59
60 glm::vec3 &ambient() { return _ambient; }
61 glm::vec3 &diffuse() { return _diffuse; }
62 glm::vec3 &specular() { return _specular; }
63
64 int &id() { return _id; }
65 float &range() { return _range; }
66 float &angle() { return _angle; }
67 float &exponent() { return _exponent; }
68 bool &dim() { return _dim; }
69
71};
72
73class DirectionalLight : public Light {
74public:
75 DirectionalLight(glm::vec3 direction, glm::vec3 ambient, glm::vec3 diffuse, glm::vec3 specular);
76};
77
78class PointLight : public Light {
79public:
80 PointLight(glm::vec3 position, glm::vec3 ambient, glm::vec3 diffuse, glm::vec3 specular, float range, bool dim);
81};
82
83class SpotLight : public Light {
84public:
85 SpotLight(glm::vec3 position, glm::vec3 direction, glm::vec3 ambient, glm::vec3 diffuse, glm::vec3 specular, float range, float
86 angle, float exponent, bool dim);
87};
88
89}
90
91#endif //PGR_SEM_COPAKOND_LIGHT_H
DirectionalLight(glm::vec3 direction, glm::vec3 ambient, glm::vec3 diffuse, glm::vec3 specular)
Definition light.cpp:10
bool _dim
Definition light.h:45
glm::vec3 & diffuse()
Definition light.h:61
glm::vec3 _ambient
Definition light.h:37
glm::vec3 & direction()
Definition light.h:58
int type()
Definition light.h:56
int & id()
Definition light.h:64
glm::vec3 & ambient()
Definition light.h:60
Light(LightType type, glm::vec3 position, glm::vec3 direction, glm::vec3 ambient, glm::vec3 diffuse, glm::vec3 specular, float range, float angle, float exponent, bool dim)
Initializes base light properties.
Definition light.cpp:6
glm::vec3 & specular()
Definition light.h:62
float & angle()
Definition light.h:66
LightUniforms & getUniformLocations()
Definition light.h:70
float & range()
Definition light.h:65
glm::vec3 _position
Definition light.h:34
float & exponent()
Definition light.h:67
float _exponent
Definition light.h:44
LightType
Definition light.h:25
@ DIRECTIONAL
Definition light.h:26
@ POINT
Definition light.h:27
@ SPOTLIGHT
Definition light.h:28
glm::vec3 _direction
Definition light.h:35
LightUniforms _uniformLocations
Definition light.h:46
int _id
Definition light.h:41
bool & dim()
Definition light.h:68
glm::vec3 _specular
Definition light.h:39
float _range
Definition light.h:42
glm::vec3 _diffuse
Definition light.h:38
LightType _type
Definition light.h:32
float _angle
Definition light.h:43
glm::vec3 & position()
Definition light.h:57
PointLight(glm::vec3 position, glm::vec3 ambient, glm::vec3 diffuse, glm::vec3 specular, float range, bool dim)
Definition light.cpp:14
SpotLight(glm::vec3 position, glm::vec3 direction, glm::vec3 ambient, glm::vec3 diffuse, glm::vec3 specular, float range, float angle, float exponent, bool dim)
Definition light.cpp:18
PGR Semestral work with sample scenes and bowling. doxygen was generated with a help of LLM.
Definition bezier.cpp:3
Caches shader uniform locations for a specific light instance to avoid repeated lookups.
Definition light.h:9
GLint exponent
Definition light.h:18
GLint diffuse
Definition light.h:14
GLint dim
Definition light.h:19
GLint ambient
Definition light.h:13
GLint angle
Definition light.h:17
GLint direction
Definition light.h:12
GLint range
Definition light.h:16
GLint type
Definition light.h:10
GLint position
Definition light.h:11
GLint specular
Definition light.h:15