All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
CollisionVisualizationModule.h
1 // Copyright eeGeo Ltd (2012-2023), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Modules.h"
7 #include "Rendering.h"
8 #include "Collision.h"
9 #include "Camera.h"
10 
11 #include "CollisionVisualization.h"
12 #include "MaterialSelectionControllerConfig.h"
13 #include "ICallback.h"
14 
15 
16 namespace Eegeo
17 {
18  namespace Modules
19  {
21  {
22  public:
23  static CollisionVisualizationModule* Create(const Core::RenderingModule& renderingModule,
24  Rendering::EnvironmentFlatteningService& environmentFlatteningService,
25  Eegeo::Collision::AggregateCollisionBvhProvider& aggregateCollisionBvhProvider,
26  const Map::Layers::BuildingModelModule& buildingModelModule,
27  const Eegeo::CollisionVisualization::MaterialSelectionControllerConfig& materialSelectionControllerConfig);
28 
30 
32 
34 
36 
37  CollisionVisualization::MaterialSelectionController& GetMaterialSelectionController() const;
38 
39  CollisionVisualization::CollisionVisualizationMaterial& GetCollisionVisualizationMaterial() const;
40 
41  void Update(float frameDeltaTimeSeconds);
42  void Draw(const Eegeo::Camera::RenderCamera& renderCamera);
43 
44  private:
46  Rendering::EnvironmentFlatteningService& environmentFlatteningService,
47  Eegeo::Collision::AggregateCollisionBvhProvider& aggregateCollisionBvhProvider,
48  const Map::Layers::BuildingModelModule& buildingModelModule,
49  const CollisionVisualization::MaterialSelectionControllerConfig& materialSelectionControllerConfig);
50 
51  CollisionVisualization::CollisionVisualizationRenderableFactory* m_pCollisionVisualizationRenderableFactory;
52  CollisionVisualization::CollisionVisualizationRenderer* m_pCollisionVisualizationRenderer;
53  CollisionVisualization::CollisionVisualizationMaterial* m_pCollisionVisualizationMaterial;
54  Rendering::Shaders::ClippedUniformColoredShader* m_pCollisionVisualizationShader;
55 
56  CollisionVisualization::MaterialSelectionRenderableFactory* m_pMaterialSelectionRenderableFactory;
57  CollisionVisualization::MaterialSelectionModel* m_pMaterialSelectionModel;
58  CollisionVisualization::MaterialSelectionController* m_pMaterialSelectionController;
59  CollisionVisualization::CollisionStreamingObserver* m_pCollisionStreamingObserver;
60  };
61  }
62 }