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

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

Issue 2814443004: Refactor VR math off of GVR types, onto gfx types where possible. (Closed)
Patch Set: Created 3 years, 8 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 (c) 2016 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/ui_scene.h" 5 #include "chrome/browser/android/vr_shell/ui_scene.h"
6 6
7 #define _USE_MATH_DEFINES // For M_PI in MSVC. 7 #define _USE_MATH_DEFINES // For M_PI in MSVC.
8 #include <cmath> 8 #include <cmath>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/memory/ptr_util.h" 12 #include "base/memory/ptr_util.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/browser/android/vr_shell/animation.h" 14 #include "chrome/browser/android/vr_shell/animation.h"
15 #include "chrome/browser/android/vr_shell/easing.h" 15 #include "chrome/browser/android/vr_shell/easing.h"
16 #include "chrome/browser/android/vr_shell/ui_elements.h" 16 #include "chrome/browser/android/vr_shell/ui_elements.h"
17 #include "chrome/browser/android/vr_shell/vr_math.h" 17 #include "device/vr/vr_math.h"
18 #include "device/vr/vr_types.h"
18 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
19 20
20 #define TOLERANCE 0.0001 21 #define TOLERANCE 0.0001
21 22
22 #define EXPECT_VEC3F_NEAR(a, b) \ 23 #define EXPECT_VEC3F_NEAR(a, b) \
23 EXPECT_NEAR(a.x, b.x, TOLERANCE); \ 24 EXPECT_NEAR(a.x(), b.x(), TOLERANCE); \
24 EXPECT_NEAR(a.y, b.y, TOLERANCE); \ 25 EXPECT_NEAR(a.y(), b.y(), TOLERANCE); \
25 EXPECT_NEAR(a.z, b.z, TOLERANCE); 26 EXPECT_NEAR(a.z(), b.z(), TOLERANCE);
26 27
27 namespace vr_shell { 28 namespace vr_shell {
28 29
29 namespace { 30 namespace {
30 31
31 void addElement(UiScene* scene, int id) { 32 void addElement(UiScene* scene, int id) {
32 auto element = base::MakeUnique<ContentRectangle>(); 33 auto element = base::MakeUnique<ContentRectangle>();
33 element->id = id; 34 element->id = id;
34 scene->AddUiElement(std::move(element)); 35 scene->AddUiElement(std::move(element));
35 } 36 }
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 element = base::MakeUnique<ContentRectangle>(); 117 element = base::MakeUnique<ContentRectangle>();
117 element->id = 1; 118 element->id = 1;
118 element->parent_id = 0; 119 element->parent_id = 0;
119 element->size = {1, 1, 1}; 120 element->size = {1, 1, 1};
120 element->scale = {2, 2, 1}; 121 element->scale = {2, 2, 1};
121 element->rotation = {0, 0, 1, M_PI / 2}; 122 element->rotation = {0, 0, 1, M_PI / 2};
122 element->translation = {3, 0, 0}; 123 element->translation = {3, 0, 0};
123 scene.AddUiElement(std::move(element)); 124 scene.AddUiElement(std::move(element));
124 const ContentRectangle* child = scene.GetUiElementById(1); 125 const ContentRectangle* child = scene.GetUiElementById(1);
125 126
126 const gvr::Vec3f origin({0, 0, 0}); 127 const gfx::Vector3dF origin(0, 0, 0);
127 const gvr::Vec3f point({1, 0, 0}); 128 const gfx::Vector3dF point(1, 0, 0);
128 129
129 scene.UpdateTransforms(0); 130 scene.UpdateTransforms(0);
130 auto new_origin = MatrixVectorMul(child->TransformMatrix(), origin); 131 auto new_origin = vr::MatrixVectorMul(child->TransformMatrix(), origin);
131 auto new_point = MatrixVectorMul(child->TransformMatrix(), point); 132 auto new_point = vr::MatrixVectorMul(child->TransformMatrix(), point);
132 EXPECT_VEC3F_NEAR(gvr::Vec3f({6, 10, 0}), new_origin); 133 EXPECT_VEC3F_NEAR(gfx::Vector3dF(6, 10, 0), new_origin);
133 EXPECT_VEC3F_NEAR(gvr::Vec3f({0, 10, 0}), new_point); 134 EXPECT_VEC3F_NEAR(gfx::Vector3dF(0, 10, 0), new_point);
134 } 135 }
135 136
136 TEST(UiScene, Opacity) { 137 TEST(UiScene, Opacity) {
137 UiScene scene; 138 UiScene scene;
138 139
139 auto element = base::MakeUnique<ContentRectangle>(); 140 auto element = base::MakeUnique<ContentRectangle>();
140 element->id = 0; 141 element->id = 0;
141 element->opacity = 0.5; 142 element->opacity = 0.5;
142 scene.AddUiElement(std::move(element)); 143 scene.AddUiElement(std::move(element));
143 144
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 EXPECT_EQ(element->fill, Fill::SPRITE); 268 EXPECT_EQ(element->fill, Fill::SPRITE);
268 EXPECT_EQ(element->x_anchoring, XAnchoring::XLEFT); 269 EXPECT_EQ(element->x_anchoring, XAnchoring::XLEFT);
269 EXPECT_EQ(element->y_anchoring, YAnchoring::YTOP); 270 EXPECT_EQ(element->y_anchoring, YAnchoring::YTOP);
270 EXPECT_FLOAT_EQ(element->opacity, 0.357); 271 EXPECT_FLOAT_EQ(element->opacity, 0.357);
271 272
272 EXPECT_EQ(element->copy_rect.x, 100); 273 EXPECT_EQ(element->copy_rect.x, 100);
273 EXPECT_EQ(element->copy_rect.y, 101); 274 EXPECT_EQ(element->copy_rect.y, 101);
274 EXPECT_EQ(element->copy_rect.width, 102); 275 EXPECT_EQ(element->copy_rect.width, 102);
275 EXPECT_EQ(element->copy_rect.height, 103); 276 EXPECT_EQ(element->copy_rect.height, 103);
276 277
277 EXPECT_FLOAT_EQ(element->size.x, 200); 278 EXPECT_FLOAT_EQ(element->size.x(), 200);
278 EXPECT_FLOAT_EQ(element->size.y, 201); 279 EXPECT_FLOAT_EQ(element->size.y(), 201);
279 EXPECT_FLOAT_EQ(element->size.z, 1); 280 EXPECT_FLOAT_EQ(element->size.z(), 1);
280 281
281 EXPECT_FLOAT_EQ(element->scale.x, 300); 282 EXPECT_FLOAT_EQ(element->scale.x(), 300);
282 EXPECT_FLOAT_EQ(element->scale.y, 301); 283 EXPECT_FLOAT_EQ(element->scale.y(), 301);
283 EXPECT_FLOAT_EQ(element->scale.z, 302); 284 EXPECT_FLOAT_EQ(element->scale.z(), 302);
284 285
285 EXPECT_FLOAT_EQ(element->rotation.x, 400); 286 EXPECT_FLOAT_EQ(element->rotation.x, 400);
286 EXPECT_FLOAT_EQ(element->rotation.y, 401); 287 EXPECT_FLOAT_EQ(element->rotation.y, 401);
287 EXPECT_FLOAT_EQ(element->rotation.z, 402); 288 EXPECT_FLOAT_EQ(element->rotation.z, 402);
288 EXPECT_FLOAT_EQ(element->rotation.angle, 403); 289 EXPECT_FLOAT_EQ(element->rotation.angle, 403);
289 290
290 EXPECT_FLOAT_EQ(element->translation.x, 500); 291 EXPECT_FLOAT_EQ(element->translation.x(), 500);
291 EXPECT_FLOAT_EQ(element->translation.y, 501); 292 EXPECT_FLOAT_EQ(element->translation.y(), 501);
292 EXPECT_FLOAT_EQ(element->translation.z, 502); 293 EXPECT_FLOAT_EQ(element->translation.z(), 502);
293 294
294 dict.Clear(); 295 dict.Clear();
295 dict.SetInteger("id", 12); 296 dict.SetInteger("id", 12);
296 dict.SetBoolean("lockToFov", true); 297 dict.SetBoolean("lockToFov", true);
297 298
298 scene.AddUiElementFromDict(dict); 299 scene.AddUiElementFromDict(dict);
299 element = scene.GetUiElementById(12); 300 element = scene.GetUiElementById(12);
300 EXPECT_NE(element, nullptr); 301 EXPECT_NE(element, nullptr);
301 302
302 EXPECT_EQ(element->id, 12); 303 EXPECT_EQ(element->id, 12);
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 EXPECT_FLOAT_EQ(animation->from[0], 300); 436 EXPECT_FLOAT_EQ(animation->from[0], 300);
436 EXPECT_FLOAT_EQ(animation->from[1], 301); 437 EXPECT_FLOAT_EQ(animation->from[1], 301);
437 EXPECT_FLOAT_EQ(animation->from[2], 302); 438 EXPECT_FLOAT_EQ(animation->from[2], 302);
438 EXPECT_FLOAT_EQ(animation->from[3], 303); 439 EXPECT_FLOAT_EQ(animation->from[3], 303);
439 440
440 EXPECT_EQ(animation->start, 22345000); 441 EXPECT_EQ(animation->start, 22345000);
441 EXPECT_EQ(animation->duration, 54321000); 442 EXPECT_EQ(animation->duration, 54321000);
442 } 443 }
443 444
444 } // namespace vr_shell 445 } // namespace vr_shell
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698