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

Side by Side Diff: chrome/browser/android/vr_shell/vr_math.cc

Issue 2730883003: Remove unnecessary UI element math. (Closed)
Patch Set: Created 3 years, 9 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
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 "chrome/browser/android/vr_shell/vr_math.h" 5 #include "chrome/browser/android/vr_shell/vr_math.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 namespace vr_shell { 9 namespace vr_shell {
10 10
(...skipping 28 matching lines...) Expand all
39 for (int j = 0; j < 4; ++j) { 39 for (int j = 0; j < 4; ++j) {
40 tmat.m[i][j] = mat.m[i][j]; 40 tmat.m[i][j] = mat.m[i][j];
41 } 41 }
42 } 42 }
43 } 43 }
44 tmat.m[0][3] += x; 44 tmat.m[0][3] += x;
45 tmat.m[1][3] += y; 45 tmat.m[1][3] += y;
46 tmat.m[2][3] += z; 46 tmat.m[2][3] += z;
47 } 47 }
48 48
49 // Right multiply a translation matrix.
50 void TranslateMRight(gvr::Mat4f& tmat,
51 gvr::Mat4f& mat,
52 float x,
53 float y,
54 float z) {
55 if (&tmat != &mat) {
56 for (int i = 0; i < 4; ++i) {
57 for (int j = 0; j < 3; ++j) {
58 tmat.m[i][j] = mat.m[i][j];
59 }
60 }
61 }
62
63 for (int i = 0; i < 4; i++) {
64 tmat.m[i][3] =
65 mat.m[i][0] * x + mat.m[i][1] * y + mat.m[i][2] * z + mat.m[i][3];
66 }
67 }
68
69 // Left multiply a scale matrix. 49 // Left multiply a scale matrix.
70 void ScaleM(gvr::Mat4f& tmat, 50 void ScaleM(gvr::Mat4f& tmat,
71 const gvr::Mat4f& mat, 51 const gvr::Mat4f& mat,
72 float x, 52 float x,
73 float y, 53 float y,
74 float z) { 54 float z) {
75 if (&tmat != &mat) { 55 if (&tmat != &mat) {
76 for (int i = 0; i < 4; ++i) { 56 for (int i = 0; i < 4; ++i) {
77 for (int j = 0; j < 3; ++j) { 57 for (int j = 0; j < 3; ++j) {
78 tmat.m[i][j] = mat.m[i][j]; 58 tmat.m[i][j] = mat.m[i][j];
79 } 59 }
80 } 60 }
81 } 61 }
82 // Multiply all rows including translation components. 62 // Multiply all rows including translation components.
83 for (int j = 0; j < 4; ++j) { 63 for (int j = 0; j < 4; ++j) {
84 tmat.m[0][j] *= x; 64 tmat.m[0][j] *= x;
85 tmat.m[1][j] *= y; 65 tmat.m[1][j] *= y;
86 tmat.m[2][j] *= z; 66 tmat.m[2][j] *= z;
87 } 67 }
88 } 68 }
89 69
90 // Right multiply a scale matrix.
91 void ScaleMRight(gvr::Mat4f& tmat,
92 const gvr::Mat4f& mat,
93 float x,
94 float y,
95 float z) {
96 if (&tmat != &mat) {
97 for (int i = 0; i < 4; ++i) {
98 for (int j = 0; j < 3; ++j) {
99 tmat.m[i][j] = mat.m[i][j];
100 }
101 }
102 }
103 // Multiply columns, don't change translation components.
104 for (int i = 0; i < 3; ++i) {
105 tmat.m[i][0] *= x;
106 tmat.m[i][1] *= y;
107 tmat.m[i][2] *= z;
108 }
109 }
110
111 gvr::Mat4f MatrixTranspose(const gvr::Mat4f& mat) { 70 gvr::Mat4f MatrixTranspose(const gvr::Mat4f& mat) {
112 gvr::Mat4f result; 71 gvr::Mat4f result;
113 for (int i = 0; i < 4; ++i) { 72 for (int i = 0; i < 4; ++i) {
114 for (int k = 0; k < 4; ++k) { 73 for (int k = 0; k < 4; ++k) {
115 result.m[i][k] = mat.m[k][i]; 74 result.m[i][k] = mat.m[k][i];
116 } 75 }
117 } 76 }
118 return result; 77 return result;
119 } 78 }
120 79
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 } 176 }
218 177
219 gvr::Vec3f GetTranslation(const gvr::Mat4f& matrix) { 178 gvr::Vec3f GetTranslation(const gvr::Mat4f& matrix) {
220 return {matrix.m[0][3], matrix.m[1][3], matrix.m[2][3]}; 179 return {matrix.m[0][3], matrix.m[1][3], matrix.m[2][3]};
221 } 180 }
222 181
223 float VectorLength(const gvr::Vec3f& vec) { 182 float VectorLength(const gvr::Vec3f& vec) {
224 return sqrt(vec.x * vec.x + vec.y * vec.y + vec.z * vec.z); 183 return sqrt(vec.x * vec.x + vec.y * vec.y + vec.z * vec.z);
225 } 184 }
226 185
186 gvr::Vec3f VectorSubtract(const gvr::Vec3f& a, const gvr::Vec3f& b) {
187 return {a.x - b.x, a.y - b.y, a.z - b.z};
188 }
189
227 float NormalizeVector(gvr::Vec3f& vec) { 190 float NormalizeVector(gvr::Vec3f& vec) {
228 float len = VectorLength(vec); 191 float len = VectorLength(vec);
229 vec.x /= len; 192 vec.x /= len;
230 vec.y /= len; 193 vec.y /= len;
231 vec.z /= len; 194 vec.z /= len;
232 return len; 195 return len;
233 } 196 }
234 197
235 float VectorDot(const gvr::Vec3f& a, const gvr::Vec3f& b) { 198 float VectorDot(const gvr::Vec3f& a, const gvr::Vec3f& b) {
236 return a.x * b.x + a.y * b.y + a.z * b.z; 199 return a.x * b.x + a.y * b.y + a.z * b.z;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 const gvr::Vec3f& rayVector, 263 const gvr::Vec3f& rayVector,
301 float scale) { 264 float scale) {
302 gvr::Vec3f v; 265 gvr::Vec3f v;
303 v.x = rayOrigin.x + scale * rayVector.x; 266 v.x = rayOrigin.x + scale * rayVector.x;
304 v.y = rayOrigin.y + scale * rayVector.y; 267 v.y = rayOrigin.y + scale * rayVector.y;
305 v.z = rayOrigin.z + scale * rayVector.z; 268 v.z = rayOrigin.z + scale * rayVector.z;
306 return v; 269 return v;
307 } 270 }
308 271
309 } // namespace vr_shell 272 } // namespace vr_shell
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698