All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorData.h
1 // Copyright eeGeo Ltd (2012-2015), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Interiors.h"
6 #include "InteriorDto.h"
7 #include "InteriorMetadataChunkDto.h"
8 #include "CollisionBvh.h"
9 
10 #include <string>
11 #include <vector>
12 
13 
14 namespace Eegeo
15 {
16  namespace Resources
17  {
18  namespace Interiors
19  {
20  namespace Builder
21  {
23  {
25  {
26  m_pInteriorRenderableCreationData = creationData;
27  m_pCollisionBvh = collisionBvh;
28  }
29 
30  inline InteriorRenderableCreationData* GetInteriorRenderableCreationData() const { return m_pInteriorRenderableCreationData; }
31  inline Collision::CollisionBvh* GetCollisionBvh() const { return m_pCollisionBvh; }
32  private:
33  InteriorRenderableCreationData* m_pInteriorRenderableCreationData;
34  Collision::CollisionBvh* m_pCollisionBvh;
35  };
36 
37  struct InteriorData
38  {
39  InteriorData(const std::string& interiorIdentifier,
40  const std::vector<InteriorFloorData*>& interiorFloors,
41  const InteriorDto& interiorDto,
42  const InteriorMetadataChunkDto& interiorMetadata,
43  const InteriorInstanceChunkDto& instanceDto,
44  const std::vector<InstanceSourceMeshData>& instanceSourceMeshes);
45 
46  ~InteriorData();
47 
48  void RelinquishOwnershipOfCollisionResources();
49  void RelinquishOwnershipOfLabelResources();
50  void RelinquishOwnershipOfInteriorsFloorCellFeatureContainers();
51 
52  std::string GetInteriorIdentifier() const { return m_InteriorIdentifier; }
53  std::vector<InteriorFloorData*> GetInteriorFloorData() const { return m_interiorFloors; }
54  InteriorDto GetInteriorDto() const { return m_interiorDto; }
55  InteriorMetadataChunkDto GetInteriorMetadata() const { return m_interiorMetadata; }
56  const InteriorInstanceChunkDto& GetInstanceDto() const { return m_instanceDto; }
57  const std::vector<InstanceSourceMeshData>& GetInstanceSourceRenderableCreationDatas() const { return m_instanceSourceMeshDatas; }
58 
59  private:
60  const std::string m_InteriorIdentifier;
61  std::vector<InteriorFloorData*> m_interiorFloors;
62  const InteriorDto m_interiorDto;
63  const InteriorMetadataChunkDto m_interiorMetadata;
64  const InteriorInstanceChunkDto m_instanceDto;
65  std::vector<InstanceSourceMeshData> m_instanceSourceMeshDatas;
66  };
67  }
68  }
69  }
70 }