diff options
author | Roman Masanin <36927roma@gmail.com> | 2020-09-14 20:47:15 +0200 |
---|---|---|
committer | Roman Masanin <36927roma@gmail.com> | 2020-09-14 20:47:15 +0200 |
commit | 97550b4fd90cf1c3e9704ac03295475a3a21b01c (patch) | |
tree | 2f415a4829c705e6a2cdfb033ad861bf448aa7e5 /src/math/Vector.h | |
parent | finish work on ProcessPlayerVehicleEngine and cleanup (diff) | |
parent | Move a bunch of math to cpp files + small fixes (diff) | |
download | re3-97550b4fd90cf1c3e9704ac03295475a3a21b01c.tar re3-97550b4fd90cf1c3e9704ac03295475a3a21b01c.tar.gz re3-97550b4fd90cf1c3e9704ac03295475a3a21b01c.tar.bz2 re3-97550b4fd90cf1c3e9704ac03295475a3a21b01c.tar.lz re3-97550b4fd90cf1c3e9704ac03295475a3a21b01c.tar.xz re3-97550b4fd90cf1c3e9704ac03295475a3a21b01c.tar.zst re3-97550b4fd90cf1c3e9704ac03295475a3a21b01c.zip |
Diffstat (limited to 'src/math/Vector.h')
-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 |