All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
UnitySceneBuilderModule.h
1 // Copyright eeGeo Ltd (2012-2023), All Rights Reserved
2 
3 #pragma once
4 
5 #include "ISceneBuilderModule.h"
6 #include "Unity.h"
7 #include "Modules.h"
8 #include "AsyncTexturing.h"
9 #include "Rendering.h"
10 #include "UniqueTextureRenderableFactory.h"
11 #include "NativeReadMeshFactoryModule.h"
12 #include "UnityInteriorRenderableServiceFactory.h"
13 #include "UnityLandmarkRenderableFactory.h"
14 #include "UnityInteriorsMaterialProviderFactory.h"
15 #include "SceneElementRepository.h"
16 #include "UnityCallbacks.h"
17 #include "UnityAsyncTextureLoader.h"
18 #include "UnityLabelRendererFactory.h"
19 #include "UnityInteriorSceneBuilderModuleFactory.h"
20 #include "UnityPropModelRenderableRepositoryObserver.h"
21 
22 
23 namespace Eegeo
24 {
25  namespace Unity
26  {
27 
28 
30  {
31  public:
32 
34  Resources::Buildings::LandmarkToRenderableRepository& landmarkToRenderableRepository,
35  Modules::Core::RenderingModule& renderingModule,
37  UnityTextureFileLoader& textureLoader,
38  const UnityCallbacks& unityCallbacks);
39 
41 
43 
45 
47 
49 
50  void StartObserving(Resources::Interiors::PropRenderableRepository& observable) override;
51 
52  void StopObserving(Resources::Interiors::PropRenderableRepository& observable) override;
53 
54  void StartObserving(Resources::Interiors::PropResourceRepository& observable) override;
55 
56  void StopObserving(Resources::Interiors::PropResourceRepository& observable) override;
57 
58  Modules::IReadMeshFactoryModule& GetReadMeshFactoryModule() override;
59 
60  Modules::ISceneGraphObserverModule& GetSceneGraphObserverModule() override;
61 
62  Rendering::Renderables::IUniqueTextureRenderableFactory& GetUniqueTextureRenderableFactory() override;
63 
64  Rendering::MeshFactories::MeshFactory& GetDiffuseMeshFactory() override;
65 
66  Resources::Buildings::ILandmarkTextureLoader& GetLandmarkTextureLoader() override;
67 
68  Rendering::IMeshUploadService* GetMeshUploadService() override;
69 
70  BuildingHighlights::IBuildingHighlightRenderableUpdateService* GetBuildingHighlightRenderableUpdateService() override;
71 
72  Resources::Buildings::ILandmarkRenderableFactory& GetLandmarkRenderableFactory() override;
73 
74  Labels::ILabelRendererFactory& GetLabelRendererFactory() override;
75 
76  Modules::IInteriorSceneBuilderModuleFactory& GetInteriorSceneBuilderModuleFactory() override;
77 
78  private:
79 
80  Rendering::MeshFactories::MeshFactory& m_diffuseMeshFactory;
83  UnityMeshUploadService* m_pUnityMeshUploadService;
84  UnityBuildingHighlightRenderableUpdateService* m_pUnityBuildingHighlightUploadService;
85  Modules::NativeReadMeshFactoryModule m_readMeshFactoryModule;
86  UnitySceneGraphObserverModule* m_pSceneGraphObserverModule;
90  Rendering::Renderables::UniqueTextureRenderableFactory m_uniqueTextureRenderableFactory;
91  UnityLandmarkTextureLoader* m_pLandmarkTextureLoader;
92  UnityLandmarkRenderableFactory m_landmarkRenderableTextureFactory;
93  UnityAsyncTextureLoader m_asyncTextureLoader;
94  UnityInteriorSceneBuilderModuleFactory m_interiorSceneBuilderModuleFactory;
95  UnityPropModelRenderableRepositoryObserver* m_pPropModelRenderableRepositoryObserver;
96  UnityPropResourceRepositoryObserver* m_pPropResourceRespositoryObserver;
97 
98  UnityLabelRendererFactory m_labelRendererFactory;
99 
100  const UnityCallbacks m_unityCallbacks;
101  };
102  }
103 }