All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
GpsGlobeCameraController.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "GlobeCamera.h"
7 #include "VectorMathDecl.h"
8 #include "Space.h"
9 #include "IInterestPointProvider.h"
10 #include "CameraState.h"
11 #include "Rendering.h"
12 #include "RenderCamera.h"
13 
14 namespace Eegeo
15 {
16  class ITouchController;
17 
18  namespace Camera
19  {
20  namespace GlobeCamera
21  {
23  {
24  public:
25  GpsGlobeCameraController(GpsGlobeCameraComponent* gpsGlobeCameraComponent,
26  GlobeCameraController* globeCameraController,
27  GlobeCameraTouchController* globeCameraTouchController);
28  virtual ~GpsGlobeCameraController();
29 
30  virtual void Update(float deltaSeconds);
31 
32  virtual void UpdateScreenProperties(const Eegeo::Rendering::ScreenProperties& screenProperties);
33 
34  virtual RenderCamera GetRenderCamera() const;
35 
36  dv3 GetEcefInterestPoint() const;
37 
38  virtual float GetDistanceToInterest() const;
39 
40  virtual const Space::EcefTangentBasis& GetInterestBasis() const;
41 
42  virtual void SetInterestBasis(const Space::EcefTangentBasis& interestBasis);
43 
44  virtual void SetView(const Space::EcefTangentBasis& interestBasis, float distanceToInterest);
45 
46  virtual void SetInterestLocation(const dv3& interestPointEcef);
47 
48  virtual void SetView(double interestLatitudeDegrees, double interestLongitudeDegrees, float headingDegrees, float distanceToInterest);
49 
50  virtual bool IsGpsActive() const;
51 
52  virtual bool IsCompassActive() const;
53 
54  virtual bool TryGetDefaultGpsView(Space::EcefTangentBasis& out_interestBasis, float& out_distanceToInterest);
55 
56  virtual ITouchController& GetTouchController();
57 
58  virtual void SetDebugLogging(bool enabled);
59 
60  virtual Eegeo::Camera::GlobeCamera::GlobeCameraController& GetGlobeCameraController();
61 
62  CameraState GetCameraState() const;
63 
64  private:
65 
66  GpsGlobeCameraComponent* m_gpsGlobeCameraComponent;
67  GlobeCameraController* m_globeCameraController;
68  GlobeCameraTouchController* m_globeCameraTouchController;
69 
70  bool m_debugLoggingEnabled;
71  };
72  }
73  }
74 }