All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
FeatureCollisionMeshService.h
1 #pragma once
2 
3 #include "IFeatureCollisionMeshService.h"
4 #include "CollisionEventTypes.h"
5 #include "Types.h"
6 
7 namespace Eegeo
8 {
9  namespace Collision
10  {
12  {
13  public:
15  ICollisionBvhProvider& collisionBvhProvider,
16  IFeatureCollisionMeshAddedEvent& featureCollisionMeshAddedEvent,
17  IFeatureCollisionMeshRemovedEvent& featureCollisionMeshRemovedEvent
18  );
19 
21 
22  std::vector<CollisionSubMesh> GetMeshesForCollisionMaterialId(const std::string& collisionMaterialId, u32 collisionGroupMask) override;
23 
24  IFeatureCollisionMeshAddedEvent& GetFeatureCollisionMeshesAddedEvent() const { return m_featureCollisionMeshAddedEvent; }
25  IFeatureCollisionMeshRemovedEvent& GetFeatureCollisionMeshesRemovedEvent() const { return m_featureCollisionMeshRemovedEvent; }
26  private:
27  void OnCollisionBvhProviderAddedBvh(const CollisionBvh& collisionBvh);
28  void OnCollisionBvhProviderRemovedBvh(const CollisionBvh& collisionBvh);
29 
30  ICollisionBvhProvider& m_collisionBvhProvider;
31  IFeatureCollisionMeshAddedEvent& m_featureCollisionMeshAddedEvent;
32  IFeatureCollisionMeshRemovedEvent& m_featureCollisionMeshRemovedEvent;
35  };
36  }
37 }