71TEST(math_rotation_types, Euler3Order)
338TEST(math_rotation_types, Euler3Conversion)
341 float3 xyz{0.350041, -0.358896, 0.528994};
342 Euler3 euler3_xyz(xyz, EulerOrder::XYZ);
343 Euler3 euler3_xzy(xyz, EulerOrder::XZY);
344 Euler3 euler3_yxz(xyz, EulerOrder::YXZ);
345 Euler3 euler3_yzx(xyz, EulerOrder::YZX);
346 Euler3 euler3_zxy(xyz, EulerOrder::ZXY);
347 Euler3 euler3_zyx(xyz, EulerOrder::ZYX);
349 Quaternion quat_xyz(0.927091f, 0.211322f, -0.124857f, 0.283295f);
350 Quaternion quat_xzy(0.943341f, 0.119427f, -0.124857f, 0.283295f);
351 Quaternion quat_yxz(0.943341f, 0.211322f, -0.124857f, 0.223297f);
352 Quaternion quat_yzx(0.927091f, 0.211322f, -0.214438f, 0.223297f);
353 Quaternion quat_zxy(0.927091f, 0.119427f, -0.214438f, 0.283295f);
354 Quaternion quat_zyx(0.943341f, 0.119427f, -0.214438f, 0.223297f);
357 {0.47251, 0.750174, -0.462572},
358 {0.35124, 0.321087, 0.879508}});
360 {0.504665, 0.810963, -0.296063},
361 {0.303231, 0.154577, 0.940296}});
363 {0.368521, 0.810963, -0.454458},
364 {0.329941, 0.342937, 0.879508}});
366 {0.323403, 0.810963, -0.487596},
367 {0.491982, 0.296063, 0.818719}});
369 {0.474061, 0.810963, -0.342937},
370 {0.465272, 0.0999405, 0.879508}});
372 {0.370072, 0.871751, -0.321087},
373 {0.457911, 0.129553, 0.879508}});
382 EXPECT_V3_NEAR(
float3(
to_euler(quat_xyz, EulerOrder::XYZ).xyz()), xyz, 1
e-4);
383 EXPECT_V3_NEAR(
float3(
to_euler(quat_xzy, EulerOrder::XZY).xyz()), xyz, 1
e-4);
384 EXPECT_V3_NEAR(
float3(
to_euler(quat_yxz, EulerOrder::YXZ).xyz()), xyz, 1
e-4);
385 EXPECT_V3_NEAR(
float3(
to_euler(quat_yzx, EulerOrder::YZX).xyz()), xyz, 1
e-4);
386 EXPECT_V3_NEAR(
float3(
to_euler(quat_zxy, EulerOrder::ZXY).xyz()), xyz, 1
e-4);
387 EXPECT_V3_NEAR(
float3(
to_euler(quat_zyx, EulerOrder::ZYX).xyz()), xyz, 1
e-4);
396 EXPECT_V3_NEAR(
float3(
to_euler(mat_xyz, EulerOrder::XYZ).xyz()), xyz, 1
e-4);
397 EXPECT_V3_NEAR(
float3(
to_euler(mat_xzy, EulerOrder::XZY).xyz()), xyz, 1
e-4);
398 EXPECT_V3_NEAR(
float3(
to_euler(mat_yxz, EulerOrder::YXZ).xyz()), xyz, 1
e-4);
399 EXPECT_V3_NEAR(
float3(
to_euler(mat_yzx, EulerOrder::YZX).xyz()), xyz, 1
e-4);
400 EXPECT_V3_NEAR(
float3(
to_euler(mat_zxy, EulerOrder::ZXY).xyz()), xyz, 1
e-4);
401 EXPECT_V3_NEAR(
float3(
to_euler(mat_zyx, EulerOrder::ZYX).xyz()), xyz, 1
e-4);
424 EXPECT_V3_NEAR(
float3(
to_euler(axis_angle_xyz, EulerOrder::XYZ).xyz()), xyz, 1
e-4);
425 EXPECT_V3_NEAR(
float3(
to_euler(axis_angle_xzy, EulerOrder::XZY).xyz()), xyz, 1
e-4);
426 EXPECT_V3_NEAR(
float3(
to_euler(axis_angle_yxz, EulerOrder::YXZ).xyz()), xyz, 1
e-4);
427 EXPECT_V3_NEAR(
float3(
to_euler(axis_angle_yzx, EulerOrder::YZX).xyz()), xyz, 1
e-4);
428 EXPECT_V3_NEAR(
float3(
to_euler(axis_angle_zxy, EulerOrder::ZXY).xyz()), xyz, 1
e-4);
429 EXPECT_V3_NEAR(
float3(
to_euler(axis_angle_zyx, EulerOrder::ZYX).xyz()), xyz, 1
e-4);