Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(404)

Side by Side Diff: device/vr/android/gvr/gvr_delegate.cc

Issue 2947843003: WebVR: fix angular velocity calculation for headset (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "device/vr/android/gvr/gvr_delegate.h" 5 #include "device/vr/android/gvr/gvr_delegate.h"
6 6
7 #include "base/trace_event/trace_event.h" 7 #include "base/trace_event/trace_event.h"
8 #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/ gvr.h" 8 #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/ gvr.h"
9 #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/ gvr_types.h" 9 #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/ gvr_types.h"
10 #include "ui/gfx/geometry/vector3d_f.h" 10 #include "ui/gfx/geometry/vector3d_f.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 59
60 gfx::Transform delta_mat; 60 gfx::Transform delta_mat;
61 gfx::Transform inverse_head_mat; 61 gfx::Transform inverse_head_mat;
62 // Calculate difference matrix, and inverse head matrix rotation. 62 // Calculate difference matrix, and inverse head matrix rotation.
63 // For the inverse rotation, just transpose the 3x3 subsection. 63 // For the inverse rotation, just transpose the 3x3 subsection.
64 // 64 //
65 // Assume that epsilon is nonzero since it's based on a compile-time constant 65 // Assume that epsilon is nonzero since it's based on a compile-time constant
66 // provided by the caller. 66 // provided by the caller.
67 for (int j = 0; j < 3; ++j) { 67 for (int j = 0; j < 3; ++j) {
68 for (int i = 0; i < 3; ++i) { 68 for (int i = 0; i < 3; ++i) {
69 delta_mat.matrix().set(j, i, 69 delta_mat.matrix().set(
70 head_mat_2.matrix().get(j, i) - 70 j, i,
71 head_mat.matrix().get(j, i) / epsilon_seconds); 71 (head_mat_2.matrix().get(j, i) - head_mat.matrix().get(j, i)) /
72 epsilon_seconds);
72 inverse_head_mat.matrix().set(j, i, head_mat.matrix().get(i, j)); 73 inverse_head_mat.matrix().set(j, i, head_mat.matrix().get(i, j));
73 } 74 }
74 delta_mat.matrix().set(j, 3, 0); 75 delta_mat.matrix().set(j, 3, 0);
75 delta_mat.matrix().set(3, j, 0); 76 delta_mat.matrix().set(3, j, 0);
76 inverse_head_mat.matrix().set(j, 3, 0); 77 inverse_head_mat.matrix().set(j, 3, 0);
77 inverse_head_mat.matrix().set(3, j, 0); 78 inverse_head_mat.matrix().set(3, j, 0);
78 } 79 }
79 delta_mat.matrix().set(3, 3, 1); 80 delta_mat.matrix().set(3, 3, 1);
80 inverse_head_mat.matrix().set(3, 3, 1); 81 inverse_head_mat.matrix().set(3, 3, 1);
81 gfx::Transform omega_mat = delta_mat * inverse_head_mat; 82 gfx::Transform omega_mat = delta_mat * inverse_head_mat;
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 gvr::Mat4f eye_mat = gvr_api->GetEyeFromHeadMatrix(eye); 266 gvr::Mat4f eye_mat = gvr_api->GetEyeFromHeadMatrix(eye);
266 eye_params->offset[0] = -eye_mat.m[0][3]; 267 eye_params->offset[0] = -eye_mat.m[0][3];
267 eye_params->offset[1] = -eye_mat.m[1][3]; 268 eye_params->offset[1] = -eye_mat.m[1][3];
268 eye_params->offset[2] = -eye_mat.m[2][3]; 269 eye_params->offset[2] = -eye_mat.m[2][3];
269 } 270 }
270 271
271 return device; 272 return device;
272 } 273 }
273 274
274 } // namespace device 275 } // namespace device
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698