All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
BuildingHighlightModule.h
1 #pragma once
2 
3 #include "BuildingHighlights.h"
4 #include "Types.h"
5 #include "Modules.h"
6 #include "Collision.h"
7 #include "Positioning.h"
8 #include "Rendering.h"
9 #include "Helpers.h"
10 #include "EegeoRootDeclarations.h"
11 #include "Camera.h"
12 
13 #include <vector>
14 
15 namespace Eegeo
16 {
17  namespace BuildingHighlights
18  {
19 
21  {
22  public:
23  static BuildingHighlightModule* Create(
24  Modules::BuildingFootprintsModule& buildingFootprintsModule,
25  Collision::CollisionModule& collisionModule,
26  Modules::CollisionVisualizationModule& collisionVisualizationModule,
27  Modules::Core::RenderingModule& renderingModule,
28  Modules::ISceneBuilderModule& sceneBuilderModule,
29  Positioning::PositioningModule& positioningModule,
30  const Camera::ICameraStateProvider& cameraStateProvider
31  );
32 
34 
35  IBuildingHighlightService& GetBuildingHighlightService() const;
36 
37  IBuildingHighlightModelChangedEvent& GetBuildingHighlightModelChangedEvent() const;
38 
39  void Update(const Eegeo::EegeoUpdateParameters& updateParameters);
40 
41  private:
43  IBuildingHighlightIdGenerator* pBuildingHighlightIdGenerator,
44  IBuildingHighlightModelChangedEvent* pBuildingHighlightModelChangedEvent,
45  IBuildingHighlightModelFactory* pBuildingHighlightModelFactory,
46  BuildingHighlightModelRepository* pBuildingHighlightModelRepository,
47  IBuildingHighlightViewFactory* pBuildingHighlightViewFactory,
48  BuildingHighlightViewRepository* pBuildingHighlightViewRepository,
49  BuildingHighlightRenderer* pBuildingHighlightRenderer,
50  BuildingHighlightController* pBuildingHighlightController,
51  BuildingHighlightCameraState* pBuildingHighlightCameraState,
52  IBuildingHighlightService* pBuildingHighlightService,
53  Rendering::RenderableFilters& renderableFilters
54  );
55 
56  IBuildingHighlightIdGenerator* const m_pBuildingHighlightIdGenerator;
57  IBuildingHighlightModelChangedEvent* const m_pBuildingHighlightModelChangedEvent;
58  IBuildingHighlightModelFactory* const m_pBuildingHighlightModelFactory;
59  BuildingHighlightModelRepository* const m_pBuildingHighlightModelRepository;
60  IBuildingHighlightViewFactory* const m_pBuildingHighlightViewFactory;
61  BuildingHighlightViewRepository* const m_pBuildingHighlightViewRepository;
62  BuildingHighlightRenderer* const m_pBuildingHighlightRenderer;
63  BuildingHighlightController* const m_pBuildingHighlightController;
64  BuildingHighlightCameraState* const m_pBuildingHighlightCameraState;
65  IBuildingHighlightService* const m_pBuildingHighlightService;
66  Rendering::RenderableFilters& m_renderableFilters;
67  };
68  }
69 }