|
|
@ -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); |
|
|
|
|
|
Math::Quaternion<float> old_q; |
|
|
|
|
|
|
|
|
Common::Quaternion<float> q = Common::MakeQuaternion(Math::Vec3<float>(), 0); |
|
|
|
|
|
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), |
|
|
|
|
|
tilt_angle); |
|
|
|
|
|
|
|
|
q = Common::MakeQuaternion(Math::MakeVec(-tilt_direction.y, 0.0f, tilt_direction.x), |
|
|
|
|
|
tilt_angle); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
auto inv_q = q.Inverse(); |
|
|
auto inv_q = q.Inverse(); |
|
|
|