All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
CollisionModule.h
1 #pragma once
2 
3 #include "Types.h"
4 #include "Collision.h"
5 #include "Modules.h"
6 #include "Rendering.h"
7 
8 namespace Eegeo
9 {
10  namespace Collision
11  {
13  {
14  public:
15  static CollisionModule* Create(
16  Eegeo::Collision::AggregateCollisionBvhProvider& aggregateCollisionBvhProvider,
17  Rendering::EnvironmentFlatteningService& environmentFlatteningService,
18  const Eegeo::Modules::Map::Layers::TerrainModelModule& terrainModelModule
19  );
20 
21  ~CollisionModule();
22 
23  IFeatureRayCastingService& GetFeatureRayCastingService() const;
24  IFeatureCollisionMeshService& GetFeatureCollisionMeshService() const;
25  ILandmarkCollisionMeshService& GetLandmarkCollisionMeshService() const;
26  IFeatureCollisionMeshAddedEvent& GetFeatureCollisionMeshAddedEvent() const;
27  IFeatureCollisionMeshRemovedEvent& GetFeatureCollisionMeshRemovedEvent() const;
28  ILandmarkCollisionMeshesChangedEvent& GetLandmarkCollisionMeshesChangedEvent() const;
29  IRayPicker& GetTerrainRayPicker() const; // todo_buildings_apoi - roll into IFeatureRayCastingService?
30 
31  private:
33  EnvironmentRayCaster* pEnvironmentRayCaster,
34  IRayPicker* pTerrainRayPicker,
35  IFeatureRayCastingService* pFeatureRayCastingService,
36  IFeatureCollisionMeshService* pFeatureCollisionMeshService,
37  ILandmarkCollisionMeshService* pLandmarkCollisionMeshService,
38  IFeatureCollisionMeshAddedEvent* pFeatureCollisionMeshAddedEvent,
39  IFeatureCollisionMeshRemovedEvent* pFeatureCollisionMeshRemovedEvent,
40  ILandmarkCollisionMeshesChangedEvent* pLandmarkCollisionMeshesChangedEvent
41  );
42 
43  EnvironmentRayCaster* const m_pEnvironmentRayCaster;
44  IRayPicker* const m_pTerrainRayPicker;
45  IFeatureRayCastingService* const m_pFeatureRayCastingService;
46  IFeatureCollisionMeshService* const m_pFeatureCollisionMeshService;
47  ILandmarkCollisionMeshService* const m_pLandmarkCollisionMeshService;
48  IFeatureCollisionMeshAddedEvent* const m_pFeatureCollisionMeshAddedEvent;
49  IFeatureCollisionMeshRemovedEvent* const m_pFeatureCollisionMeshRemovedEvent;
50  ILandmarkCollisionMeshesChangedEvent* const m_pLandmarkCollisionMeshesChangedEvent;
51 
52  };
53  }
54 }