Elevate Engine 1
Loading...
Searching...
No Matches
Light.h
Go to the documentation of this file.
1#pragma once
2
6
7#include <glm/vec3.hpp>
8
9namespace Elevate
10{
11 class Light : public Component
12 {
13 public:
15 EECATEGORY("Rendering")
16
17 Light() = default;
18
19 Light(const glm::vec3& color)
20 : m_ambientColor(color), m_diffuseColor(color), m_specularColor(color) { }
21
22 Light(const glm::vec3& amb, const glm::vec3& dif, const glm::vec3& spec, float intensity = 1.0f)
23 : m_ambientColor(amb), m_diffuseColor(dif), m_specularColor(spec), m_intensity(intensity) { }
24
25 // Getter and setters
26 inline void SetColor(const glm::vec3& color)
27 {
28 m_ambientColor = color;
29 m_diffuseColor = color;
30 m_specularColor = color;
31 }
32 inline void SetAmbientColor(const glm::vec3& color) { m_ambientColor = color; }
33 inline void SetDiffuseColor(const glm::vec3& color) { m_diffuseColor = color; }
34 inline void SetSpecularColor(const glm::vec3& color) { m_specularColor = color; }
35 inline void SetIntensity(const float& intensity) { m_intensity = intensity; }
36
37 inline const glm::vec3& GetAmbientColor() const { return m_ambientColor; }
38 inline const glm::vec3& GetDiffuseColor() const { return m_diffuseColor; }
39 inline const glm::vec3& GetSpecularColor() const { return m_specularColor; }
40 inline const float& GetIntensity() const { return m_intensity; }
41
42 //virtual Component* Clone() override;
43 protected:
44 glm::vec3 m_ambientColor = { 1.0f, 1.0f, 1.0f };
45 glm::vec3 m_diffuseColor = { 1.0f, 1.0f, 1.0f };
46 glm::vec3 m_specularColor = { 1.0f, 1.0f, 1.0f };
47 float m_intensity = 1.0f;
48
54 };
55}
#define EECATEGORY(name)
#define HideInInspector
#define EXPOSE(param,...)
#define BEGIN_COMPONENT(T,...)
#define ColorPicker
#define END_COMPONENT()
Light(const glm::vec3 &amb, const glm::vec3 &dif, const glm::vec3 &spec, float intensity=1.0f)
Definition Light.h:22
const glm::vec3 & GetAmbientColor() const
Definition Light.h:37
const float & GetIntensity() const
Definition Light.h:40
glm::vec3 m_diffuseColor
Definition Light.h:45
void SetColor(const glm::vec3 &color)
Definition Light.h:26
void SetIntensity(const float &intensity)
Definition Light.h:35
float m_intensity
Definition Light.h:47
const glm::vec3 & GetSpecularColor() const
Definition Light.h:39
void SetSpecularColor(const glm::vec3 &color)
Definition Light.h:34
void SetDiffuseColor(const glm::vec3 &color)
Definition Light.h:33
glm::vec3 m_specularColor
Definition Light.h:46
const glm::vec3 & GetDiffuseColor() const
Definition Light.h:38
void SetAmbientColor(const glm::vec3 &color)
Definition Light.h:32
glm::vec3 m_ambientColor
Definition Light.h:44