summaryrefslogtreecommitdiffstats
path: root/src/common/vector_math.h
diff options
context:
space:
mode:
authorNarr the Reg <juangerman-13@hotmail.com>2023-05-05 20:29:26 +0200
committerNarr the Reg <juangerman-13@hotmail.com>2023-05-05 21:53:38 +0200
commit46e835f2d6531baea061a2723d171a2f5a1abf6a (patch)
treedab41bff4babe44fd5850c6f5042090d7179bf82 /src/common/vector_math.h
parentMerge pull request #10153 from FernandoS27/a-quickie-fixie (diff)
downloadyuzu-46e835f2d6531baea061a2723d171a2f5a1abf6a.tar
yuzu-46e835f2d6531baea061a2723d171a2f5a1abf6a.tar.gz
yuzu-46e835f2d6531baea061a2723d171a2f5a1abf6a.tar.bz2
yuzu-46e835f2d6531baea061a2723d171a2f5a1abf6a.tar.lz
yuzu-46e835f2d6531baea061a2723d171a2f5a1abf6a.tar.xz
yuzu-46e835f2d6531baea061a2723d171a2f5a1abf6a.tar.zst
yuzu-46e835f2d6531baea061a2723d171a2f5a1abf6a.zip
Diffstat (limited to 'src/common/vector_math.h')
-rw-r--r--src/common/vector_math.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/common/vector_math.h b/src/common/vector_math.h
index 0e2095c45..9a7d50abd 100644
--- a/src/common/vector_math.h
+++ b/src/common/vector_math.h
@@ -259,6 +259,20 @@ public:
return *this;
}
+ void RotateFromOrigin(float roll, float pitch, float yaw) {
+ float temp = y;
+ y = std::cos(roll) * y - std::sin(roll) * z;
+ z = std::sin(roll) * temp + std::cos(roll) * z;
+
+ temp = x;
+ x = std::cosf(pitch) * x + std::sin(pitch) * z;
+ z = -std::sin(pitch) * temp + std::cos(pitch) * z;
+
+ temp = x;
+ x = std::cos(yaw) * x - std::sin(yaw) * y;
+ y = std::sin(yaw) * temp + std::cos(yaw) * y;
+ }
+
[[nodiscard]] constexpr T Length2() const {
return x * x + y * y + z * z;
}