Radium Engine  1.5.0
LightStorage.hpp
1 #pragma once
2 
3 #include <Engine/RaEngine.hpp>
4 #include <Engine/Scene/Light.hpp>
5 
6 namespace Ra {
7 namespace Engine {
8 namespace Data {
9 class RenderParameters;
10 }
11 
12 namespace Scene {
13 
18 class RA_ENGINE_API LightStorage
19 {
20  // Radium-V2 : make light storage compatible with range for ...
21  public:
23  LightStorage() = default;
24 
26  virtual ~LightStorage() = default;
27 
31  virtual void upload() const = 0;
32 
33  // Redefine container classic functions.
34 
36  virtual size_t size() const = 0;
37 
39  virtual void add( const Scene::Light* li ) = 0;
40 
42  virtual void remove( const Scene::Light* li ) = 0;
43 
45  virtual void clear() = 0;
46 
48  virtual const Scene::Light* operator[]( unsigned int n ) = 0;
49 };
50 
51 } // namespace Scene
52 } // namespace Engine
53 } // namespace Ra
virtual void add(const Scene::Light *li)=0
Add a Light to the container.
virtual void clear()=0
Clear the container.
virtual void remove(const Scene::Light *li)=0
Remove a Light from the container.
virtual ~LightStorage()=default
Destructor.
virtual void upload() const =0
virtual const Scene::Light * operator[](unsigned int n)=0
Access the container.
LightStorage()=default
Constructor.
virtual size_t size() const =0
Returns the container size.
Definition: Cage.cpp:3