diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-05-07 05:09:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-07 05:09:55 +0200 |
commit | 9c9b4616c3eda641f3d370758587fa776fa1a87e (patch) | |
tree | d081194e1ea0b673a1cc01f7c00846374da70594 /src/common | |
parent | Merge pull request #10178 from ronikirla/2-hour-crash (diff) | |
parent | input_common: Add property to invert an axis button (diff) | |
download | yuzu-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.h | 2 | ||||
-rw-r--r-- | src/common/vector_math.h | 14 |
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; } |