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.

124 lines
2.5 KiB

5 years ago
  1. ///////////////////////////////////////////////////////////////////////////////////////////////////
  2. // OpenGL Mathematics Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
  3. ///////////////////////////////////////////////////////////////////////////////////////////////////
  4. // Created : 2006-04-20
  5. // Updated : 2008-09-29
  6. // Licence : This source is under MIT License
  7. // File : glm/gtx/verbose_operator.inl
  8. ///////////////////////////////////////////////////////////////////////////////////////////////////
  9. namespace glm
  10. {
  11. template <typename genType>
  12. GLM_FUNC_QUALIFIER genType add(genType const & a, genType const & b)
  13. {
  14. return a + b;
  15. }
  16. template <typename genType>
  17. GLM_FUNC_QUALIFIER genType sub(genType const & a, genType const & b)
  18. {
  19. return a - b;
  20. }
  21. template <typename T>
  22. GLM_FUNC_QUALIFIER detail::tmat2x2<T> mul
  23. (
  24. detail::tmat2x2<T> const & a,
  25. detail::tmat2x2<T> const & b
  26. )
  27. {
  28. return a * b;
  29. }
  30. template <typename T>
  31. GLM_FUNC_QUALIFIER detail::tmat3x3<T> mul
  32. (
  33. detail::tmat3x3<T> const & a,
  34. detail::tmat3x3<T> const & b
  35. )
  36. {
  37. return a * b;
  38. }
  39. template <typename T>
  40. GLM_FUNC_QUALIFIER detail::tmat4x4<T> mul
  41. (
  42. detail::tmat4x4<T> const & a,
  43. detail::tmat4x4<T> const & b
  44. )
  45. {
  46. return a * b;
  47. }
  48. template <typename T>
  49. GLM_FUNC_QUALIFIER detail::tvec2<T> mul
  50. (
  51. detail::tmat2x2<T> const & m,
  52. detail::tvec2<T> const & v
  53. )
  54. {
  55. return m * v;
  56. }
  57. template <typename T>
  58. GLM_FUNC_QUALIFIER detail::tvec3<T> mul
  59. (
  60. detail::tmat3x3<T> const & m,
  61. detail::tvec3<T> const & v)
  62. {
  63. return m * v;
  64. }
  65. template <typename T>
  66. GLM_FUNC_QUALIFIER detail::tvec4<T> mul
  67. (
  68. detail::tmat4x4<T> const & m,
  69. detail::tvec4<T> const & v
  70. )
  71. {
  72. return m * v;
  73. }
  74. template <typename T>
  75. GLM_FUNC_QUALIFIER detail::tvec2<T> mul
  76. (
  77. detail::tvec2<T> const & v,
  78. detail::tmat2x2<T> const & m
  79. )
  80. {
  81. return v * m;
  82. }
  83. template <typename T>
  84. GLM_FUNC_QUALIFIER detail::tvec3<T> mul
  85. (
  86. detail::tvec3<T> const & v,
  87. detail::tmat3x3<T> const & m
  88. )
  89. {
  90. return v * m;
  91. }
  92. template <typename T>
  93. GLM_FUNC_QUALIFIER detail::tvec4<T> mul
  94. (
  95. detail::tvec4<T> const & v,
  96. detail::tmat4x4<T> const & m
  97. )
  98. {
  99. return v * m;
  100. }
  101. template <typename genType>
  102. GLM_FUNC_QUALIFIER genType div(genType const & a, genType const & b)
  103. {
  104. return a / b;
  105. }
  106. template <typename genTypeT, typename genTypeU, typename genTypeV>
  107. GLM_FUNC_QUALIFIER genTypeT mad(genTypeT const & a, genTypeU const & b, genTypeV const & c)
  108. {
  109. return a * b + c;
  110. }
  111. }//namespace glm