All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
BlueSphereHighlightMaterial.h
1 // Copyright eeGeo Ltd (2012-2016), All Rights Reserved
2 
3 #pragma once
4 
5 #include "IMaterial.h"
6 #include "ColorShader.h"
7 
8 namespace Eegeo
9 {
10  namespace BlueSphere
11  {
13  {
14  public:
15  BlueSphereHighlightMaterial(const Eegeo::Rendering::TMaterialId materialId,
16  const std::string& name,
18  const Eegeo::v4& initialColor);
19 
20  const Eegeo::Rendering::TMaterialId GetId() const { return m_id; }
21  const Eegeo::Rendering::Shader& GetShader() const { return m_shader; }
22  const std::string& GetName() const { return m_name; }
23 
24  void SetState(Eegeo::Rendering::GLState& glState) const;
25 
26  void SetStatePerRenderable(const Eegeo::Rendering::RenderableBase* renderableBase, Eegeo::Rendering::GLState& glState) const;
27 
28  void SetColor(Eegeo::v4& color) { m_color = color; }
29  const Eegeo::v4& GetColor() const { return m_color; }
30 
31  protected:
32  const Eegeo::Rendering::TMaterialId m_id;
33  const std::string m_name;
35  Eegeo::v4 m_color;
36  };
37  }
38 }