OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |