diff --git a/CMakeLists.txt b/CMakeLists.txt index 840d6fc..acda12f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ set(SC_3D_CollisionDetectionHelpers_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/src/sc_ add_library(SC_3D_CollisionDetectionHelpers ${SC_3D_CollisionDetectionHelpers_SOURCES}) -set_target_properties(SC_3D_CollisionDetectionHelpers PROPERTIES VERSION 2.0.0 SOVERSION 2) +set_target_properties(SC_3D_CollisionDetectionHelpers PROPERTIES VERSION 2.0.1 SOVERSION 2) if(NOT DEFINED CMAKE_BUILD_TYPE OR "${CMAKE_BUILD_TYPE}" STREQUAL "") message("Defaulting to \"Debug\" build type.") diff --git a/Changelog.md b/Changelog.md index 8309ce9..abf6666 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,10 @@ # Changelog +## Version 2.0.1 + +Added check in SC_SACD_Sphere_Box_Collision(...) to see if sphere and box has +same center. + ## Version 2.0.0 Add collision detection with Spheres. diff --git a/src/sc_sacd.cpp b/src/sc_sacd.cpp index 2713cdc..7f6a218 100644 --- a/src/sc_sacd.cpp +++ b/src/sc_sacd.cpp @@ -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_box_normal = 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 / std::sqrt(SC_SACD_Dot_Product(sphere_box_normal, sphere_box_normal));