From 52405ee9bf46dc91dd15f2ce06f5e84004a0d31f Mon Sep 17 00:00:00 2001 From: hgn Date: Tue, 21 Nov 2023 04:25:16 +0000 Subject: [PATCH] euler stuff --- vg_m.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/vg_m.h b/vg_m.h index 6d86177..46cf38c 100644 --- a/vg_m.h +++ b/vg_m.h @@ -540,6 +540,34 @@ static void v3_tangent_basis( v3f n, v3f tx, v3f ty ){ v3_cross( n, tx, ty ); } +/* + * Compute yaw and pitch based of a normalized vector representing forward + * forward: -z + * result -> (YAW,PITCH,0.0) + */ +static void v3_angles( v3f v, v3f out_angles ){ + float yaw = atan2f( v[0], -v[2] ), + pitch = atan2f( + -v[1], + sqrtf( + v[0]*v[0] + v[2]*v[2] + ) + ); + + out_angles[0] = yaw; + out_angles[1] = pitch; + out_angles[2] = 0.0f; +} + +/* + * Compute the forward vector from (YAW,PITCH,ROLL) + * forward: -z + */ +static void v3_angles_vector( v3f angles, v3f out_v ){ + out_v[0] = sinf( angles[0] ) * cosf( angles[1] ); + out_v[1] = -sinf( angles[1] ); + out_v[2] = -cosf( angles[0] ) * cosf( angles[1] ); +} /* * ----------------------------------------------------------------------------- -- 2.25.1