Molecular Vis
Improving perception of molecular visualization
SpotLight.h
1 #pragma once
2 #include "Light.h"
3 
8 class SpotLight :
9  public Light
10 {
11 private:
12  struct SpotLightProperties {
13  glm::vec3 color;
14  glm::vec3 position;
15  glm::vec3 direction;
16  float innerOpeningAngle;
17  float outerOpeningAngle;
18  glm::vec3 attenuation; //x = quad y=linear z=constant
19  SpotLightProperties(glm::vec3 color, glm::vec3 position, glm::vec3 direction, float innerOpeningAngle, float outerOpeningAngle, glm::vec3 attenuation):
20  color(color), position(position), direction(direction), innerOpeningAngle(innerOpeningAngle), outerOpeningAngle(outerOpeningAngle), attenuation(attenuation) {}
21  } properties;
22 protected:
34  virtual void setUniform(std::shared_ptr<Shader>& shader, int index);
35 public:
46  SpotLight(glm::vec3 color, glm::vec3 position, glm::vec3 direction, float innerOpeningAngle, float outerOpeningAngle, glm::vec3 attenuation);
47  ~SpotLight();
48 };
49 
Base class for lights.
Definition: Light.h:8
Class for spot-lights.
Definition: SpotLight.h:8
virtual void setUniform(std::shared_ptr< Shader > &shader, int index)
Definition: SpotLight.cpp:8
SpotLight(glm::vec3 color, glm::vec3 position, glm::vec3 direction, float innerOpeningAngle, float outerOpeningAngle, glm::vec3 attenuation)
Definition: SpotLight.cpp:20