All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ICollisionBvhProvider.h
1 // Copyright eeGeo Ltd (2012-2023), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Collision.h"
7 #include "ICallback.h"
8 #include "Streaming.h"
9 
10 #include <vector>
11 
12 namespace Eegeo
13 {
14  namespace Collision
15  {
17  {
18  public:
19  virtual ~ICollisionBvhProvider() { };
20 
21  virtual size_t CountCollisionBvhsForGroups(u32 collisionGroupsMask) const = 0;
22 
23  virtual size_t CopyCollisionBvhsForGroups(u32 collisionGroupsMask, const CollisionBvh** pCollisionBvhBufer, size_t maxBufferElements) const = 0;
24 
30 
31  virtual void RegisterObserver(INotifyChangedCallback& callback) = 0;
32 
33  virtual void UnregisterObserver(INotifyChangedCallback& callback) = 0;
34 
35  virtual void RegisterAddedObserver(INotifyAddedCallback& callback) = 0;
36 
37  virtual void UnregisterAddedObserver(INotifyAddedCallback& callback) = 0;
38 
39  virtual void RegisterRemovedObserver(INotifyRemovedCallback& callback) = 0;
40 
41  virtual void UnregisterRemovedObserver(INotifyRemovedCallback& callback) = 0;
42 
43  virtual void RegisterAddedObserver(INotifyAddedWithMortonKeyCallback& callback) = 0;
44 
45  virtual void UnregisterAddedObserver(INotifyAddedWithMortonKeyCallback& callback) = 0;
46 
47  virtual void RegisterRemovedObserver(INotifyRemovedWithMortonKeyCallback& callback) = 0;
48 
49  virtual void UnregisterRemovedObserver(INotifyRemovedWithMortonKeyCallback& callback) = 0;
50 
51  };
52  }
53 
54 }