All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IMarker.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Markers.h"
6 #include "Types.h"
7 #include "VectorMathDecl.h"
8 #include "Space.h"
9 #include "PositioningTypes.h"
10 
11 #include <string>
12 
13 namespace Eegeo
14 {
15  namespace Markers
16  {
17 
18  class IMarker
19  {
20  public:
21  typedef int IdType;
22 
23  const static int InvalidId = -1;
24 
25  virtual ~IMarker() {}
26 
27  virtual IdType GetId() const = 0;
28 
29  virtual const std::string& GetEntityName() const = 0;
30 
31  virtual bool IsIndoorMarker() const = 0;
32 
33  virtual double GetElevation() const = 0;
34 
35  virtual Positioning::ElevationMode::Type GetElevationMode() const = 0;
36 
37  virtual Space::LatLongAltitude GetAnchorLocation() const = 0;
38 
39  virtual void SetLocation(double latitudeDegrees, double longitudeDegrees) = 0;
40 
41  virtual void SetElevation(double elevation) = 0;
42 
43  virtual void SetElevationMode(Positioning::ElevationMode::Type elevationMode) = 0;
44 
45  virtual void SetHidden(bool isHidden) = 0;
46 
47  virtual bool IsHidden() const = 0;
48 
49  virtual void SetSubPriority(int subPriority) = 0;
50 
51  virtual void SetInteriorFloor(int interiorFloorNumber) = 0;
52 
53  virtual void SetLabelText(const std::string& labelTextUtf8) = 0;
54 
55  virtual void SetIconKey(const std::string& iconKey) = 0;
56 
57  virtual void SetLabelVerticalOffset(float verticalOffset) = 0;
58  };
59  }
60 }