From a6bc5b837034627799a38991dbf213fe63ed8f00 Mon Sep 17 00:00:00 2001 From: hgn Date: Thu, 2 Nov 2023 23:07:23 +0000 Subject: [PATCH] angle measurements --- vg_m.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/vg_m.h b/vg_m.h index 4fe4590..abd4509 100644 --- a/vg_m.h +++ b/vg_m.h @@ -107,6 +107,15 @@ static inline f32 vg_rad( f32 deg ) return deg * VG_PIf / 180.0f; } +/* angle to reach b from a */ +static f32 vg_angle_diff( f32 a, f32 b ){ + f32 d = fmod(b,VG_TAUf)-fmodf(a,VG_TAUf); + if( fabsf(d) > VG_PIf ) + d = -vg_signf(d) * (VG_TAUf - fabsf(d)); + + return d; +} + /* * quantize float to bit count */ @@ -690,6 +699,10 @@ static void q_mulv( v4f q, v3f v, v3f d ) v3_add( v1, v2, d ); } +static f32 q_dist( v4f q0, v3f q1 ){ + return acosf( 2.0f * v4_dot(q0,q1) -1.0f ); +} + /* * ----------------------------------------------------------------------------- * Section 4.a 2x2 matrices -- 2.25.1