All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
BlueSphereModel.h
1 // Copyright eeGeo Ltd (2012-2015), All Rights Reserved
2 
3 #pragma once
4 
5 #include "BlueSphere.h"
6 #include "Positioning.h"
7 #include "VectorMath.h"
8 #include "Camera.h"
9 #include "Space.h"
10 #include "PositioningTypes.h"
11 
12 #include <string>
13 
14 namespace Eegeo
15 {
16  namespace BlueSphere
17  {
19  {
20  public:
21 
23  Positioning::IPositioningViewComponent& positioningViewComponent);
24  ~BlueSphereModel();
25 
26  void UpdatePosition(const Eegeo::Camera::RenderCamera &renderCamera);
27 
28  Eegeo::dv3 GetCurrentLocationEcef() const;
29  bool IsLocationIndoors() const;
30  bool IsEnabled() const { return m_isEnabled; }
31 
32  bool IsAccuracyRingEnabled() const { return m_isAccuracyRingEnabled; }
33 
34  float GetCurrentLocationAccuracy() const;
35 
36  const double GetSmoothedHeadingDegrees() const;
37 
38  int GetCurrentFloorIndex() const;
39 
40  const float GetSphereHeightAboveBase() const;
41  const float GetAnchorCylinderHeightAboveBase() const;
42 
43  void SetCoordinate(const Space::LatLong& latLong);
44  void SetElevation(double elevation);
45  void SetElevationMode(Positioning::ElevationMode::Type mode);
46  void SetIndoorMap(const std::string& indoorMapId, int indoorMapFloorId);
47 
48  void SetCurrentLocationAccuracy(float accuracyInMeters);
49 
50  void SetHeadingRadians(float heading);
51 
52  void SetEnabled(bool enabled) { m_isEnabled = enabled; }
53  void SetAccuracyRingEnabled(bool enabled) { m_isAccuracyRingEnabled = enabled; }
54 
55  void ShowOrientation(bool showOrientationArrow);
56 
57  bool IsOrientationVisible();
58 
59  private:
60  Positioning::IPointOnMap& m_pointOnMap;
61  const Eegeo::Positioning::IPositioningViewComponent& m_positioningViewComponent;
62 
63  Eegeo::dv3 m_currentLocationEcef;
64  float m_currentHeadingRadians;
65  bool m_isEnabled;
66  bool m_showOrientationArrow;
67  bool m_isAccuracyRingEnabled;
68  float m_currentAccuracyMeters;
69  };
70  }
71 }