All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
DynamicallyLoadedInteriorsMaterialFactory.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 
6 
7 #include "Interiors.h"
8 #include "IInteriorsMaterialFactory.h"
9 #include "Types.h"
10 #include "InteriorsMaterialDto.h"
11 
12 #include <string>
13 #include <map>
14 
15 
16 
17 
18 
19 namespace Eegeo
20 {
21  namespace Resources
22  {
23  namespace Interiors
24  {
25  namespace Materials
26  {
28  {
29  public:
32  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& diffuseTexturedMaterialFactory,
33  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& diffuseTexturedNoVCMaterialFactory,
34  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& diffuseSpecularMaterialFactory,
36  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& cubeMappedAnimatedUVMaterialFactory,
39  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& stencilMirrorMaterialFactory,
40  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& diffuseTranslucentMaterialFactory);
41 
42  Eegeo::Rendering::Materials::IMaterial* TryCreate(const std::string& interiorName,
43  const Eegeo::Resources::Interiors::InteriorMaterialData& interiorMaterialData);
44  private:
45 
46  bool TryGetCustomInteriorMaterialData(
47  const std::string& interiorName,
48  const std::string& materialName,
49  Resources::Interiors::InteriorMaterialData& customInteriorMaterialData);
50 
51  Rendering::Materials::IMaterial* TryCreateFromFactory(
52  const std::string& interiorName,
53  const Eegeo::Resources::Interiors::InteriorMaterialData& interiorMaterialData,
54  const std::string& materialFactoryType);
55 
56  const IInteriorsMaterialDtoRepository& m_materialDtoRepository;
57  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& m_untexturedMaterialFactory;
58  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& m_diffuseTexturedMaterialFactory;
59  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& m_diffuseTexturedNoVCMaterialFactory;
60  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& m_diffuseSpecularMaterialFactory;
61  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& m_cubeMappedMaterialFactory;
62  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& m_cubeMappedAnimatedUVMaterialFactory;
64  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& m_reflectionMaterialFactory;
65  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& m_stencilMirrorMaterialFactory;
66  Eegeo::Resources::Interiors::IInteriorsMaterialFactory& m_diffuseTranslucentMaterialFactory;
67 
68  };
69  }
70  }
71  }
72 }