| Index: chrome/browser/android/vr_shell/vr_math.cc
|
| diff --git a/chrome/browser/android/vr_shell/vr_math.cc b/chrome/browser/android/vr_shell/vr_math.cc
|
| index 112d491c7d26e30d9995d767f0574a04e044ad35..1438010c8061477ca0d62800d0cb3896de0d4864 100644
|
| --- a/chrome/browser/android/vr_shell/vr_math.cc
|
| +++ b/chrome/browser/android/vr_shell/vr_math.cc
|
| @@ -46,26 +46,6 @@ void TranslateM(gvr::Mat4f& tmat, gvr::Mat4f& mat, float x, float y, float z) {
|
| tmat.m[2][3] += z;
|
| }
|
|
|
| -// Right multiply a translation matrix.
|
| -void TranslateMRight(gvr::Mat4f& tmat,
|
| - gvr::Mat4f& mat,
|
| - float x,
|
| - float y,
|
| - float z) {
|
| - if (&tmat != &mat) {
|
| - for (int i = 0; i < 4; ++i) {
|
| - for (int j = 0; j < 3; ++j) {
|
| - tmat.m[i][j] = mat.m[i][j];
|
| - }
|
| - }
|
| - }
|
| -
|
| - for (int i = 0; i < 4; i++) {
|
| - tmat.m[i][3] =
|
| - mat.m[i][0] * x + mat.m[i][1] * y + mat.m[i][2] * z + mat.m[i][3];
|
| - }
|
| -}
|
| -
|
| // Left multiply a scale matrix.
|
| void ScaleM(gvr::Mat4f& tmat,
|
| const gvr::Mat4f& mat,
|
| @@ -87,65 +67,6 @@ void ScaleM(gvr::Mat4f& tmat,
|
| }
|
| }
|
|
|
| -// Right multiply a scale matrix.
|
| -void ScaleMRight(gvr::Mat4f& tmat,
|
| - const gvr::Mat4f& mat,
|
| - float x,
|
| - float y,
|
| - float z) {
|
| - if (&tmat != &mat) {
|
| - for (int i = 0; i < 4; ++i) {
|
| - for (int j = 0; j < 3; ++j) {
|
| - tmat.m[i][j] = mat.m[i][j];
|
| - }
|
| - }
|
| - }
|
| - // Multiply columns, don't change translation components.
|
| - for (int i = 0; i < 3; ++i) {
|
| - tmat.m[i][0] *= x;
|
| - tmat.m[i][1] *= y;
|
| - tmat.m[i][2] *= z;
|
| - }
|
| -}
|
| -
|
| -gvr::Mat4f MatrixTranspose(const gvr::Mat4f& mat) {
|
| - gvr::Mat4f result;
|
| - for (int i = 0; i < 4; ++i) {
|
| - for (int k = 0; k < 4; ++k) {
|
| - result.m[i][k] = mat.m[k][i];
|
| - }
|
| - }
|
| - return result;
|
| -}
|
| -
|
| -std::array<float, 4> MatrixVectorMul(const gvr::Mat4f& matrix,
|
| - const std::array<float, 4>& vec) {
|
| - std::array<float, 4> result;
|
| - for (int i = 0; i < 4; ++i) {
|
| - result[i] = 0;
|
| - for (int k = 0; k < 4; ++k) {
|
| - result[i] += matrix.m[i][k] * vec[k];
|
| - }
|
| - }
|
| - return result;
|
| -}
|
| -
|
| -std::array<float, 3> MatrixVectorMul(const gvr::Mat4f& matrix,
|
| - const std::array<float, 3>& vec) {
|
| - // Use homogeneous coordinates for the multiplication.
|
| - std::array<float, 4> vec_h = {{vec[0], vec[1], vec[2], 1.0f}};
|
| - std::array<float, 4> result;
|
| - for (int i = 0; i < 4; ++i) {
|
| - result[i] = 0;
|
| - for (int k = 0; k < 4; ++k) {
|
| - result[i] += matrix.m[i][k] * vec_h[k];
|
| - }
|
| - }
|
| - // Convert back from homogeneous coordinates.
|
| - float rw = 1.0f / result[3];
|
| - return {{rw * result[0], rw * result[1], rw * result[2]}};
|
| -}
|
| -
|
| gvr::Vec3f MatrixVectorMul(const gvr::Mat4f& m, const gvr::Vec3f& v) {
|
| gvr::Vec3f res;
|
| res.x = m.m[0][0] * v.x + m.m[0][1] * v.y + m.m[0][2] * v.z + m.m[0][3];
|
| @@ -224,6 +145,10 @@ float VectorLength(const gvr::Vec3f& vec) {
|
| return sqrt(vec.x * vec.x + vec.y * vec.y + vec.z * vec.z);
|
| }
|
|
|
| +gvr::Vec3f VectorSubtract(const gvr::Vec3f& a, const gvr::Vec3f& b) {
|
| + return {a.x - b.x, a.y - b.y, a.z - b.z};
|
| +}
|
| +
|
| float NormalizeVector(gvr::Vec3f& vec) {
|
| float len = VectorLength(vec);
|
| vec.x /= len;
|
|
|