summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2023-05-07 05:09:55 +0200
committerGitHub <noreply@github.com>2023-05-07 05:09:55 +0200
commit9c9b4616c3eda641f3d370758587fa776fa1a87e (patch)
treed081194e1ea0b673a1cc01f7c00846374da70594 /src/common
parentMerge pull request #10178 from ronikirla/2-hour-crash (diff)
parentinput_common: Add property to invert an axis button (diff)
downloadyuzu-9c9b4616c3eda641f3d370758587fa776fa1a87e.tar
yuzu-9c9b4616c3eda641f3d370758587fa776fa1a87e.tar.gz
yuzu-9c9b4616c3eda641f3d370758587fa776fa1a87e.tar.bz2
yuzu-9c9b4616c3eda641f3d370758587fa776fa1a87e.tar.lz
yuzu-9c9b4616c3eda641f3d370758587fa776fa1a87e.tar.xz
yuzu-9c9b4616c3eda641f3d370758587fa776fa1a87e.tar.zst
yuzu-9c9b4616c3eda641f3d370758587fa776fa1a87e.zip
Diffstat (limited to 'src/common')
-rw-r--r--src/common/input.h2
-rw-r--r--src/common/vector_math.h14
2 files changed, 16 insertions, 0 deletions
diff --git a/src/common/input.h b/src/common/input.h
index 51b277c1f..66fb15f0a 100644
--- a/src/common/input.h
+++ b/src/common/input.h
@@ -111,6 +111,8 @@ struct AnalogProperties {
float offset{};
// Invert direction of the sensor data
bool inverted{};
+ // Invert the state if it's converted to a button
+ bool inverted_button{};
// Press once to activate, press again to release
bool toggle{};
};
diff --git a/src/common/vector_math.h b/src/common/vector_math.h
index 0e2095c45..b4885835d 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::cos(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;
}