All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorsMaterialDescriptorLoader.h
1 // Copyright eeGeo Ltd (2012-2015), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Interiors.h"
6 #include "InteriorsMaterials.h"
7 #include "Web.h"
8 #include "WebLoadRequestCompletionCallback.h"
9 #include "PendingWebRequestsContainer.h"
10 #include "CityThemes.h"
11 #include "Types.h"
12 #include "Rendering.h"
13 #include <string>
14 #include <set>
15 #include <vector>
16 
17 namespace Eegeo
18 {
19  namespace Resources
20  {
21  namespace Interiors
22  {
23  namespace Materials
24  {
25  void CreateAndRegisterTextures(const Eegeo::Resources::Interiors::Materials::InteriorsMaterialDto& customTextureDto,
27  bool localTexture);
28 
29  void CreateAndRegisterCubeMapTextures(const Eegeo::Resources::Interiors::Materials::InteriorsMaterialDto& customTextureDto,
31  bool localTexture);
32 
34  {
35  public:
37  Web::IWebLoadRequestFactory& webRequestFactory,
38  InteriorsModelRepository& interiorsModelRepository,
39  IInteriorsMaterialDtoRepository& interiorsMaterialDtoRepository,
40  Interiors::IInteriorsMaterialService& interiorsMaterialService,
41  InteriorsStencilMirrorClearRenderableFactory& interiorsStencilMirrorClearRenderableFactory,
44  IInteriorRenderablesRepository& interiorRenderablesRepository,
45  const bool interiorsEnabled);
46 
48 
49  void LoadMaterialDescriptor(const std::string& interiorName);
50 
51  private:
52  void WebLoadCompletedHandler(Eegeo::Web::IWebResponse& webResponse);
53 
54  bool HasRequestForInteriorPending(const std::string& interiorName) const;
55 
56  CityThemes::ICityThemesService& m_cityThemesService;
57  Web::IWebLoadRequestFactory& m_webRequestFactory;
58  InteriorsModelRepository& m_interiorsModelRepository;
59  IInteriorsMaterialDtoRepository& m_interiorsMaterialDtoRepository;
60  Interiors::IInteriorsMaterialService& m_interiorsMaterialService;
61  InteriorsStencilMirrorClearRenderableFactory& m_interiorsStencilMirrorClearRenderableFactory;
64  IInteriorRenderablesRepository& m_interiorRenderablesRepository;
66  Web::PendingWebRequestsContainer m_pendingWebRequestsContainer;
67  const bool m_interiorsEnabled;
68 
69  std::set<std::string> m_interiorsWithPendingDescriptorRequests;
70  };
71  }
72  }
73  }
74 }