WARNING: BREAKING: REMOVED: GetRayCollisionModel()
#2405
This commit is contained in:
parent
5abb87a0d2
commit
90fc7c0376
3 changed files with 16 additions and 23 deletions
|
@ -121,9 +121,22 @@ int main(void)
|
||||||
cursorColor = ORANGE;
|
cursorColor = ORANGE;
|
||||||
hitObjectName = "Box";
|
hitObjectName = "Box";
|
||||||
|
|
||||||
// Check ray collision against model
|
// Check ray collision against model meshes
|
||||||
// NOTE: It considers model.transform matrix!
|
RayCollision meshHitInfo = { 0 };
|
||||||
RayCollision meshHitInfo = GetRayCollisionModel(ray, tower);
|
for (int m = 0; m < tower.meshCount; m++)
|
||||||
|
{
|
||||||
|
// NOTE: We consider the model.transform for the collision check but
|
||||||
|
// it can be checked against any transform Matrix, used when checking against same
|
||||||
|
// model drawn multiple times with multiple transforms
|
||||||
|
meshHitInfo = GetRayCollisionMesh(ray, tower.meshes[m], tower.transform);
|
||||||
|
if (meshHitInfo.hit)
|
||||||
|
{
|
||||||
|
// Save the closest hit mesh
|
||||||
|
if ((!collision.hit) || (collision.distance > meshHitInfo.distance)) collision = meshHitInfo;
|
||||||
|
|
||||||
|
break; // Stop once one mesh collision is detected, the colliding mesh is m
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (meshHitInfo.hit)
|
if (meshHitInfo.hit)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1466,7 +1466,6 @@ 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 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
|
||||||
|
|
|
@ -3640,25 +3640,6 @@ RayCollision GetRayCollisionMesh(Ray ray, Mesh mesh, Matrix transform)
|
||||||
return collision;
|
return collision;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get collision info between ray and model
|
|
||||||
RayCollision GetRayCollisionModel(Ray ray, Model model)
|
|
||||||
{
|
|
||||||
RayCollision collision = { 0 };
|
|
||||||
|
|
||||||
for (int m = 0; m < model.meshCount; m++)
|
|
||||||
{
|
|
||||||
RayCollision meshHitInfo = GetRayCollisionMesh(ray, model.meshes[m], model.transform);
|
|
||||||
|
|
||||||
if (meshHitInfo.hit)
|
|
||||||
{
|
|
||||||
// Save the closest hit mesh
|
|
||||||
if ((!collision.hit) || (collision.distance > meshHitInfo.distance)) collision = meshHitInfo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return collision;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get collision info between ray and triangle
|
// Get collision info between ray and triangle
|
||||||
// NOTE: The points are expected to be in counter-clockwise winding
|
// NOTE: The points are expected to be in counter-clockwise winding
|
||||||
// NOTE: Based on https://en.wikipedia.org/wiki/M%C3%B6ller%E2%80%93Trumbore_intersection_algorithm
|
// NOTE: Based on https://en.wikipedia.org/wiki/M%C3%B6ller%E2%80%93Trumbore_intersection_algorithm
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue