matrix_operation.hpp 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /// @ref gtx_matrix_operation
  2. /// @file glm/gtx/matrix_operation.hpp
  3. ///
  4. /// @see core (dependence)
  5. ///
  6. /// @defgroup gtx_matrix_operation GLM_GTX_matrix_operation
  7. /// @ingroup gtx
  8. ///
  9. /// Include <glm/gtx/matrix_operation.hpp> to use the features of this extension.
  10. ///
  11. /// Build diagonal matrices from vectors.
  12. #pragma once
  13. // Dependency:
  14. #include "../glm.hpp"
  15. #ifndef GLM_ENABLE_EXPERIMENTAL
  16. # error "GLM: GLM_GTX_matrix_operation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
  17. #elif GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
  18. # pragma message("GLM: GLM_GTX_matrix_operation extension included")
  19. #endif
  20. namespace glm
  21. {
  22. /// @addtogroup gtx_matrix_operation
  23. /// @{
  24. //! Build a diagonal matrix.
  25. //! From GLM_GTX_matrix_operation extension.
  26. template<typename T, qualifier Q>
  27. GLM_FUNC_DECL mat<2, 2, T, Q> diagonal2x2(
  28. vec<2, T, Q> const& v);
  29. //! Build a diagonal matrix.
  30. //! From GLM_GTX_matrix_operation extension.
  31. template<typename T, qualifier Q>
  32. GLM_FUNC_DECL mat<2, 3, T, Q> diagonal2x3(
  33. vec<2, T, Q> const& v);
  34. //! Build a diagonal matrix.
  35. //! From GLM_GTX_matrix_operation extension.
  36. template<typename T, qualifier Q>
  37. GLM_FUNC_DECL mat<2, 4, T, Q> diagonal2x4(
  38. vec<2, T, Q> const& v);
  39. //! Build a diagonal matrix.
  40. //! From GLM_GTX_matrix_operation extension.
  41. template<typename T, qualifier Q>
  42. GLM_FUNC_DECL mat<3, 2, T, Q> diagonal3x2(
  43. vec<2, T, Q> const& v);
  44. //! Build a diagonal matrix.
  45. //! From GLM_GTX_matrix_operation extension.
  46. template<typename T, qualifier Q>
  47. GLM_FUNC_DECL mat<3, 3, T, Q> diagonal3x3(
  48. vec<3, T, Q> const& v);
  49. //! Build a diagonal matrix.
  50. //! From GLM_GTX_matrix_operation extension.
  51. template<typename T, qualifier Q>
  52. GLM_FUNC_DECL mat<3, 4, T, Q> diagonal3x4(
  53. vec<3, T, Q> const& v);
  54. //! Build a diagonal matrix.
  55. //! From GLM_GTX_matrix_operation extension.
  56. template<typename T, qualifier Q>
  57. GLM_FUNC_DECL mat<4, 2, T, Q> diagonal4x2(
  58. vec<2, T, Q> const& v);
  59. //! Build a diagonal matrix.
  60. //! From GLM_GTX_matrix_operation extension.
  61. template<typename T, qualifier Q>
  62. GLM_FUNC_DECL mat<4, 3, T, Q> diagonal4x3(
  63. vec<3, T, Q> const& v);
  64. //! Build a diagonal matrix.
  65. //! From GLM_GTX_matrix_operation extension.
  66. template<typename T, qualifier Q>
  67. GLM_FUNC_DECL mat<4, 4, T, Q> diagonal4x4(
  68. vec<4, T, Q> const& v);
  69. /// Build an adjugate matrix.
  70. /// From GLM_GTX_matrix_operation extension.
  71. template<typename T, qualifier Q>
  72. GLM_FUNC_DECL mat<2, 2, T, Q> adjugate(mat<2, 2, T, Q> const& m);
  73. /// Build an adjugate matrix.
  74. /// From GLM_GTX_matrix_operation extension.
  75. template<typename T, qualifier Q>
  76. GLM_FUNC_DECL mat<3, 3, T, Q> adjugate(mat<3, 3, T, Q> const& m);
  77. /// Build an adjugate matrix.
  78. /// From GLM_GTX_matrix_operation extension.
  79. template<typename T, qualifier Q>
  80. GLM_FUNC_DECL mat<4, 4, T, Q> adjugate(mat<4, 4, T, Q> const& m);
  81. /// @}
  82. }//namespace glm
  83. #include "matrix_operation.inl"