Radium Engine  1.5.0
DefaultLightManager.hpp
1 #pragma once
2 
3 #include <Engine/RadiumEngine.hpp>
4 #include <Engine/Scene/Light.hpp>
5 #include <Engine/Scene/LightManager.hpp>
6 
7 #include <memory>
8 #include <vector>
9 
10 namespace Ra {
11 namespace Engine {
12 namespace Scene {
13 
17 class RA_ENGINE_API DefaultLightStorage : public LightStorage
18 {
19  public:
21  void add( const Scene::Light* i ) override;
22  void remove( const Scene::Light* li ) override;
23  void upload() const override;
24  size_t size() const override;
25  void clear() override;
26  const Scene::Light* operator[]( unsigned int n ) override;
27 
28  private:
30  std::multimap<Scene::Light::LightType, const Scene::Light*> m_lights;
31 };
32 
36 class RA_ENGINE_API DefaultLightManager : public LightManager
37 {
38  public:
40 
41  const Scene::Light* getLight( size_t li ) const override;
42  void addLight( const Scene::Light* li ) override;
43 };
44 
45 } // namespace Scene
46 } // namespace Engine
47 } // namespace Ra
DefaultLightManager. A simple Light Manager with a list of lights.
Definition: Cage.cpp:3