MathTestData.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. #include <AzCore/Math/MathUtils.h>
  10. #include <AzCore/Math/Matrix3x3.h>
  11. #include <AzCore/Math/Matrix3x4.h>
  12. #include <AzCore/Math/Quaternion.h>
  13. #include <AzCore/Math/Transform.h>
  14. #include <AzCore/Math/Vector3.h>
  15. namespace MathTestData
  16. {
  17. static const AZ::Vector3 Vector3s[] = {
  18. AZ::Vector3::CreateZero(),
  19. AZ::Vector3::CreateOne(),
  20. AZ::Vector3(-2.5f, -1.8f, 9.3f),
  21. AZ::Vector3(1000.0f, 1e-3f, 0.0f)
  22. };
  23. static const float Angles[] = { 0.0f, 1.0f, AZ::Constants::Pi, 100.0f, -0.5f };
  24. static const AZ::Matrix3x3 Matrix3x3s[] = {
  25. AZ::Matrix3x3::CreateIdentity(),
  26. AZ::Matrix3x3::CreateRotationZ(0.3f),
  27. AZ::Matrix3x3::CreateFromQuaternion(AZ::Quaternion(-0.46f, 0.26f, -0.22f, 0.82f)),
  28. AZ::Matrix3x3::CreateScale(AZ::Vector3(0.7f, 1.3f, 0.9f))
  29. };
  30. static const AZ::Matrix4x4 Matrix4x4s[] = {
  31. AZ::Matrix4x4::CreateIdentity(),
  32. AZ::Matrix4x4::CreateFromQuaternionAndTranslation(AZ::Quaternion(-0.46f, 0.26f, -0.22f, 0.82f), AZ::Vector3(1.0f, 5.0f, 10.0f)),
  33. AZ::Matrix4x4::CreateFromTransform(AZ::Transform::CreateFromMatrix3x3AndTranslation(
  34. AZ::Matrix3x3::CreateScale(AZ::Vector3(1.0f, 2.0f, 3.0f)), AZ::Vector3(2.0f, 4.0f, 6.0f))),
  35. AZ::Matrix4x4::CreateScale(AZ::Vector3(5.0f, 10.0f, 15.0f)),
  36. AZ::Matrix4x4::CreateRotationZ(AZ::DegToRad(45.0f))
  37. };
  38. using AxisPair = AZStd::pair<AZ::Constants::Axis, AZ::Vector3>;
  39. static const AxisPair Axes[] = {
  40. { AZ::Constants::Axis::XPositive, AZ::Vector3::CreateAxisX(1.0f) },
  41. { AZ::Constants::Axis::XNegative, AZ::Vector3::CreateAxisX(-1.0f) },
  42. { AZ::Constants::Axis::YPositive, AZ::Vector3::CreateAxisY(1.0f) },
  43. { AZ::Constants::Axis::YNegative, AZ::Vector3::CreateAxisY(-1.0f) },
  44. { AZ::Constants::Axis::ZPositive, AZ::Vector3::CreateAxisZ(1.0f) },
  45. { AZ::Constants::Axis::ZNegative, AZ::Vector3::CreateAxisZ(-1.0f) }
  46. };
  47. static const AZ::Matrix3x4 NonOrthogonalMatrix3x4s[] = {
  48. AZ::Matrix3x4::CreateScale(AZ::Vector3(2.4f, 0.3f, 1.7f)),
  49. AZ::Matrix3x4::CreateScale(AZ::Vector3(-2.4f, 0.3f, 1.7f)),
  50. AZ::Matrix3x4::CreateScale(AZ::Vector3(-2.4f, -0.3f, -1.7f)),
  51. AZ::Matrix3x4::CreateRotationX(2.2f) * AZ::Matrix3x4::CreateScale(AZ::Vector3(-2.4f, -0.3f, -1.7f)),
  52. AZ::Matrix3x4::CreateRotationX(2.2f) * AZ::Matrix3x4::CreateDiagonal(AZ::Vector3(0.2f, 0.8f, 1.4f))
  53. };
  54. static const AZ::Matrix3x4 OrthogonalMatrix3x4s[] = {
  55. AZ::Matrix3x4::CreateIdentity(),
  56. AZ::Matrix3x4::CreateRotationX(-0.6f),
  57. AZ::Matrix3x4::CreateFromQuaternion(AZ::Quaternion(0.24f, -0.08f, -0.48f, 0.84f)),
  58. AZ::Matrix3x4::CreateTranslation(AZ::Vector3(7.9f, 2.4f, -4.6f)),
  59. AZ::Matrix3x4::CreateFromQuaternionAndTranslation(AZ::Quaternion(0.12f, -0.24f, -0.72f, 0.64f), AZ::Vector3(2.3f, -5.2f, 0.7f))
  60. };
  61. static const AZ::Transform NonOrthogonalTransforms[] = {
  62. AZ::Transform::CreateUniformScale(2.4f),
  63. AZ::Transform::CreateRotationX(2.2f) * AZ::Transform::CreateUniformScale(0.8f)
  64. };
  65. static const AZ::Transform OrthogonalTransforms[] = {
  66. AZ::Transform::CreateIdentity(),
  67. AZ::Transform::CreateRotationX(-0.6f),
  68. AZ::Transform::CreateFromQuaternion(AZ::Quaternion(0.24f, -0.08f, -0.48f, 0.84f)),
  69. AZ::Transform::CreateTranslation(AZ::Vector3(7.9f, 2.4f, -4.6f)),
  70. AZ::Transform::CreateFromQuaternionAndTranslation(AZ::Quaternion(0.12f, -0.24f, -0.72f, 0.64f), AZ::Vector3(2.3f, -5.2f, 0.7f))
  71. };
  72. static const AZ::Vector3 EulerAnglesDegrees[] = {
  73. AZ::Vector3::CreateZero(),
  74. AZ::Vector3(70.0f, -32.0f, 119.0f),
  75. AZ::Vector3(1284.0f, -2734.0f, -1929.0f)
  76. };
  77. static const AZ::Vector3 EulerAnglesRadians[] = {
  78. AZ::Vector3::CreateZero(),
  79. AZ::Vector3(0.8f, -0.4f, 1.7f),
  80. AZ::Vector3(10.2f, 9.7f, -6.8f)
  81. };
  82. static const AZ::Quaternion UnitQuaternions[] = {
  83. AZ::Quaternion::CreateIdentity(),
  84. AZ::Quaternion(0.58f, -0.22f, -0.26f, 0.74f),
  85. AZ::Quaternion::CreateRotationX(0.2f)
  86. };
  87. } // namespace MathTestData