Add check in Sphere/Box collision for same center
This commit is contained in:
parent
a930d8b8aa
commit
7b9f25ca5c
1 changed files with 6 additions and 0 deletions
|
@ -296,6 +296,12 @@ int SC_SACD_Sphere_Box_Collision(const SC_SACD_Sphere *sphere,
|
||||||
SC_SACD_Vec3 sphere_pos{sphere->x, sphere->y, sphere->z};
|
SC_SACD_Vec3 sphere_pos{sphere->x, sphere->y, sphere->z};
|
||||||
SC_SACD_Vec3 sphere_box_normal =
|
SC_SACD_Vec3 sphere_box_normal =
|
||||||
SC_SACD_Vec3{box->x, box->y, box->z} - sphere_pos;
|
SC_SACD_Vec3{box->x, box->y, box->z} - sphere_pos;
|
||||||
|
if (sphere_box_normal.x < 0.0001F && sphere_box_normal.x > -0.0001F &&
|
||||||
|
sphere_box_normal.y < 0.0001F && sphere_box_normal.y > -0.0001F &&
|
||||||
|
sphere_box_normal.z < 0.0001F && sphere_box_normal.z > -0.0001F) {
|
||||||
|
// Sphere center is box center.
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
sphere_box_normal =
|
sphere_box_normal =
|
||||||
sphere_box_normal /
|
sphere_box_normal /
|
||||||
std::sqrt(SC_SACD_Dot_Product(sphere_box_normal, sphere_box_normal));
|
std::sqrt(SC_SACD_Dot_Product(sphere_box_normal, sphere_box_normal));
|
||||||
|
|
Loading…
Reference in a new issue