32 Query(
float _best_distance, glm::ivec2 _collision_pair_index, glm::vec3 _normal) {
33 best_distance = _best_distance;
34 collision_pair_index = _collision_pair_index;
87 float rayOBBIntersect(vec3 origin, vec3 direction, mat3 obb_orientation);
bool SAT(CollisionBody &hullA, CollisionBody &hullB, Query &query)
Check collision between a CollisionBody and a CollisionBody.
float best_distance
Definition: collision.hpp:21
Query & operator=(const Query &q)
Definition: collision.hpp:44
unsigned int getSupport(CollisionBody &hull, vec3 n)
Find furthest vertex along normal, n, and return its index into hull.a_bounding_vertices.
Definition: collision.hpp:16
Query()
Default Constructor.
Definition: collision.hpp:28
int id
Definition: collision.hpp:24
A data structure to get data received from a collision.
Definition: collision.hpp:20
vec3 closestPointOnCylinder(vec3 p, const CollisionBody &cylinder)
Return the closest point on a cylinder, to another point, p.
Query queryEdgeDirections(CollisionBody &hullA, CollisionBody &hullB)
Query for Edge collisions in SAT.
QueryType
Definition: collision.hpp:16
bool sphereCylinderCollision(const CollisionBody &body_a, vec3 closest_pt)
Check collision between a sphere and a cylinder.
bool cylinderBoxCollision(const CollisionBody &cyl, const CollisionBody &obb)
Check collision between a BodyType::CYLINDER CollisionBody and a BodyType::BOX CollisionBody.
Query queryFaceDirections(CollisionBody &hullA, CollisionBody &hullB)
Definition: collision.hpp:16
CollisionBody structure for organising data to model physics simulations of convex hull collisions...
Definition: body.hpp:121
Query(float _best_distance, glm::ivec2 _collision_pair_index, glm::vec3 _normal)
Given point p, return point q on (or in) OBB b, closest to p.
Definition: collision.hpp:32
bool sphereSphereCollision(const CollisionBody &hullA, const CollisionBody &hullB)
Check collision between a sphere and a sphere.
float rayOBBIntersect(vec3 origin, vec3 direction, mat3 obb_orientation)
Ray OBB intersection function, returns a float along the vector origin + t * direction = contact_poin...
glm::vec3 normal
Definition: collision.hpp:23
glm::ivec2 collision_pair_index
Definition: collision.hpp:22
bool sphereBoxCollision(const CollisionBody &hullA, vec3 closest_pt)
Check collision between a CollisionBody and a sphere.
Query(const Query &q)
Definition: collision.hpp:38
Definition: collision.hpp:16