PGR Copakond OpenGL Engine - Bowling
Loading...
Searching...
No Matches
collisionDetector.h
Go to the documentation of this file.
1#ifndef PGR_SEM_COPAKOND_COLLISIONDETECTOR_H
2#define PGR_SEM_COPAKOND_COLLISIONDETECTOR_H
3
5
6namespace copakond {
7 class CollisionShape; // circular include dependency fix
8 class CollisionBox;
9 class CollisionSphere;
10
13 bool collides = false;
14 glm::vec3 normal = glm::vec3(0.0f);
15 glm::vec3 reflection = glm::vec3(0.0f);
16 };
17
19 CollisionResult collisionTrue(const glm::vec3 &normal, const glm::vec3 &reflection);
20
23 private:
25 static glm::vec3 OBB1OBB2Normal(const CollisionBox &box1, const CollisionBox &box2);
26
28 static CollisionResult OBB1OBB2(const CollisionBox &box1, const CollisionBox &box2, glm::vec3 velocity, bool calculateNormal = false);
29 static CollisionResult OBB1Sphere2(const CollisionBox &box1, const CollisionSphere &box2, glm::vec3 velocity, bool calculateNormal = false);
30 static CollisionResult Sphere1Sphere2(const CollisionSphere &box1, const CollisionSphere &box2, glm::vec3 velocity, bool calculateNormal = false);
31 public:
33
34 static CollisionResult checkCollision(const CollisionBox* box1, const CollisionBox* box2, const glm::vec3 &velocity = glm::vec3(0.0f), bool calculateNormal = false);
35 static CollisionResult checkCollision(const CollisionBox* box, const CollisionSphere* sphere, const glm::vec3 &velocity = glm::vec3(0.0f), bool calculateNormal = false);
36 static CollisionResult checkCollision(const CollisionSphere* sphere, const CollisionBox* box, const glm::vec3 &velocity = glm::vec3(0.0f), bool calculateNormal = false);
37 static CollisionResult checkCollision(const CollisionSphere* sphere1, const CollisionSphere* sphere2, const glm::vec3 &velocity = glm::vec3(0.0f), bool calculateNormal = false);
38
40 static CollisionResult checkCollision(const CollisionShape* shape1, const CollisionShape* shape2, const glm::vec3 &velocity = glm::vec3(0.0f), bool calculateNormal = false);
41 };
42}
43
44#endif //PGR_SEM_COPAKOND_COLLISIONDETECTOR_H
Oriented Bounding Box (OBB) collider.
Definition collisionBox.h:8
static CollisionResult checkCollision(const CollisionBox *box1, const CollisionBox *box2, const glm::vec3 &velocity=glm::vec3(0.0f), bool calculateNormal=false)
Definition collisionDetector.cpp:268
CollisionDetector()
Definition collisionDetector.h:32
Base class for physics colliders, acting as an invisible (or debug) mesh.
Definition collisionShape.h:18
Spherical collider, optimized for fast radius-based intersection tests.
Definition collisionSphere.h:8
PGR Semestral work with sample scenes and bowling. doxygen was generated with a help of LLM.
Definition bezier.cpp:3
CollisionResult collisionFalse()
Definition collisionDetector.cpp:7
CollisionResult collisionTrue(const glm::vec3 &normal, const glm::vec3 &reflection)
Definition collisionDetector.cpp:13
Container for collision response data.
Definition collisionDetector.h:12
bool collides
Definition collisionDetector.h:13
glm::vec3 reflection
Definition collisionDetector.h:15
glm::vec3 normal
Definition collisionDetector.h:14