All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorsGpsCameraController.h
1 // Copyright eeGeo Ltd (2012-2016), All Rights Reserved
2 
3 #pragma once
4 
5 #include "GlobeCamera.h"
6 #include "Interiors.h"
7 #include "ITouchController.h"
8 #include "VectorMath.h"
9 #include "Rendering.h"
10 #include "InteriorsCameraConfiguration.h"
11 
12 namespace Eegeo
13 {
14  namespace Resources
15  {
16  namespace Interiors
17  {
19  {
20  private:
21  InteriorsCameraController& m_interiorsCameraController;
22  const IImmutableInteriorViewModel& m_interiorViewModel;
23  Camera::GlobeCamera::GlobeCameraTouchController& m_globeCameraTouchController;
24  Camera::GlobeCamera::GpsGlobeCameraController& m_gpsGlobeCameraController;
25 
26  public:
28  const IImmutableInteriorViewModel& interiorViewModel,
29  Camera::GlobeCamera::GlobeCameraTouchController& m_globeCameraTouchController,
30  Camera::GlobeCamera::GpsGlobeCameraController& gpsGlobeCameraController);
31 
33 
34  const Camera::CameraState GetCameraState() const;
35  const Camera::RenderCamera GetRenderCamera() const;
36  dv3 ComputeNonFlattenedCameraPosition() const;
37  dv3 CalculateInterestPoint(float expandedParam, float distanceToInterest) const;
38  ITouchController& GetTouchController() const;
39  Camera::GlobeCamera::GpsGlobeCameraController& GetGpsGlobeCameraController();
40 
41  void Update(float dt);
42 
43  void UpdateScreenProperties(const Rendering::ScreenProperties& screenProperties);
44 
45  void SetInterestLocation(const dv3& interestPointEcef);
46  const dv3& GetInterestLocation() const;
47 
48  void SetDistanceToInterest(float distanceMeters);
49  const float GetDistanceToInterest() const;
50 
51  void SetHeading(float headingDegrees);
52  float GetHeadingDegrees() const;
53 
54  void SetTilt(float tiltDegrees);
55  void SetApplyRestrictions(bool applyRestrictions);
56  void SetApplyFloorOffset(bool applyFloorOffset);
57  float GetCameraInterestAltitude() const;
58  void SetCameraInterestAltitude(float cameraInterestAltitude);
59  float GetFloorOffsetHeight() const;
60  };
61  }
62  }
63 }