All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IndoorOutdoorModalCameraControllerModule.h
1 #pragma once
2 
3 #include "MapCamera.h"
4 #include "Types.h"
5 #include "LatLongAltitude.h"
6 #include "GlobeCamera.h"
7 #include "Interiors.h"
8 #include "VectorMath.h"
9 #include "ICallback.h"
10 #include "CallbackCollection.h"
11 #include "Modules.h"
12 #include "Streaming.h"
13 #include "Location.h"
14 #include "MapLayers.h"
15 #include "Rendering.h"
16 #include "Positioning.h"
17 
18 namespace Eegeo
19 {
20  namespace Camera
21  {
22  namespace MapCamera
23  {
25  {
26  public:
27  // todo - may be possible to remove some dependencies here, making use of IPointOnMap / IPositioningViewComponent
29  Eegeo::Positioning::PositioningModule& positioningModule,
31  Rendering::EnvironmentFlatteningService& environmentFlatteningService,
32  Streaming::ResourceCeilingProvider& resourceCeilingProvider,
33  const Rendering::ScreenProperties& screenProperties,
36  Eegeo::Location::NavigationService& navigationService,
37  Eegeo::MapLayers::MapLayersModule& mapLayersModule,
38  IMapCameraModelScreenPropertiesChangedEvent& mapCameraModelScreenPropertiesChangedEvent,
39  IMapCameraTransitionFinishedEvent& mapCameraTransitionFinishedEvent,
40  IMapCameraTransitionCancelledEvent& mapCameraTransitionCancelledEvent,
41  IMapCameraTransitionGestureInterruptEvent& mapCameraTransitionGestureInterruptEvent
42  );
43 
44  IndoorOutdoorModalCameraController& GetIndoorOutdoorModalCameraController() const;
45 
46  MapCameraGestureHandler& GetMapCameraGestureHandler() const { return *m_pMapCameraGestureHandler; }
47 
48  MapCameraDistanceFromBoundsCalculator& GetMapCameraDistanceFromBoundsCalculator() const { return *m_pMapCameraDistanceFromBoundsCalculator; }
49  GlobeCamera::IGlobeCameraScreenSpaceOffsetControl& GetMapCameraScreenSpaceOffsetControl() const;
50 
52  private:
55  Eegeo::Camera::GlobeCamera::GlobeCameraTouchController* pInteriorGlobeCameraTouchController,
56  Eegeo::Camera::GlobeCamera::GlobeCameraController* pInteriorGlobeCameraController,
59  Eegeo::Camera::MapCamera::MapCameraAnimator* pMapCameraAnimatorForModeChange,
60  Eegeo::Camera::MapCamera::MapCameraDistanceBasedPitchControl* pMapCameraDistanceBasedPitchControl,
61  Eegeo::Camera::MapCamera::MapCameraDistanceBasedFovControl* pMapCameraDistanceBasedFovControl,
62  Eegeo::Camera::MapCamera::MapCameraScreenSpaceOffsetControl* pMapCameraScreenSpaceOffsetControl,
63  Eegeo::Camera::MapCamera::MapCameraDistanceFromBoundsCalculator* pMapCameraDistanceFromBoundsCalculator,
64  IndoorOutdoorModalCameraController* pIndoorOutdoorModalCameraController,
65  MapCameraGestureHandler* pMapCameraGestureHandler
66  );
67 
68  Eegeo::Camera::GlobeCamera::GpsGlobeCameraController* const m_pGpsGlobeCameraController;
69  Eegeo::Camera::GlobeCamera::GlobeCameraTouchController* const m_pInteriorGlobeCameraTouchController;
70  Eegeo::Camera::GlobeCamera::GlobeCameraController* const m_pInteriorGlobeCameraController;
71  Eegeo::Resources::Interiors::InteriorsCameraController* const m_pInteriorsCameraController;
72  Eegeo::Camera::MapCamera::MapCameraAnimator* const m_pMapCameraAnimator;
73  Eegeo::Camera::MapCamera::MapCameraAnimator* const m_pMapCameraAnimatorForModeChange;
74  Eegeo::Camera::MapCamera::MapCameraDistanceBasedPitchControl* const m_pMapCameraDistanceBasedPitchControl;
75  Eegeo::Camera::MapCamera::MapCameraDistanceBasedFovControl* const m_pMapCameraDistanceBasedFovControl;
76  Eegeo::Camera::MapCamera::MapCameraScreenSpaceOffsetControl* const m_pMapCameraScreenSpaceOffsetControl;
77  Eegeo::Camera::MapCamera::MapCameraDistanceFromBoundsCalculator* const m_pMapCameraDistanceFromBoundsCalculator;
78  IndoorOutdoorModalCameraController* const m_pIndoorOutdoorModalCameraController;
79  MapCameraGestureHandler* const m_pMapCameraGestureHandler;
80 
81  };
82  }
83  }
84 }