6 #include "InteriorsMaterials.h"
9 #include "VectorMath.h"
10 #include "Rendering.h"
11 #include "EcefTangentBasis.h"
15 #include "InteriorsEntityMetadata.h"
16 #include "MortonKey.h"
17 #include "ICallback.h"
18 #include "CallbackCollection.h"
19 #include "InteriorRenderableCreationData.h"
28 typedef std::vector<InteriorsFloorModel*> TFloorModelVector;
34 const std::string& displayName,
35 const std::string& associatedLandmarkMaterialName,
36 const std::string& sourceVendor,
40 const Entities::TCategoryToEntitiesMetadata& entitiesMetadata,
41 const std::vector<InteriorsFloorModel*>& floorModels,
42 const std::vector<InteriorsFloorCells*>& interiorsFloorCells,
43 const int defaultFloorIndex,
44 const std::vector<Eegeo::Streaming::MortonKey>& intersectingCellKeys,
51 const std::string& GetName()
const;
52 const std::string& GetDisplayName()
const;
53 const std::string& GetAssociatedLandmarkMaterialName()
const;
54 const std::string& GetSourceVendor()
const;
56 int GetMiddleFloorIndex()
const;
58 const TFloorModelVector& GetFloors()
const;
60 int GetFloorCount()
const {
return static_cast<int>(m_floorModels.size()); }
63 const int GetDefaultFloorIndex()
const;
64 int FindFloorIndexWithFloorNumber(
int floorNumber)
const;
69 const Geometry::Bounds3D& GetTangentSpaceBounds()
const {
return m_tangentSpaceBounds; }
70 const std::vector<Eegeo::Streaming::MortonKey>& GetIntersectingCellKeys()
const {
return m_intersectingCellKeys; }
72 float GetBaseAltitude()
const;
73 float GetFloorAltitude(
int floorIndex)
const;
81 std::vector<const InteriorsFloorCell*> GetAllFloorCells()
const;
82 std::vector<Eegeo::Streaming::MortonKey> GetCurrentlyLoadedFloorCellKeys()
const;
84 void IncrementCellInMemoryReferenceCount();
85 void DecrementCellInMemoryReferenceCount();
86 void IncrementCellVisibleReferenceCount();
87 void DecrementCellVisibleReferenceCount();
88 void SetShouldPreventEviction(
bool preventEviction);
90 const bool AnyCellsInMemory()
const {
return m_cellsInMemoryRefCount > 0; }
91 const bool AnyCellsVisible()
const {
return m_cellsVisibilityRefCount > 0; }
92 const bool ShouldPreventEviction()
const {
return m_preventEviction; }
103 void RefreshFloorTransforms();
105 std::string m_interiorIdString;
106 std::string m_displayName;
107 std::string m_associatedLandmarkMaterialName;
108 std::string m_sourceVendor;
112 Entities::TCategoryToEntitiesMetadata* m_pEntitiesMetadata;
117 TFloorModelVector m_floorModels;
118 int m_defaultFloorIndex;
119 std::vector<Eegeo::Streaming::MortonKey> m_intersectingCellKeys;
122 std::vector<InteriorsFloorCells*> m_floorCellsPerFloor;
123 int m_cellsInMemoryRefCount;
124 int m_cellsVisibilityRefCount;
125 bool m_preventEviction;