All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ChunkedPropBuilder.h
1 #pragma once
2 
3 #include "Types.h"
4 #include "Interiors.h"
5 #include "CollisionBvhFactory.h"
6 #include "IInteriorsMaterialDtoRepository.h"
7 #include "QuantizedMeshSetChunkReader.h"
8 #include "PropResource.h"
9 #include "Rendering.h"
10 #include <unordered_map>
11 
12 namespace Eegeo
13 {
14  namespace Resources
15  {
16  namespace Interiors
17  {
18  namespace Builder
19  {
21  {
22  public:
23 
25 
26  PropResource* BuildPropResource(
30  const Space::CubeMap::CubeMapCellInfo& cellInfo,
31  IInteriorsMaterialService& materialService,
32  Materials::IInteriorsMaterialDtoRepository& materialDtoRepository,
33  const std::string& sourceUrl,
34  const std::string& textureRoot);
35 
36  private:
37 
38  Collision::CollisionBvhFactory m_propCollisionBvhFactory;
39  InteriorGeometryReader& m_geometryReader;
40 
41  struct PropMaterial
42  {
43  std::string materialName;
44  std::string diffuseTexture;
45  v4 diffuseColor;
46  };
47 
48  std::unordered_map<std::string, PropMaterial> ParseMaterials(
50 
51  void CreateMaterial(
52  const Rendering::VertexLayouts::VertexLayout& vertexLayout,
53  const PropMaterial& propMaterial,
54  const std::string& textureRoot,
55  Materials::IInteriorsMaterialDtoRepository &materialDtoRepository,
56  IInteriorsMaterialService &materialService);
57 
58  std::vector<InstanceSourceMeshData> CreateGeometryFromQuantizedMeshSet(
60  const Space::CubeMap::CubeMapCellInfo& cellInfo,
63  const std::string& meshNamePrefix);
64 
65  std::vector<InstanceSourceMeshData> ExtractInstanceSourceMeshDatas(
66  const dv3& cellOrigin,
68  };
69  }
70  }
71  }
72 }