All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
MapCameraUpdateBuilder.h
1 #pragma once
2 
3 #include "MapCamera.h"
4 #include "MapCameraUpdate.h"
5 #include "Types.h"
6 #include "PositioningTypes.h"
7 #include "MapCameraPositionBuilder.h"
8 #include "LatLongAltitude.h"
9 
10 namespace Eegeo
11 {
12  namespace Camera
13  {
14  namespace MapCamera
15  {
17  {
18  public:
20 
21  MapCameraUpdateBuilder(const MapCameraPosition& mapCameraPosition);
22 
23  static MapCameraUpdateBuilder MakeForPosition(const MapCameraPosition& mapCameraPosition);
24 
25  static MapCameraUpdateBuilder MakeForLatLongBounds(const Eegeo::Space::LatLong& boundsNorthEast, const Eegeo::Space::LatLong& boundsSouthWest);
26 
27  static MapCameraUpdateBuilder MakeForZoomBy(double zoomBy,
28  bool roundToNearestZoomLevel);
29 
30  MapCameraUpdateBuilder& SetCoordinate(double latitudeDegrees, double longitudeDegrees);
31 
32  MapCameraUpdateBuilder& SetElevationMode(Positioning::ElevationMode::Type elevationMode);
33 
34  MapCameraUpdateBuilder& SetElevation(double elevationMetres);
35 
36  MapCameraUpdateBuilder& SetIndoorMapWithDefaultFloor(const std::string& indoorMapId);
37 
38  MapCameraUpdateBuilder& SetIndoorMap(const std::string& indoorMapId, int indoorMapFloorId);
39 
40  MapCameraUpdateBuilder& SetBearing(double bearingDegrees);
41 
42  MapCameraUpdateBuilder& SetZenithAngle(double zenithAngleDegrees);
43 
44  MapCameraUpdateBuilder& SetDistanceToInterest(double distanceToInterest);
45 
46  MapCameraUpdateBuilder& SetZoomLevel(double zoomLevel);
47 
48  MapCameraUpdateBuilder& ZoomBy(double zoomBy,
49  bool roundToNearestZoomLevel);
50 
51  MapCameraUpdate Build();
52 
53  private:
54 
55  MapCameraUpdateBuilder(const Eegeo::Space::LatLong& boundsNorthEast, const Eegeo::Space::LatLong& boundsSouthWest);
56 
57  MapCameraUpdateBuilder(double zoomBy, bool roundToNearestZoomLevel);
58 
59  MapCameraPositionBuilder m_mapCameraPositionBuilder;
60  Space::LatLong m_boundsNorthEast;
61  Space::LatLong m_boundsSouthWest;
62  double m_zoomLevel;
63  bool m_useZoomLevel;
64  double m_zoomBy;
65  MapCameraUpdateOperation::Type m_mapCameraUpdateOperation;
66  bool m_modifyPointOnMap;
67  bool m_modifyBearing;
68  bool m_modifyZenithAngle;
69  bool m_modifyDistanceToInterest;
70  };
71 
72  }
73  }
74 }