diff options
author | Sergeanur <s.anureev@yandex.ua> | 2020-09-14 19:48:49 +0200 |
---|---|---|
committer | Sergeanur <s.anureev@yandex.ua> | 2020-09-14 20:07:31 +0200 |
commit | 38ec1bd50de234faf476daa15ea41778a860ca0b (patch) | |
tree | fedfb6fcbdd34f2dd576e6e6b1e6b2a76871b5a1 /src/math/Vector.h | |
parent | Fixes from miami (diff) | |
download | re3-38ec1bd50de234faf476daa15ea41778a860ca0b.tar re3-38ec1bd50de234faf476daa15ea41778a860ca0b.tar.gz re3-38ec1bd50de234faf476daa15ea41778a860ca0b.tar.bz2 re3-38ec1bd50de234faf476daa15ea41778a860ca0b.tar.lz re3-38ec1bd50de234faf476daa15ea41778a860ca0b.tar.xz re3-38ec1bd50de234faf476daa15ea41778a860ca0b.tar.zst re3-38ec1bd50de234faf476daa15ea41778a860ca0b.zip |
Diffstat (limited to '')
-rw-r--r-- | src/math/Vector.h | 36 |
1 files changed, 9 insertions, 27 deletions
diff --git a/src/math/Vector.h b/src/math/Vector.h index 5918a5d1..7ee01149 100644 --- a/src/math/Vector.h +++ b/src/math/Vector.h @@ -24,24 +24,7 @@ public: float MagnitudeSqr(void) const { return x*x + y*y + z*z; } float Magnitude2D(void) const { return Sqrt(x*x + y*y); } float MagnitudeSqr2D(void) const { return x*x + y*y; } - void Normalise(void) { - float sq = MagnitudeSqr(); - if(sq > 0.0f){ - float invsqrt = RecipSqrt(sq); - x *= invsqrt; - y *= invsqrt; - z *= invsqrt; - }else - x = 1.0f; - } - - void Normalise(float norm) { - float sq = MagnitudeSqr(); - float invsqrt = RecipSqrt(norm, sq); - x *= invsqrt; - y *= invsqrt; - z *= invsqrt; - } + void Normalise(void); void Normalise2D(void) { float sq = MagnitudeSqr2D(); @@ -124,17 +107,16 @@ DotProduct(const CVector &v1, const CVector &v2) return v1.x*v2.x + v1.y*v2.y + v1.z*v2.z; } -inline const CVector -CrossProduct(const CVector &v1, const CVector &v2) -{ - return CVector( - v1.y*v2.z - v1.z*v2.y, - v1.z*v2.x - v1.x*v2.z, - v1.x*v2.y - v1.y*v2.x); -} +CVector CrossProduct(const CVector &v1, const CVector &v2); inline float Distance(const CVector &v1, const CVector &v2) { return (v2 - v1).Magnitude(); -}
\ No newline at end of file +} + +class CMatrix; + +CVector Multiply3x3(const CMatrix &mat, const CVector &vec); +CVector Multiply3x3(const CVector &vec, const CMatrix &mat); +CVector operator*(const CMatrix &mat, const CVector &vec);
\ No newline at end of file |