diff options
author | aap <aap@papnet.eu> | 2020-04-23 22:25:18 +0200 |
---|---|---|
committer | aap <aap@papnet.eu> | 2020-04-24 11:42:38 +0200 |
commit | f03b4eec4c37eab75a5bd639279cfcc615105b01 (patch) | |
tree | c4be4fa57b16c61d45e8156a51dd07b11e049bba /src/math | |
parent | Merge branch 'master' of github.com:gtamodding/re3 (diff) | |
download | re3-f03b4eec4c37eab75a5bd639279cfcc615105b01.tar re3-f03b4eec4c37eab75a5bd639279cfcc615105b01.tar.gz re3-f03b4eec4c37eab75a5bd639279cfcc615105b01.tar.bz2 re3-f03b4eec4c37eab75a5bd639279cfcc615105b01.tar.lz re3-f03b4eec4c37eab75a5bd639279cfcc615105b01.tar.xz re3-f03b4eec4c37eab75a5bd639279cfcc615105b01.tar.zst re3-f03b4eec4c37eab75a5bd639279cfcc615105b01.zip |
Diffstat (limited to 'src/math')
-rw-r--r-- | src/math/Quaternion.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/math/Quaternion.h b/src/math/Quaternion.h index fb37dc10..1d04bdff 100644 --- a/src/math/Quaternion.h +++ b/src/math/Quaternion.h @@ -10,6 +10,18 @@ public: float Magnitude(void) const { return Sqrt(x*x + y*y + z*z + w*w); } float MagnitudeSqr(void) const { return x*x + y*y + z*z + w*w; } + void Normalise(void) { + float sq = MagnitudeSqr(); + if(sq == 0.0f) + w = 1.0f; + else{ + float invsqrt = RecipSqrt(sq); + x *= invsqrt; + y *= invsqrt; + z *= invsqrt; + w *= invsqrt; + } + } const CQuaternion &operator+=(CQuaternion const &right) { x += right.x; |