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.

127 lines
4.4KB

  1. /// @ref core
  2. /// @file glm/glm.hpp
  3. ///
  4. /// @defgroup core Core features
  5. ///
  6. /// @brief Features that implement in C++ the GLSL specification as closely as possible.
  7. ///
  8. /// The GLM core consists of @ref core_types "C++ types that mirror GLSL types" and
  9. /// C++ functions that mirror the GLSL functions. It also includes
  10. /// @ref core_precision "a set of qualifier-based types" that can be used in the appropriate
  11. /// functions. The C++ types are all based on a basic set of @ref core_template "template types".
  12. ///
  13. /// The best documentation for GLM Core is the current GLSL specification,
  14. /// <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.clean.pdf">version 4.2
  15. /// (pdf file)</a>.
  16. ///
  17. /// GLM core functionalities require <glm/glm.hpp> to be included to be used.
  18. ///
  19. /// @defgroup core_types Types
  20. ///
  21. /// @brief The standard types defined by the specification.
  22. ///
  23. /// These types are all typedefs of more generalized, template types. To see the definition
  24. /// of these template types, go to @ref core_template.
  25. ///
  26. /// @ingroup core
  27. ///
  28. /// @defgroup core_precision Precision types
  29. ///
  30. /// @brief Non-GLSL types that are used to define qualifier-based types.
  31. ///
  32. /// The GLSL language allows the user to define the qualifier of a particular variable.
  33. /// In OpenGL's GLSL, these qualifier qualifiers have no effect; they are there for compatibility
  34. /// with OpenGL ES's qualifier qualifiers, where they @em do have an effect.
  35. ///
  36. /// C++ has no language equivalent to qualifier qualifiers. So GLM provides the next-best thing:
  37. /// a number of typedefs of the @ref core_template that use a particular qualifier.
  38. ///
  39. /// None of these types make any guarantees about the actual qualifier used.
  40. ///
  41. /// @ingroup core
  42. ///
  43. /// @defgroup core_template Template types
  44. ///
  45. /// @brief The generic template types used as the basis for the core types.
  46. ///
  47. /// These types are all templates used to define the actual @ref core_types.
  48. /// These templates are implementation details of GLM types and should not be used explicitly.
  49. ///
  50. /// @ingroup core
  51. ///
  52. /// @defgroup ext Stable extensions
  53. ///
  54. /// @brief Additional features not specified by GLSL specification.
  55. ///
  56. /// EXT extensions are fully tested and documented.
  57. ///
  58. /// Even if it's highly unrecommended, it's possible to include all the extensions at once by
  59. /// including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.
  60. ///
  61. /// @defgroup gtc Recommended extensions
  62. ///
  63. /// @brief Additional features not specified by GLSL specification.
  64. ///
  65. /// GTC extensions aim to be stable with tests and documentation.
  66. ///
  67. /// Even if it's highly unrecommended, it's possible to include all the extensions at once by
  68. /// including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.
  69. ///
  70. /// @defgroup gtx Experimental extensions
  71. ///
  72. /// @brief Experimental features not specified by GLSL specification.
  73. ///
  74. /// Experimental extensions are useful functions and types, but the development of
  75. /// their API and functionality is not necessarily stable. They can change
  76. /// substantially between versions. Backwards compatibility is not much of an issue
  77. /// for them.
  78. ///
  79. /// Even if it's highly unrecommended, it's possible to include all the extensions
  80. /// at once by including <glm/ext.hpp>. Otherwise, each extension needs to be
  81. /// included a specific file.
  82. ///
  83. /// @mainpage OpenGL Mathematics (GLM)
  84. /// - Website: <a href="https://glm.g-truc.net">glm.g-truc.net</a>
  85. /// - <a href="modules.html">GLM API documentation</a>
  86. /// - <a href="https://github.com/g-truc/glm/blob/master/manual.md">GLM Manual</a>
  87. #include "detail/_fixes.hpp"
  88. #include "detail/setup.hpp"
  89. #pragma once
  90. #include <cmath>
  91. #include <climits>
  92. #include <cfloat>
  93. #include <limits>
  94. #include <cassert>
  95. #include "fwd.hpp"
  96. #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED)
  97. # define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED
  98. # pragma message("GLM: Core library included")
  99. #endif//GLM_MESSAGES
  100. #include "vec2.hpp"
  101. #include "vec3.hpp"
  102. #include "vec4.hpp"
  103. #include "mat2x2.hpp"
  104. #include "mat2x3.hpp"
  105. #include "mat2x4.hpp"
  106. #include "mat3x2.hpp"
  107. #include "mat3x3.hpp"
  108. #include "mat3x4.hpp"
  109. #include "mat4x2.hpp"
  110. #include "mat4x3.hpp"
  111. #include "mat4x4.hpp"
  112. #include "trigonometric.hpp"
  113. #include "exponential.hpp"
  114. #include "common.hpp"
  115. #include "packing.hpp"
  116. #include "geometric.hpp"
  117. #include "matrix.hpp"
  118. #include "vector_relational.hpp"
  119. #include "integer.hpp"