All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorRenderableCreationData.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Interiors.h"
7 #include "InteriorMaterialData.h"
8 #include "VectorMath.h"
9 #include "Rendering.h"
10 #include "Culling.h"
11 #include "LayerIds.h"
12 
13 
14 namespace Eegeo
15 {
16  namespace Resources
17  {
18  namespace Interiors
19  {
20  namespace Builder
21  {
23  {
24  public:
26  Rendering::LayerIds::Values layerId,
27  int floorIndex,
28  const dv3& ecefOrigin,
29  const v2& uvMin,
30  const v2& uvMax,
31  const v4& vertexMin,
32  const v4& vertexMax,
33  Rendering::Mesh* pMesh,
34  Culling::CullingVolumeTree* pCullingVolumeTree);
36 
37  InteriorMaterialData GetInteriorMaterialData() const;
38  Rendering::LayerIds::Values GetLayerId() const;
39  int GetFloorIndex() const;
40  dv3 GetEcefOrigin() const;
41  v2 GetUvMin() const;
42  v2 GetUvMax() const;
43  v4 GetVertexMin() const;
44  v4 GetVertexMax() const;
45  Rendering::Mesh* GetMesh();
46  Rendering::Mesh* TakeMeshOwnership();
47 
48  Culling::CullingVolumeTree* GetCullingVolumeTree();
49  Culling::CullingVolumeTree* TakeCullingVolumeTreeOwnership();
50 
51  private:
52  const Interiors::InteriorMaterialData m_interiorMaterialData;
53  const Rendering::LayerIds::Values m_layerId;
54  const int m_floorIndex;
55  const dv3 m_ecefOrigin;
56  const v2 m_uvMin;
57  const v2 m_uvMax;
58  const v4 m_vertexMin;
59  const v4 m_vertexMax;
60  Rendering::Mesh* m_pMesh;
61  Culling::CullingVolumeTree* m_pCullingVolumeTree;
62 
63  bool m_ownsMesh;
64  bool m_ownsCullingVolumeTree;
65  };
66  }
67  }
68  }
69 }