PCG-FPS  v2 m0.22.4
Simple First Person Shooter with Procedurally Generated Level
CollisionCallback.h
Go to the documentation of this file.
1 #ifndef SKR_FPS2_COLLISION_CONTACTCALLBACK_H
2 #define SKR_FPS2_COLLISION_CONTACTCALLBACK_H
3 
4 #include "..\pch.h"
5 
6 #include <vector>
7 
8 #include "reactphysics3d.h"
9 
10 namespace skr
11 {
12 namespace fps2
13 {
14 namespace Collision
15 {
18  struct ContactPoint
19  {
20  glm::vec3 position;
21  glm::vec3 normal;
22 
26  ContactPoint(glm::vec3 pos, glm::vec3 norm)
27  : position(pos), normal(norm)
28  {};
29  };
30 
34  class CollisionCallback : public rp3d::CollisionCallback
35  {
36  public:
39  virtual void notifyContact(const CollisionCallbackInfo& collisionCallbackInfo) override;
40 
42  void ResetContactPoints();
43 
46  std::vector<ContactPoint> GetContactPoints();
47 
50  glm::vec3 GetMeanNormalOfContactPoints();
51 
52  private:
53  std::vector<ContactPoint> _contactPoints;
54  };
55 }
56 }
57 }
58 
59 #endif // !SKR_FPS2_COLLISION_CONTACTCALLBACK_H
skr::fps2::Collision::ContactPoint::ContactPoint
ContactPoint(glm::vec3 pos, glm::vec3 norm)
constructor
Definition: CollisionCallback.h:26
skr::fps2::Collision::ContactPoint::position
glm::vec3 position
position
Definition: CollisionCallback.h:20
skr::fps2::Collision::ContactPoint::normal
glm::vec3 normal
normal
Definition: CollisionCallback.h:21
skr::fps2::Collision::CollisionCallback::ResetContactPoints
void ResetContactPoints()
clears list of registered contact points
Definition: CollisionCallback.cpp:52
skr
Definition: AssetPath.h:10
skr::fps2::Collision::CollisionCallback
implements rp3d::CollisionCallback from ReactPhysics3D Library Used in detection of collisions betwee...
Definition: CollisionCallback.h:35
skr::fps2::Collision::CollisionCallback::notifyContact
virtual void notifyContact(const CollisionCallbackInfo &collisionCallbackInfo) override
callback function called if a collision is detected
Definition: CollisionCallback.cpp:19
skr::fps2::Collision::CollisionCallback::GetMeanNormalOfContactPoints
glm::vec3 GetMeanNormalOfContactPoints()
calculates mean normal of registered contact points
Definition: CollisionCallback.cpp:62
skr::fps2::Collision::ContactPoint
specifies a single contact point
Definition: CollisionCallback.h:19
skr::fps2::Collision::CollisionCallback::_contactPoints
std::vector< ContactPoint > _contactPoints
list of registered contact points
Definition: CollisionCallback.h:53
skr::fps2::Collision::CollisionCallback::GetContactPoints
std::vector< ContactPoint > GetContactPoints()
returns list of registered contact points
Definition: CollisionCallback.cpp:57