All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
MapCameraModule.h
1 #pragma once
2 
3 #include "Camera.h"
4 #include "MapCamera.h"
5 #include "Types.h"
6 #include "Rendering.h"
7 #include "Streaming.h"
8 #include "Config.h"
9 #include "MapLayers.h"
10 #include "Positioning.h"
11 #include "Modules.h"
12 #include "Location.h"
13 #include "Interiors.h"
14 
15 namespace Eegeo
16 {
17  namespace Camera
18  {
19  namespace MapCamera
20  {
22  {
23  public:
24  static MapCameraModule* Create(
25  Eegeo::Positioning::PositioningModule& positioningModule,
27  Rendering::EnvironmentFlatteningService& environmentFlatteningService,
28  Streaming::ResourceCeilingProvider& resourceCeilingProvider,
29  const Rendering::ScreenProperties& screenProperties,
33  Eegeo::Location::LocationModule& locationModule,
34  Eegeo::MapLayers::MapLayersModule& mapLayersModule,
35  const Eegeo::Config::PlatformConfig& platformConfig
36  );
37 
38  ~MapCameraModule();
39 
40  void EarlyUpdate(float dt);
41 
42  const ::Eegeo::Camera::ICameraStateProvider& GetCameraStateProvider() const;
43 
44  IMapCameraService& GetMapCameraService() const { return *m_pMapCameraService; }
45 
46  const MapCameraModel& GetMapCameraModel() const { return *m_pMapCameraModel; }
47 
48  const MapCameraDerivedStateModel& GetMapCameraDerivedState() const { return *m_pMapCameraDerivedStateModel; }
49 
50  Eegeo::Streaming::CameraFrustumStreamingVolume& GetCameraFrustumStreamingVolume() const;
51 
52  IMapCameraModelScreenPropertiesChangedEvent& GetMapCameraModelScreenPropertiesChangedEvent() const { return *m_pMapCameraModelScreenPropertiesChangedEvent; }
53 
54  IMapCameraModelChangedEvent& GetMapCameraModelChangedEvent() const { return *m_pMapCameraModelChangedEvent; }
55 
56  IMapCameraDerivedStateChangedEvent& GetMapCameraDerivedStateChangedEvent() const { return *m_pMapCameraDerivedStateChangedEvent; }
57 
58  MapCameraGestureHandler& GetMapCameraGestureHandler() const;
59 
60  private:
62  IMapCameraModelChangedEvent* pMapCameraModelChangedEvent,
63  IMapCameraModelScreenPropertiesChangedEvent* pMapCameraModelScreenPropertiesChangedEvent,
64  IMapCameraDerivedStateChangedEvent* pMapCameraDerivedStateChangedEvent,
65  IMapCameraTransitionFinishedEvent* pMapCameraTransitionFinishedEvent,
66  IMapCameraTransitionCancelledEvent* pMapCameraTransitionCancelledEvent,
67  IMapCameraTransitionGestureInterruptEvent* pMapCameraTransitionGestureInterruptEvent,
68  IMapCameraZoomLevels* pMapCameraZoomLevels,
69  MapCameraModel* pMapCameraModel,
70  MapCameraDerivedStateModel* pMapCameraDerivedStateModel,
71  MapCameraStateProvider* pMapCameraStateProvider,
72  Eegeo::Streaming::CameraFrustumStreamingVolume* pCameraFrustumStreamingVolume,
73  MapCameraStreamingVolumeModel* pMapCameraStreamingVolumeModel,
74  IMapCameraService* pMapCameraService,
75  MapCameraCoordinator* pMapCameraCoordinator,
76  IndoorOutdoorModalCameraControllerModule* pIndoorOutdoorModalCameraControllerModule
77 
78  );
79 
80  IMapCameraModelChangedEvent* const m_pMapCameraModelChangedEvent;
81  IMapCameraModelScreenPropertiesChangedEvent* const m_pMapCameraModelScreenPropertiesChangedEvent;
82  IMapCameraDerivedStateChangedEvent* const m_pMapCameraDerivedStateChangedEvent;
83  IMapCameraTransitionFinishedEvent* const m_pMapCameraTransitionFinishedEvent;
84  IMapCameraTransitionCancelledEvent* const m_pMapCameraTransitionCancelledEvent;
85  IMapCameraTransitionGestureInterruptEvent* const m_pMapCameraTransitionGestureInterruptEvent;
86 
87  IMapCameraZoomLevels* const m_pMapCameraZoomLevels;
88  MapCameraModel* const m_pMapCameraModel;
89  MapCameraDerivedStateModel* const m_pMapCameraDerivedStateModel;
90  MapCameraStateProvider* const m_pMapCameraStateProvider;
91  Eegeo::Streaming::CameraFrustumStreamingVolume* const m_pCameraFrustumStreamingVolume;
92  MapCameraStreamingVolumeModel* const m_pMapCameraStreamingVolumeModel;
93  IMapCameraService* const m_pMapCameraService;
94  MapCameraCoordinator* const m_pMapCameraCoordinator;
95  IndoorOutdoorModalCameraControllerModule* const m_pIndoorOutdoorModalCameraControllerModule;
96  };
97  }
98  }
99 }