Collection of DPF-based plugins for packaging
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
2.2KB

  1. /// @ref gtx_matrix_operation
  2. /// @file glm/gtx/matrix_operation.inl
  3. namespace glm
  4. {
  5. template<typename T, qualifier Q>
  6. GLM_FUNC_QUALIFIER mat<2, 2, T, Q> diagonal2x2
  7. (
  8. vec<2, T, Q> const& v
  9. )
  10. {
  11. mat<2, 2, T, Q> Result(static_cast<T>(1));
  12. Result[0][0] = v[0];
  13. Result[1][1] = v[1];
  14. return Result;
  15. }
  16. template<typename T, qualifier Q>
  17. GLM_FUNC_QUALIFIER mat<2, 3, T, Q> diagonal2x3
  18. (
  19. vec<2, T, Q> const& v
  20. )
  21. {
  22. mat<2, 3, T, Q> Result(static_cast<T>(1));
  23. Result[0][0] = v[0];
  24. Result[1][1] = v[1];
  25. return Result;
  26. }
  27. template<typename T, qualifier Q>
  28. GLM_FUNC_QUALIFIER mat<2, 4, T, Q> diagonal2x4
  29. (
  30. vec<2, T, Q> const& v
  31. )
  32. {
  33. mat<2, 4, T, Q> Result(static_cast<T>(1));
  34. Result[0][0] = v[0];
  35. Result[1][1] = v[1];
  36. return Result;
  37. }
  38. template<typename T, qualifier Q>
  39. GLM_FUNC_QUALIFIER mat<3, 2, T, Q> diagonal3x2
  40. (
  41. vec<2, T, Q> const& v
  42. )
  43. {
  44. mat<3, 2, T, Q> Result(static_cast<T>(1));
  45. Result[0][0] = v[0];
  46. Result[1][1] = v[1];
  47. return Result;
  48. }
  49. template<typename T, qualifier Q>
  50. GLM_FUNC_QUALIFIER mat<3, 3, T, Q> diagonal3x3
  51. (
  52. vec<3, T, Q> const& v
  53. )
  54. {
  55. mat<3, 3, T, Q> Result(static_cast<T>(1));
  56. Result[0][0] = v[0];
  57. Result[1][1] = v[1];
  58. Result[2][2] = v[2];
  59. return Result;
  60. }
  61. template<typename T, qualifier Q>
  62. GLM_FUNC_QUALIFIER mat<3, 4, T, Q> diagonal3x4
  63. (
  64. vec<3, T, Q> const& v
  65. )
  66. {
  67. mat<3, 4, T, Q> Result(static_cast<T>(1));
  68. Result[0][0] = v[0];
  69. Result[1][1] = v[1];
  70. Result[2][2] = v[2];
  71. return Result;
  72. }
  73. template<typename T, qualifier Q>
  74. GLM_FUNC_QUALIFIER mat<4, 4, T, Q> diagonal4x4
  75. (
  76. vec<4, T, Q> const& v
  77. )
  78. {
  79. mat<4, 4, T, Q> Result(static_cast<T>(1));
  80. Result[0][0] = v[0];
  81. Result[1][1] = v[1];
  82. Result[2][2] = v[2];
  83. Result[3][3] = v[3];
  84. return Result;
  85. }
  86. template<typename T, qualifier Q>
  87. GLM_FUNC_QUALIFIER mat<4, 3, T, Q> diagonal4x3
  88. (
  89. vec<3, T, Q> const& v
  90. )
  91. {
  92. mat<4, 3, T, Q> Result(static_cast<T>(1));
  93. Result[0][0] = v[0];
  94. Result[1][1] = v[1];
  95. Result[2][2] = v[2];
  96. return Result;
  97. }
  98. template<typename T, qualifier Q>
  99. GLM_FUNC_QUALIFIER mat<4, 2, T, Q> diagonal4x2
  100. (
  101. vec<2, T, Q> const& v
  102. )
  103. {
  104. mat<4, 2, T, Q> Result(static_cast<T>(1));
  105. Result[0][0] = v[0];
  106. Result[1][1] = v[1];
  107. return Result;
  108. }
  109. }//namespace glm