All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IShapeModel.h
1 #pragma once
2 
3 #include "EegeoShapes.h"
4 #include "Types.h"
5 #include "VectorMathDecl.h"
6 #include "Interiors.h"
7 #include "LatLongAltitude.h"
8 #include "PositioningTypes.h"
9 
10 #include <vector>
11 
12 namespace Eegeo
13 {
14  namespace Shapes
15  {
17  {
18  public:
19  typedef int IdType;
20 
21  virtual ~IShapeModel() {}
22 
23  virtual IdType GetId() const = 0;
24 
25  virtual bool IsIndoor() const = 0;
26 
27  virtual const Resources::Interiors::InteriorId& GetIndoorMapId() const = 0;
28 
29  virtual int GetIndoorMapFloorIndex() const = 0;
30 
31  virtual void SetIndoorMapId(const Resources::Interiors::InteriorId& indoorMapId) = 0;
32 
33  virtual void SetIndoorMapFloorId(int indoorMapFloorId) = 0;
34 
35  virtual void SetElevation(double elevation) = 0;
36 
37  virtual void SetElevationMode(Eegeo::Positioning::ElevationMode::Type elevationMode) = 0;
38 
39  virtual dv3 GetOriginEcef() const = 0;
40 
41  virtual std::vector<v3> GetVertices() const = 0;
42 
43  virtual std::vector<u16> GetGeometryIndices() const = 0;
44 
45  virtual void GetBounds(Space::LatLong& out_southWest, Space::LatLong& out_northEast) const = 0;
46  };
47  }
48 }