X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fcollision.hpp;h=a31878c88e8553dd808796598401d49b7005c093;hb=f406067af6cbeb0a638078fe1d386d092583909c;hp=73c966dc8c0cefd5e9313115d68d85d40d792029;hpb=a113d3bd1feddd510e3b2852b0d42522735eee40;p=supertux.git diff --git a/src/collision.hpp b/src/collision.hpp index 73c966dc8..a31878c88 100644 --- a/src/collision.hpp +++ b/src/collision.hpp @@ -22,6 +22,7 @@ #include #include "collision_hit.hpp" +#include class Vector; class Rect; @@ -34,15 +35,17 @@ class Constraints { public: Constraints() { - left = -INFINITY; - right = INFINITY; - top = -INFINITY; - bottom = INFINITY; + float infinity = (std::numeric_limits::has_infinity ? std::numeric_limits::infinity() : std::numeric_limits::max()); + left = -infinity; + right = infinity; + top = -infinity; + bottom = infinity; } bool has_constraints() const { - return left > -INFINITY || right < INFINITY - || top > -INFINITY || bottom < INFINITY; + float infinity = (std::numeric_limits::has_infinity ? std::numeric_limits::infinity() : std::numeric_limits::max()); + return left > -infinity || right < infinity + || top > -infinity || bottom < infinity; } float left; @@ -60,10 +63,10 @@ bool intersects(const Rect& r1, const Rect& r2); * Returns true in case of a collision and fills in the hit structure then. */ bool rectangle_aatriangle(Constraints* constraints, const Rect& rect, - const AATriangle& triangle); + const AATriangle& triangle, const Vector& addl_ground_movement = Vector(0,0)); void set_rectangle_rectangle_constraints(Constraints* constraints, - const Rect& r1, const Rect& r2); + const Rect& r1, const Rect& r2, const Vector& addl_ground_movement = Vector(0,0)); }