|
|
@ -85,8 +85,8 @@ private:
|
|
|
|
|
|
|
|
|
|
|
|
void MotionEmuThread() {
|
|
|
|
void MotionEmuThread() {
|
|
|
|
auto update_time = std::chrono::steady_clock::now();
|
|
|
|
auto update_time = std::chrono::steady_clock::now();
|
|
|
|
Math::Quaternion<float> q = MakeQuaternion(Math::Vec3<float>(), 0);
|
|
|
|
Common::Quaternion<float> q = Common::MakeQuaternion(Math::Vec3<float>(), 0);
|
|
|
|
Math::Quaternion<float> old_q;
|
|
|
|
Common::Quaternion<float> old_q;
|
|
|
|
|
|
|
|
|
|
|
|
while (!shutdown_event.WaitUntil(update_time)) {
|
|
|
|
while (!shutdown_event.WaitUntil(update_time)) {
|
|
|
|
update_time += update_duration;
|
|
|
|
update_time += update_duration;
|
|
|
@ -96,8 +96,8 @@ private:
|
|
|
|
std::lock_guard<std::mutex> guard(tilt_mutex);
|
|
|
|
std::lock_guard<std::mutex> guard(tilt_mutex);
|
|
|
|
|
|
|
|
|
|
|
|
// Find the quaternion describing current 3DS tilting
|
|
|
|
// Find the quaternion describing current 3DS tilting
|
|
|
|
q = MakeQuaternion(Math::MakeVec(-tilt_direction.y, 0.0f, tilt_direction.x),
|
|
|
|
q = Common::MakeQuaternion(Math::MakeVec(-tilt_direction.y, 0.0f, tilt_direction.x),
|
|
|
|
tilt_angle);
|
|
|
|
tilt_angle);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
auto inv_q = q.Inverse();
|
|
|
|
auto inv_q = q.Inverse();
|
|
|
|