Add a matrix to GetCollisionModel

This commit is contained in:
Jeffery Myers 2022-03-22 20:26:56 -07:00
parent 9ecbc465a9
commit 0fc533b349
3 changed files with 7 additions and 5 deletions

View File

@ -123,7 +123,7 @@ int main(void)
// Check ray collision against model // Check ray collision against model
// NOTE: It considers model.transform matrix! // NOTE: It considers model.transform matrix!
RayCollision meshHitInfo = GetRayCollisionModel(ray, tower); RayCollision meshHitInfo = GetRayCollisionModel(ray, tower, MatrixIdentity());
if (meshHitInfo.hit) if (meshHitInfo.hit)
{ {

View File

@ -1464,8 +1464,8 @@ RLAPI bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2);
RLAPI bool CheckCollisionBoxSphere(BoundingBox box, Vector3 center, float radius); // Check collision between box and sphere RLAPI bool CheckCollisionBoxSphere(BoundingBox box, Vector3 center, float radius); // Check collision between box and sphere
RLAPI RayCollision GetRayCollisionSphere(Ray ray, Vector3 center, float radius); // Get collision info between ray and sphere RLAPI RayCollision GetRayCollisionSphere(Ray ray, Vector3 center, float radius); // Get collision info between ray and sphere
RLAPI RayCollision GetRayCollisionBox(Ray ray, BoundingBox box); // Get collision info between ray and box RLAPI RayCollision GetRayCollisionBox(Ray ray, BoundingBox box); // Get collision info between ray and box
RLAPI RayCollision GetRayCollisionModel(Ray ray, Model model); // Get collision info between ray and model RLAPI RayCollision GetRayCollisionModel(Ray ray, Model model, Matrix transform); // Get collision info between ray and model
RLAPI RayCollision GetRayCollisionMesh(Ray ray, Mesh mesh, Matrix transform); // Get collision info between ray and mesh RLAPI RayCollision GetRayCollisionMesh(Ray ray, Mesh mesh, Matrix transform); // Get collision info between ray and mesh
RLAPI RayCollision GetRayCollisionTriangle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3); // Get collision info between ray and triangle RLAPI RayCollision GetRayCollisionTriangle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3); // Get collision info between ray and triangle
RLAPI RayCollision GetRayCollisionQuad(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4); // Get collision info between ray and quad RLAPI RayCollision GetRayCollisionQuad(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4); // Get collision info between ray and quad

View File

@ -3641,13 +3641,15 @@ RayCollision GetRayCollisionMesh(Ray ray, Mesh mesh, Matrix transform)
} }
// Get collision info between ray and model // Get collision info between ray and model
RayCollision GetRayCollisionModel(Ray ray, Model model) RayCollision GetRayCollisionModel(Ray ray, Model model, Matrix transform)
{ {
RayCollision collision = { 0 }; RayCollision collision = { 0 };
Matrix mat = MatrixMultiply(model.transform, transform);
for (int m = 0; m < model.meshCount; m++) for (int m = 0; m < model.meshCount; m++)
{ {
RayCollision meshHitInfo = GetRayCollisionMesh(ray, model.meshes[m], model.transform); RayCollision meshHitInfo = GetRayCollisionMesh(ray, model.meshes[m], mat);
if (meshHitInfo.hit) if (meshHitInfo.hit)
{ {