All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
GlobalShadowing.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "VectorMath.h"
6 
7 namespace Eegeo
8 {
9  namespace Lighting
10  {
12  {
13  private:
14 
15  Eegeo::v3 m_shadowColor;
16  float m_shadowAlpha;
17  Eegeo::v3 m_trueShadowColor;
18 
19  void Refresh()
20  {
21  m_trueShadowColor = v3::Lerp(v3::One(), m_shadowColor, m_shadowAlpha);
22  }
23 
24  public:
26  : m_shadowColor(1.f, 1.f, 1.f)
27  , m_shadowAlpha(1.0f)
28  , m_trueShadowColor(1.f, 1.f, 1.f)
29  {
30  }
31 
32  void SetShadowColor(const Eegeo::v3& shadowColor)
33  {
34  m_shadowColor = shadowColor;
35  Refresh();
36  }
37 
38  void SetShadowAlpha(float alpha)
39  {
40  m_shadowAlpha = alpha;
41  Refresh();
42  }
43 
44  const Eegeo::v3& GetShadowColor() const { return m_trueShadowColor; }
45  const float GetShadowAlpha() const { return m_shadowAlpha; }
46 
47  };
48  }
49 }