All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorsDiffuseTranslucentMaterial.h
1 // Copyright eeGeo Ltd (2012-2015), All Rights Reserved
2 
3 #pragma once
4 
5 
6 #include "Interiors.h"
7 #include "InteriorsMaterialBase.h"
8 #include "TextureMinifyType.h"
9 #include "IdTypes.h"
10 #include "Rendering.h"
11 #include "Lighting.h"
12 #include "VectorMath.h"
13 
14 #include <string>
15 
16 namespace Eegeo
17 {
18  namespace Resources
19  {
20  namespace Interiors
21  {
22 
24  {
25  public:
26  InteriorsDiffuseTranslucentMaterial(const Rendering::TMaterialId materialId,
27  const Lighting::GlobalLighting& lighting,
28  const std::string& name,
29  IInteriorsMaterialAssignmentObserver& materialAssignmentObserver,
31  bool useAlternativeAmbient,
32  bool isTranslucent,
33  const v4& diffuseColor,
34  InteriorsRenderableLayer::Type renderableLayer,
35  const v4& outlineColor);
36 
38 
39  const Eegeo::Rendering:: Shader& GetShader() const;
40 
41  void SetState(Eegeo::Rendering::GLState& glState) const;
42 
43  void SetStatePerRenderable(const Eegeo::Rendering::RenderableBase* renderableBase, Eegeo::Rendering::GLState& glState) const;
44 
45  private:
46  const InteriorsDiffuseTranslucentShader& m_shader;
47  const v4 m_outlineColor;
48  };
49  }
50  }
51 }