ILight.h
Go to the documentation of this file.
1 
2 #pragma once
3 
4 #include <ionMath.h>
5 #include <ionGraphics.h>
6 
7 
8 namespace ion
9 {
10  namespace Scene
11  {
12 
13  class ILight
14  {
15 
16  public:
17 
18  ILight();
19 
20  vec3f GetPosition() const;
21  void SetPosition(vec3f const & Position);
22 
23  size_t GetAttributeCount() const;
24  map<string, SharedPointer<Graphics::IUniform>> const & GetAttributes() const;
26 
27  virtual string GetLightType() const = 0;
28 
29  protected:
30 
32  map<string, SharedPointer<Graphics::IUniform>> Attributes;
33 
34  };
35 
36  }
37 }
map< string, SharedPointer< Graphics::IUniform > > Attributes
Definition: ILight.h:32
ILight()
Definition: ILight.cpp:10
std::shared_ptr< T > SharedPointer
Definition: ionSmartPointer.h:22
3D vector
Definition: SVector3.h:15
map< string, SharedPointer< Graphics::IUniform > > const & GetAttributes() const
Definition: ILight.cpp:30
Graphics::CUniform< vec3f > Position
Definition: ILight.h:31
Definition: CCatmullRomAdvancedSplineInterpolator.h:7
SharedPointer< Graphics::IUniform > GetAttributeByName(string const &Name)
Definition: ILight.cpp:35
size_t GetAttributeCount() const
Definition: ILight.cpp:25
Helper class to easily add a uniform as a member or local variable.
Definition: IUniform.h:158
virtual string GetLightType() const =0
vec3f GetPosition() const
Definition: ILight.cpp:15
void SetPosition(vec3f const &Position)
Definition: ILight.cpp:20
Definition: ILight.h:13