All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorFloorData.h
1 // Copyright eeGeo Ltd (2012-2015), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Interiors.h"
6 #include "Types.h"
7 
8 #include "InteriorFloorChunkDto.h"
9 #include "InteriorEntitiesChunkDto.h"
10 #include "InteriorHighlightOutlineChunkDto.h"
11 #include "Rendering.h"
12 #include "Collision.h"
13 #include "Labels.h"
14 
15 #include <vector>
16 
17 namespace Eegeo
18 {
19  namespace Resources
20  {
21  namespace Interiors
22  {
23  namespace Builder
24  {
26  {
27  InteriorFloorData(const InteriorFloorChunkDto& interiorsFloorChunkDto,
28  const InteriorEntitiesChunkDto& interiorEntitiesChunkDto,
29  const InteriorHighlightOutlineChunkDto& interiorHighlightOutlineChunkDto,
30  const std::vector<InteriorRenderableCreationData*>& interiorRenderableCreationDatas,
31  const std::vector<InteriorRenderableCreationData*>& interiorHighlightRenderableCreationDatas,
32  const std::vector<Collision::CollisionBvh*>& collisionBvhs,
33  const std::vector<Collision::CollisionBvh*>& highlightCollisionBvhs,
34  const std::vector<std::vector<m44> >& instanceTransforms,
35  Labels::LabelCellModel* pLabelCellModel,
36  InteriorsFloorCellFeatureContainer* pInteriorsFloorCellFeatureContainer
37  );
38 
40 
41  void RelinquishOwnershipOfCollisionResources();
42  void RelinquishOwnershipOfLabelResources();
43  void RelinquishOwnershipOfInteriorsFloorCellFeatureContainer();
44 
45  const InteriorFloorChunkDto& GetInteriorsFloorChunkDto() const { return m_interiorsFloorChunkDto; }
46 
47  // for Labels and deprecated instanced geometry path
48  const InteriorEntitiesChunkDto& GetInteriorEntitiesChunkDto() const { return m_interiorEntitiesChunkDto; }
49  const InteriorHighlightOutlineChunkDto& GetInteriorHighlightOutlineChunkDto() const { return m_interiorHighlightOutlineChunkDto; }
50 
51  const std::vector<Collision::CollisionBvh*>& GetCollisionBvhs() const { return m_collisionBvhs; }
52  const std::vector<Collision::CollisionBvh*>& GetHighlightCollisionBvhs() const { return m_highlightCollisionBvhs; }
53 
54  const std::vector<InteriorRenderableCreationData*>& GetInteriorRenderableCreationDatas() const { return m_renderableCreationDatas; }
55  const std::vector<InteriorRenderableCreationData*>& GetInteriorHighlightRenderableCreationDatas() const { return m_highlightRenderableCreationDatas; }
56 
57  const std::vector<std::vector<m44> >& GetInstanceTransforms() const { return m_instanceTransforms; }
58 
59  InteriorsFloorCellFeatureContainer* GetInteriorsFloorCellFeatureContainer() const { return m_pInteriorsFloorCellFeatureContainer; };
60 
61  Labels::LabelCellModel* GetLabelCellModel() const { return m_pLabelCellModel; }
62 
63  private:
64  InteriorFloorChunkDto m_interiorsFloorChunkDto;
65  InteriorEntitiesChunkDto m_interiorEntitiesChunkDto;
66  InteriorHighlightOutlineChunkDto m_interiorHighlightOutlineChunkDto;
67  std::vector<InteriorRenderableCreationData*> m_renderableCreationDatas;
68  std::vector<InteriorRenderableCreationData*> m_highlightRenderableCreationDatas;
69  std::vector<Collision::CollisionBvh*> m_collisionBvhs;
70  std::vector<Collision::CollisionBvh*> m_highlightCollisionBvhs;
71  std::vector<std::vector<m44> > m_instanceTransforms;
72  Labels::LabelCellModel* m_pLabelCellModel;
73  InteriorsFloorCellFeatureContainer* m_pInteriorsFloorCellFeatureContainer;
74  };
75  }
76  }
77  }
78 }