From: parasti Date: Fri, 11 Feb 2011 00:20:16 +0000 (+0000) Subject: Orthonormalize the interpolated reference frame X-Git-Tag: fremantle/1.5.5-2~73 X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;h=dc05513824464c7d36b084ac290fa97baa7b45c3;p=neverball Orthonormalize the interpolated reference frame git-svn-id: https://s.snth.net/svn/neverball/trunk@3488 78b8d119-cf0a-0410-b17c-f493084dd1d7 --- diff --git a/share/vec3.h b/share/vec3.h index d540bae..005c714 100644 --- a/share/vec3.h +++ b/share/vec3.h @@ -91,10 +91,19 @@ v_cpy((d)[2], (e)[2]); \ } +#define e_orthonrm(e) { \ + v_crs((e)[0], (e)[1], (e)[2]); \ + v_crs((e)[2], (e)[0], (e)[1]); \ + v_nrm((e)[0], (e)[0]); \ + v_nrm((e)[1], (e)[1]); \ + v_nrm((e)[2], (e)[2]); \ +} + #define e_lerp(c, d, e, a) { \ v_lerp((c)[0], (d)[0], (e)[0], a); \ v_lerp((c)[1], (d)[1], (e)[1], a); \ v_lerp((c)[2], (d)[2], (e)[2], a); \ + e_orthonrm(c); \ } /*---------------------------------------------------------------------------*/