summaryrefslogtreecommitdiffstats
path: root/src/input_common/motion_input.h
diff options
context:
space:
mode:
authorgerman <german@thesoftwareartisans.com>2020-08-24 03:41:59 +0200
committergerman <german@thesoftwareartisans.com>2020-08-28 00:19:21 +0200
commite6fc3b5662d441db7e1191a857bbb1b6ec1b06f4 (patch)
tree31a47d49d5c55a492ea9c3da1de8a9fab62bbafc /src/input_common/motion_input.h
parentImplement a basic class for motion devices (diff)
downloadyuzu-e6fc3b5662d441db7e1191a857bbb1b6ec1b06f4.tar
yuzu-e6fc3b5662d441db7e1191a857bbb1b6ec1b06f4.tar.gz
yuzu-e6fc3b5662d441db7e1191a857bbb1b6ec1b06f4.tar.bz2
yuzu-e6fc3b5662d441db7e1191a857bbb1b6ec1b06f4.tar.lz
yuzu-e6fc3b5662d441db7e1191a857bbb1b6ec1b06f4.tar.xz
yuzu-e6fc3b5662d441db7e1191a857bbb1b6ec1b06f4.tar.zst
yuzu-e6fc3b5662d441db7e1191a857bbb1b6ec1b06f4.zip
Diffstat (limited to 'src/input_common/motion_input.h')
-rw-r--r--src/input_common/motion_input.h40
1 files changed, 23 insertions, 17 deletions
diff --git a/src/input_common/motion_input.h b/src/input_common/motion_input.h
index 4b8093d8c..d1a7a9e13 100644
--- a/src/input_common/motion_input.h
+++ b/src/input_common/motion_input.h
@@ -14,10 +14,16 @@ class MotionInput {
public:
MotionInput(f32 new_kp, f32 new_ki, f32 new_kd);
- void SetAcceleration(Common::Vec3f acceleration);
- void SetGyroscope(Common::Vec3f acceleration);
- void SetQuaternion(Common::Quaternion<f32> quaternion);
- void SetGyroDrift(Common::Vec3f drift);
+ MotionInput(const MotionInput&) = default;
+ MotionInput& operator=(const MotionInput&) = default;
+
+ MotionInput(MotionInput&&) = default;
+ MotionInput& operator=(MotionInput&&) = default;
+
+ void SetAcceleration(const Common::Vec3f& acceleration);
+ void SetGyroscope(const Common::Vec3f& acceleration);
+ void SetQuaternion(const Common::Quaternion<f32>& quaternion);
+ void SetGyroDrift(const Common::Vec3f& drift);
void SetGyroThreshold(f32 threshold);
void EnableReset(bool reset);
@@ -26,23 +32,23 @@ public:
void UpdateRotation(u64 elapsed_time);
void UpdateOrientation(u64 elapsed_time);
- std::array<Common::Vec3f, 3> GetOrientation();
- Common::Vec3f GetAcceleration();
- Common::Vec3f GetGyroscope();
- Common::Vec3f GetRotations();
- Common::Quaternion<f32> GetQuaternion();
+ std::array<Common::Vec3f, 3> GetOrientation() const;
+ Common::Vec3f GetAcceleration() const;
+ Common::Vec3f GetGyroscope() const;
+ Common::Vec3f GetRotations() const;
+ Common::Quaternion<f32> GetQuaternion() const;
+
+ bool IsMoving(f32 sensitivity) const;
+ bool IsCalibrated(f32 sensitivity) const;
- bool IsMoving(f32 sensitivity);
- bool IsCalibrated(f32 sensitivity);
+private:
+ void ResetOrientation();
// PID constants
const f32 kp;
const f32 ki;
const f32 kd;
-private:
- void resetOrientation();
-
// PID errors
Common::Vec3f real_error;
Common::Vec3f integral_error;
@@ -54,9 +60,9 @@ private:
Common::Vec3f gyro;
Common::Vec3f gyro_drift;
- f32 gyro_threshold;
- f32 reset_counter;
- bool reset_enabled;
+ f32 gyro_threshold = 0.0f;
+ f32 reset_counter = 0.0f;
+ bool reset_enabled = true;
};
} // namespace InputCommon