All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorsDiffuseSpecularMaterialFactory.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Interiors.h"
6 #include "IInteriorsMaterialFactory.h"
7 #include "Types.h"
8 #include "IdTypes.h"
9 #include "Lighting.h"
10 
11 #include <string>
12 
13 namespace Eegeo
14 {
15  namespace Resources
16  {
17  namespace Interiors
18  {
20  {
21  public:
22 
23 
25  const InteriorsDiffuseSpecularShader& interiorsDiffuseSpecularShader,
26  const Lighting::GlobalLighting& globalLighting,
27  IInteriorsMaterialAssignmentObserver& materialAssignmentObserver,
28  IInteriorsTextureResourceProvider& interiorsTextureResourceProvider);
29 
30  Eegeo::Rendering::Materials::IMaterial* TryCreate(const std::string& interiorName,
31  const InteriorMaterialData& interiorMaterialData);
32 
33 
34  private:
35  Rendering::Materials::MaterialIdGenerator& m_materialIdGenerator;
36  const InteriorsDiffuseSpecularShader& m_interiorsDiffuseSpecularShader;
37  const Lighting::GlobalLighting& m_globalLighting;
38  IInteriorsMaterialAssignmentObserver& m_materialAssignmentObserver;
39  IInteriorsTextureResourceProvider& m_interiorsTextureResourceProvider;
40  };
41  }
42  }
43 }