GlobeEngine
Light.h
Go to the documentation of this file.
1 
9 #ifndef GlobeEngine_Light_h
10 #define GlobeEngine_Light_h
11 
12 #include "OpenGL_Includes.h"
13 #include <vmmlib/vmmlib.hpp>
14 #include <vector>
15 #include "Shader.h"
16 
17 namespace ge {
18 
20  {
21  vmml::Vector3f ambient;
22  vmml::Vector3f diffuse;
23  vmml::Vector3f specular;
24  };
25 
26  class Light
27  {
28  public:
29  Light();
30  ~Light();
31  void clear();
32  void create(vmml::Vector3d _position);
33  void create(vmml::Vector3d _position, vmml::Vector3f _diffuse);
34  void create(vmml::Vector3d _position, vmml::Vector3f _diffuse, vmml::Vector3f _ambient, vmml::Vector3f _specular);
35 
36  vmml::Vector3d getPosition() const;
37  void setPosition(vmml::Vector3d _pos);
38  vmml::Vector3f getDiffuseTerm() const;
39  void setDiffuseTerm(vmml::Vector3f _in);
40  vmml::Vector3f getAmbientTerm() const;
41  void setAmbientTerm(vmml::Vector3f _in);
42  vmml::Vector3f getSpecularTerm() const;
43  void setSpecularTerm(vmml::Vector3f _in);
44  void setDiffuseAmbientSpecularTerm(vmml::Vector3f _diffuse, vmml::Vector3f _ambient, vmml::Vector3f _specular);
45 
46  virtual void bindUniformStruct(const std::shared_ptr<ge::Shader> _shader) const;
47 
48  void printInfo();
49  protected:
50  vmml::Vector3d position;
52  };
53 }
54 #endif
vmml::Vector3f getDiffuseTerm() const
Definition: Light.cpp:75
void printInfo()
Definition: Light.cpp:112
void setSpecularTerm(vmml::Vector3f _in)
Definition: Light.cpp:100
vmml::Vector3f ambient
Definition: Light.h:21
vmml::Vector3d position
Definition: Light.h:50
Light()
Definition: Light.cpp:12
vmml::Vector3d getPosition() const
Definition: Light.cpp:65
void setAmbientTerm(vmml::Vector3f _in)
Definition: Light.cpp:90
PhongIlluminationProperties illumination
Definition: Light.h:51
void clear()
Definition: Light.cpp:22
void setDiffuseTerm(vmml::Vector3f _in)
Definition: Light.cpp:80
void setDiffuseAmbientSpecularTerm(vmml::Vector3f _diffuse, vmml::Vector3f _ambient, vmml::Vector3f _specular)
Definition: Light.cpp:105
virtual void bindUniformStruct(const std::shared_ptr< ge::Shader > _shader) const
Definition: Light.cpp:55
vmml::Vector3f getAmbientTerm() const
Definition: Light.cpp:85
~Light()
Definition: Light.cpp:17
Definition: Light.h:26
void setPosition(vmml::Vector3d _pos)
Definition: Light.cpp:70
vmml::Vector3f getSpecularTerm() const
Definition: Light.cpp:95
Definition: AvalancheTrainingSimulationEngine.h:28
vmml::Vector3f diffuse
Definition: Light.h:22
Definition: Light.h:19
vmml::Vector3f specular
Definition: Light.h:23
void create(vmml::Vector3d _position)
Definition: Light.cpp:30