All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IProp.h
1 #pragma once
2 
3 #include <string>
4 #include "InteriorId.h"
5 #include "Interiors.h"
6 #include "LatLongAltitude.h"
7 #include "IEvent.h"
8 #include "PositioningTypes.h"
9 
10 namespace Eegeo
11 {
12  namespace Resources
13  {
14  namespace Interiors
15  {
16  class IPropPositionChangedEvent : public Helpers::IEvent1<const int>
17  {
18 
19  };
20 
21  class IProp
22  {
23  public:
24  typedef int IdType;
25 
26  const static int InvalidId = -1;
27 
28  virtual ~IProp() {}
29 
30  virtual IdType GetId() const = 0;
31 
32  virtual const std::string& GetName() const = 0;
33  virtual InteriorId GetInteriorId() const = 0;
34  virtual int GetFloorId() const = 0;
35  virtual double GetElevation() const = 0;
36  virtual void SetElevation(double elevation) = 0;
37  virtual Positioning::ElevationMode::Type GetElevationMode() const = 0;
38  virtual void SetElevationMode(Positioning::ElevationMode::Type elevationMode) = 0;
39  virtual Space::LatLong GetCoordinate() const = 0;
40  virtual void SetCoordinate(const Space::LatLong& coord) = 0;
41  virtual double GetHeadingDegrees() const = 0;
42  virtual void SetHeadingDegrees(double headingDegrees) = 0;
43 
44  virtual const std::string& GetPropGeometryId() const = 0;
45  virtual void SetPropGeometryId(const std::string& propGeometryId) = 0;
46 
47  virtual m44 CalculateTransformMatrix(const dv3& rootEcef) const = 0;
48  virtual IPropPositionChangedEvent& GetPositionChangedEvent() = 0;
49  };
50  }
51  }
52 }
53