All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
BuildingFootprintsModule.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Modules.h"
7 #include "Web.h"
8 #include "BuildingFootprints.h"
9 #include "Streaming.h"
10 #include "CollisionVisualization.h"
11 #include "BuildingFootprintSelectionControllerConfig.h"
12 #include "CoverageTrees.h"
13 #include "Camera.h"
14 
15 
16 #include <string>
17 
18 
19 namespace Eegeo
20 {
21  namespace Modules
22  {
24  {
25  public:
26  static BuildingFootprintsModule* Create(const Modules::IPlatformAbstractionModule& platformAbstractionModule,
27  const Modules::Core::RenderingModule& renderingModule,
28  const Modules::CollisionVisualizationModule& collisionVisualizationModule,
29  const Modules::Map::Layers::BuildingStreamingModule& buildingStreamingModule,
30  const Modules::Map::CoverageTreeModule& coverageTreeModule,
32 
34 
35  virtual ~BuildingFootprintsModule();
36 
37  virtual BuildingFootprints::BuildingFootprintService& GetBuildingFootprintService() const { return *m_pBuildingFootprintService; }
38 
39  virtual BuildingFootprints::BuildingFootprintSelectionController& GetBuildingFootprintSelectionController() const { return *m_pBuildingFootprintSelectionController; }
40 
41  virtual BuildingFootprints::BuildingSelectionController& GetBuildingSelectionController() const { return *m_pBuildingSelectionController; }
42 
43  virtual BuildingFootprints::BuildingFootprintSelectionRenderableFactory& GetBuildingFootprintSelectionRenderableFactory() const { return *m_pBuildingFootprintSelectionRenderableFactory; }
44 
45  virtual void Update(float dt);
46 
47  virtual void Draw(const Eegeo::Camera::RenderCamera& renderCamera);
48 
49 
50  private:
52  const Modules::Core::RenderingModule& renderingModule,
53  const Modules::CollisionVisualizationModule& collisionVisualizationModule,
54  const Eegeo::Streaming::IResourceStream& buildingResourceStream,
55  Streaming::CoverageTrees::CoverageTreeManifestNotifier& coverageTreeManifestNotifier,
57 
58  BuildingFootprints::BuildingFootprintRepository* m_pBuildingFootprintRepository;
59  BuildingFootprints::BuildingFootprintWebLoader* m_pBuildingFootprintWebLoader;
60  BuildingFootprints::BuildingFootprintResourceService* m_pBuildingFootprintResourceService;
61  BuildingFootprints::BuildingFootprintService* m_pBuildingFootprintService;
62  BuildingFootprints::BuildingFootprintSelectionController* m_pBuildingFootprintSelectionController;
63  BuildingFootprints::BuildingFootprintSelectionRenderableFactory* m_pBuildingFootprintSelectionRenderableFactory;
64  BuildingFootprints::BuildingFootprintSelectionViewFactory* m_pBuildingFootprintSelectionViewFactory;
65  BuildingFootprints::BuildingSelectionController* m_pBuildingSelectionController;
66  BuildingFootprints::IBuildingFootprintResourceCoverageFactory* m_pBuildingFootprintResourceCoverageFactory;
67  BuildingFootprints::BuildingFootprintResourceStore* m_pBuildingFootprintResourceStore;
68  };
69  }
70 }