Radium Engine  1.5.20
Loading...
Searching...
No Matches
LightStorage.hpp
1#pragma once
2
3#include <Engine/RaEngine.hpp>
4#include <Engine/Scene/Light.hpp>
5
6namespace Ra {
7namespace Engine {
8namespace Data {
9class RenderParameters;
10}
11
12namespace Scene {
13
18class 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 const Scene::Light * operator[](unsigned int n)=0
Access the container.
virtual ~LightStorage()=default
Destructor.
virtual void upload() const =0
LightStorage()=default
Constructor.
virtual size_t size() const =0
Returns the container size.
hepler function to manage enum as underlying types in VariableSet
Definition Cage.cpp:3