All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorDto.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Interiors.h"
6 #include "Streaming.h"
7 #include "InteriorsEntityMetadata.h"
8 #include "Bounds.h"
9 #include "MortonKey.h"
10 #include "LatLongAltitude.h"
11 
12 #include <string>
13 #include <vector>
14 
15 namespace Eegeo
16 {
17  namespace Resources
18  {
19  namespace Interiors
20  {
21  namespace Builder
22  {
23  struct BoundsDto
24  {
25  BoundsDto()
26  : ModelBoundsLocalEcef(Eegeo::Geometry::Bounds3D::Empty())
27  , ModelBoundsTangentSpace(Eegeo::Geometry::Bounds3D::Empty())
28  {}
29  Eegeo::Geometry::Bounds3D ModelBoundsLocalEcef;
30  Eegeo::Geometry::Bounds3D ModelBoundsTangentSpace;
31  std::vector<Eegeo::Geometry::Bounds3D> FloorModelBoundsTangentSpace;
32  };
33 
34  struct LevelDataDto
35  {
36  LevelDataDto()
37  : ZLevel(0)
38  {}
39 
40  LevelDataDto(int z_level, const std::string& name, const std::string& readableName)
41  : ZLevel(z_level)
42  , Name(name)
43  , ReadableName(readableName)
44  {}
45 
46  int ZLevel;
47  std::string Name;
48  std::string ReadableName;
49  };
50 
51  struct EntitiesDto
52  {
53  Eegeo::Resources::Interiors::Entities::TCategoryToEntitiesMetadata CategoryToOrderedEntities;
54  };
55 
56  struct InteriorDto
57  {
58  std::string InteriorId;
59  std::string LandmarkName;
60  std::string InteriorName;
61  std::string SourceVendor;
62  int EntranceLevel;
63 
64  BoundsDto Bounds;
65  float TerrainHeight;
66 
67  std::vector<Eegeo::Streaming::MortonKey> IntersectingCellKeys;
68 
69  std::vector<LevelDataDto> LevelDatas;
70 
71  EntitiesDto Entities;
72 
73  Space::LatLong MarkerLatLong;
74 
75  dv3 TangentSpaceOriginEcef;
76  bool HasTangentSpaceOriginEcef;
77 
78  InteriorDto()
79  : EntranceLevel(0)
80  , TerrainHeight(0.f)
81  , MarkerLatLong(0.0, 0.0)
82  , TangentSpaceOriginEcef(dv3::Zero())
83  , HasTangentSpaceOriginEcef(false)
84  {}
85  };
86  }
87  }
88  }
89 }