Molecular Vis
Improving perception of molecular visualization
LightManager.h
1 #pragma once
2 #include <vector>
3 #include <glm/glm.hpp>
4 #include "Light.h"
5 #include "PointLight.h"
6 #include "DirectionalLight.h"
7 #include "Spotlight.h"
14 {
15 private:
16  std::vector<DirectionalLight> directionalLights;
17  std::vector<PointLight> pointLights;
18  std::vector<SpotLight> spotLights;
19  int pointLightNumber;
20  int directionalLightNumber;
21  int spotLightNumber;
22 public:
27  LightManager();
28  ~LightManager();
29 
31  const static int maxDirectionalLights;
33  const static int maxPointLights;
35  const static int maxSpotLights;
36 
44  void createPointLight(glm::vec3 color, glm::vec3 position, glm::vec3 attenuation);
45 
52  void createDirectionalLight(glm::vec3 color, glm::vec3 direction);
53 
64  void createSpotLight(glm::vec3 color, glm::vec3 position, glm::vec3 direction, float innerOpeningAngle, float outerOpeningAngle, glm::vec3 attenuation);
65 
71  void setUniforms(const std::vector<std::shared_ptr<Shader>>& shaders);
72 };
73 
static const int maxDirectionalLights
Definition: LightManager.h:31
static const int maxPointLights
Definition: LightManager.h:33
LightManager()
Definition: LightManager.cpp:7
void createSpotLight(glm::vec3 color, glm::vec3 position, glm::vec3 direction, float innerOpeningAngle, float outerOpeningAngle, glm::vec3 attenuation)
Definition: LightManager.cpp:42
void createDirectionalLight(glm::vec3 color, glm::vec3 direction)
Definition: LightManager.cpp:29
Manages the collection of lights.
Definition: LightManager.h:13
void setUniforms(const std::vector< std::shared_ptr< Shader >> &shaders)
Definition: LightManager.cpp:55
void createPointLight(glm::vec3 color, glm::vec3 position, glm::vec3 attenuation)
Definition: LightManager.cpp:17
static const int maxSpotLights
Definition: LightManager.h:35