All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TerrainStreamingModule.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Terrain.h"
7 #include "Collision.h"
8 #include "Rendering.h"
9 #include "Helpers.h"
10 #include "Modules.h"
11 #include "IJpegLoader.h"
12 #include "IAsyncBufferTextureRequestor.h"
13 #include "ChunkedFileFormat.h"
14 #include "ISceneElementInGraphObserver.h"
15 #include "Config.h"
16 
17 namespace Eegeo
18 {
19  namespace Modules
20  {
21  namespace Map
22  {
23  namespace Layers
24  {
26  {
27  public:
29  Rendering::MeshFactories::PackedTwoTextureDiffuseMeshFactory& packedTwoTextureDiffuseMeshFactory,
30  Rendering::IMeshUploadService* pMeshUploadService,
35  Rendering::IMaterialProvider& materialProvider,
37  Collision::CollisionMeshResourceRepository& terrainCollisionMeshResourceRepository,
38  Collision::CollisionMeshResourceRepository& treesCollisionMeshResourceRepository,
39  Core::AsyncLoadersModule& asyncLoadersModule,
40  Helpers::ITextureFileLoader& textureLoader,
41  const bool generateTreeCollision,
42  const bool alwaysUseHighFidelityWaterShader,
45  Rendering::Renderables::IUniqueTextureRenderableFactory& uniqueTextureRenderableFactory,
47  const Config::ResourceBuilderConfigSection& resourceBuilderConfig,
49 
51 
52  static TerrainStreamingModule* Create(Rendering::MeshFactories::MeshFactory& diffuseMeshFactory,
53  Rendering::IMeshUploadService* pMeshUploadService,
54  Core::RenderingModule& renderingModule,
55  TerrainModelModule& terrainModelModule,
56  EnvironmentMaterialModule& environmentMaterialModule,
58  Core::AsyncLoadersModule& asyncLoadersModule,
59  Helpers::ITextureFileLoader& textureLoader,
60  const bool generateTreeCollision,
61  const bool alwaysUseHighFidelityWaterShader,
64  Rendering::Renderables::IUniqueTextureRenderableFactory& uniqueTextureRenderableFactory,
66  const Config::ResourceBuilderConfigSection& resourceBuilderConfig,
68 
69  Resources::Terrain::lcm::ChunkedLcmTerrainBuilder& GetChunkedLcmTerrainBuilder() const;
70  Resources::Terrain::Raster::RasterTerrainBuilder& GetRasterTerrainBuilder() const;
71  Resources::Terrain::Placeholder::TerrainPlaceholderBuilder& GetTerrainPlaceholderBuilder() const;
72  Resources::Terrain::TerrainStreaming& GetTerrainStream() const;
73 
74  private:
76  Resources::Terrain::lcm::ChunkedLcmTerrainBuilder* m_pChunkedLcmTerrainBuilder;
77  Rendering::AsyncTexturing::IAsyncBufferTextureRequestor* m_pRasterTerrainTextureLoader;
78  Resources::Terrain::Raster::RasterTerrainBuilder* m_pRasterTerrainBuilder;
80  Resources::Terrain::TerrainStreaming* m_pTerrainStream;
81  };
82  }
83  }
84  }
85 }