From 1fa16bf5f84df61ae06ce7c98756cc91ba09e597 Mon Sep 17 00:00:00 2001 From: Lephenixnoir Date: Tue, 5 Sep 2023 00:06:04 +0200 Subject: [PATCH] it's a range problem --- src/utilities/utilities.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/utilities/utilities.cpp b/src/utilities/utilities.cpp index 5432376..f5d5f76 100644 --- a/src/utilities/utilities.cpp +++ b/src/utilities/utilities.cpp @@ -224,13 +224,20 @@ bool Pixel_Perfect_Collision( SpriteLocator image1, SpriteLocator image2 ) /* NEW IMPLEMENTATION - TO TEST */ -bool get_line_intersection( Vector2D p0, Vector2D p1, Vector2D p2, Vector2D p3, Vector2D *pr) +#include +bool get_line_intersection( Vector2D p0_n, Vector2D p1_n, Vector2D p2_n, Vector2D p3_n, Vector2D *pr) { - Vector2D s1, s2; + using namespace libnum; + vec p0((float)p0_n.x, (float)p0_n.y); + vec p1((float)p1_n.x, (float)p1_n.y); + vec p2((float)p2_n.x, (float)p2_n.y); + vec p3((float)p3_n.x, (float)p3_n.y); + + vec s1, s2; s1 = p1 - p0; s1 = p1 - p0; s2 = p3 - p2; s2 = p3 - p2; - libnum::num s, t; + float s, t; s = (-s1.y * (p0.x - p2.x) + s1.x * (p0.y - p2.y)) / (-s2.x * s1.y + s1.x * s2.y); t = ( s2.x * (p0.y - p2.y) - s2.y * (p0.x - p2.x)) / (-s2.x * s1.y + s1.x * s2.y);