aboutsummaryrefslogtreecommitdiff
path: root/src/models.c
diff options
context:
space:
mode:
authorraysan5 <raysan5@gmail.com>2016-03-27 19:42:57 +0200
committerraysan5 <raysan5@gmail.com>2016-03-27 19:42:57 +0200
commit136408d8b8b096f23953aba3d81b3fbeccdc2680 (patch)
treeef8336f9aa3d396a5f136324c8dbbc554e0a3b0d /src/models.c
parentee9bf76ae98b420df629128ebc1d63738f2a11f8 (diff)
downloadraylib-136408d8b8b096f23953aba3d81b3fbeccdc2680.tar.gz
raylib-136408d8b8b096f23953aba3d81b3fbeccdc2680.zip
Corrected bug on bounding box
if mesh is not loaded properly it breaks the game!
Diffstat (limited to 'src/models.c')
-rw-r--r--src/models.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/models.c b/src/models.c
index 52c68f9b..a515dd86 100644
--- a/src/models.c
+++ b/src/models.c
@@ -1328,13 +1328,19 @@ bool CheckCollisionRayBox(Ray ray, BoundingBox box)
BoundingBox CalculateBoundingBox(Mesh mesh)
{
// Get min and max vertex to construct bounds (AABB)
- Vector3 minVertex = (Vector3){ mesh.vertices[0], mesh.vertices[1], mesh.vertices[2] };
- Vector3 maxVertex = (Vector3){ mesh.vertices[0], mesh.vertices[1], mesh.vertices[2] };
+ Vector3 minVertex = { 0 };
+ Vector3 maxVertex = { 0 };
- for (int i = 1; i < mesh.vertexCount; i++)
+ if (mesh.vertices != NULL)
{
- minVertex = VectorMin(minVertex, (Vector3){ mesh.vertices[i*3], mesh.vertices[i*3 + 1], mesh.vertices[i*3 + 2] });
- maxVertex = VectorMax(maxVertex, (Vector3){ mesh.vertices[i*3], mesh.vertices[i*3 + 1], mesh.vertices[i*3 + 2] });
+ minVertex = (Vector3){ mesh.vertices[0], mesh.vertices[1], mesh.vertices[2] };
+ maxVertex = (Vector3){ mesh.vertices[0], mesh.vertices[1], mesh.vertices[2] };
+
+ for (int i = 1; i < mesh.vertexCount; i++)
+ {
+ minVertex = VectorMin(minVertex, (Vector3){ mesh.vertices[i*3], mesh.vertices[i*3 + 1], mesh.vertices[i*3 + 2] });
+ maxVertex = VectorMax(maxVertex, (Vector3){ mesh.vertices[i*3], mesh.vertices[i*3 + 1], mesh.vertices[i*3 + 2] });
+ }
}
// Create the bounding box