From 6c972078ca1f5951b5e442fefb16a8e0b69b60c5 Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Wed, 19 Mar 2008 23:08:26 +0000 Subject: fixed non-intersecting hook problem. hook length is more visible now. fixed damange system (thanks to shootme) --- src/game/g_vmath.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/game/g_vmath.h') diff --git a/src/game/g_vmath.h b/src/game/g_vmath.h index db7f4a50..ac3e1870 100644 --- a/src/game/g_vmath.h +++ b/src/game/g_vmath.h @@ -65,6 +65,21 @@ inline vector2_base normalize(const vector2_base &v) typedef vector2_base vec2; typedef vector2_base bvec2; typedef vector2_base ivec2; + +template +inline vector2_base closest_point_on_line(vector2_base line_point0, vector2_base line_point1, vector2_base target_point) +{ + vector2_base c = target_point - line_point0; + vector2_base v = (line_point1 - line_point0); + v = normalize(v); + T d = length(line_point0-line_point1); + T t = dot(v, c)/d; + return mix(line_point0, line_point1, clamp(t, (T)0, (T)1)); + /* + if (t < 0) t = 0; + if (t > 1.0f) return 1.0f; + return t;*/ +} // ------------------------------------ template -- cgit 1.4.1