All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ISceneBuilderModule.h
1 #pragma once
2 
3 #include "Rendering.h"
4 #include "Buildings.h"
5 #include "BuildingHighlights.h"
6 #include "Interiors.h"
7 #include "Labels.h"
8 #include "InteriorsMaterials.h"
9 
10 namespace Eegeo
11 {
12  namespace Modules
13  {
14  class IReadMeshFactoryModule;
15  class ISceneGraphObserverModule;
16  class IInteriorSceneBuilderModuleFactory;
17 
19  {
20  public:
21 
22  virtual ~ISceneBuilderModule() {}
23  virtual IReadMeshFactoryModule& GetReadMeshFactoryModule() = 0;
24  virtual ISceneGraphObserverModule& GetSceneGraphObserverModule() = 0;
25  virtual Rendering::MeshFactories::MeshFactory& GetDiffuseMeshFactory() = 0;
26  virtual Rendering::Renderables::IUniqueTextureRenderableFactory& GetUniqueTextureRenderableFactory() = 0;
27  virtual Resources::Buildings::ILandmarkTextureLoader& GetLandmarkTextureLoader() = 0;
28  virtual Resources::Buildings::ILandmarkRenderableFactory& GetLandmarkRenderableFactory() = 0;
29  virtual Rendering::IMeshUploadService* GetMeshUploadService() = 0;
30  virtual BuildingHighlights::IBuildingHighlightRenderableUpdateService* GetBuildingHighlightRenderableUpdateService() = 0;
31  virtual IInteriorSceneBuilderModuleFactory& GetInteriorSceneBuilderModuleFactory() = 0;
32  virtual Labels::ILabelRendererFactory& GetLabelRendererFactory() = 0;
33 
38  virtual void StartObserving(Resources::Interiors::PropRenderableRepository& observable) = 0;
39  virtual void StopObserving(Resources::Interiors::PropRenderableRepository& observable) = 0;
40  virtual void StartObserving(Resources::Interiors::PropResourceRepository& observable) = 0;
41  virtual void StopObserving(Resources::Interiors::PropResourceRepository& observable) = 0;
42  };
43  }
44 }