mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-11 05:39:41 +02:00
Automatic update from web-platform-tests Add test case to XRRigidTransform Added test case that performs a point transformation using rigid transform's matrix and validates that the same transformation is performed when using quaternion used to construct the rigid transform. Change-Id: I4f26f8101e2f788c5e248570f923b45cec6445ea Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1521268 Commit-Queue: Piotr Bialecki <bialpio@chromium.org> Reviewed-by: Klaus Weidner <klausw@chromium.org> Cr-Commit-Position: refs/heads/master@{#640519} -- wpt-commits: cbc076f9ceab4eebfd6c2df8908248073a8eeb4d wpt-pr: 15823
46 lines
1.6 KiB
HTML
46 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="resources/webxr_test_constants.js"></script>
|
|
<script src="resources/webxr_test_asserts.js"></script>
|
|
<script src="resources/webxr_math_utils.js"></script>
|
|
|
|
<script>
|
|
|
|
let matrix_tests_name = "XRRigidTransform matrix works";
|
|
|
|
let matrix_tests = function() {
|
|
// Matrix tests for XRRigidTransform.
|
|
|
|
// Test 1. Check if matrix rotates the vector the same way as quaternion
|
|
// used to construct it. This does not perform a translation.
|
|
{
|
|
// point
|
|
const originDict = {x : 0, y : 0, z : 0, w : 1};
|
|
// quaternion - should be normalized
|
|
const orientationDict = {x : 0, y : 0.3805356, z : 0.7610712, w : 0.525322 }
|
|
|
|
let rigidTransform = new XRRigidTransform(
|
|
DOMPoint.fromPoint(originDict),
|
|
DOMPoint.fromPoint(orientationDict));
|
|
|
|
const point_0 = {x : 10, y : 11, z : 12, w : 1};
|
|
|
|
// transform the point by matrix from rigid transform
|
|
const point_transformed_0 = normalize_perspective(transform_point_by_matrix(rigidTransform.matrix, point_0));
|
|
const point_transformed_1 = transform_point_by_quaternion(orientationDict, point_0);
|
|
const point_transformed_2 = transform_point_by_quaternion(rigidTransform.orientation, point_0);
|
|
|
|
assert_point_approx_equals(
|
|
point_transformed_1, point_transformed_0,
|
|
FLOAT_EPSILON, "by-initial-quaternion-and-matrix:");
|
|
|
|
assert_point_approx_equals(
|
|
point_transformed_2, point_transformed_0,
|
|
FLOAT_EPSILON, "by-transform's-quaternion-and-matrix:");
|
|
}
|
|
};
|
|
|
|
test(matrix_tests, matrix_tests_name);
|
|
|
|
</script>
|