integer.hpp 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /// @ref gtx_integer
  2. /// @file glm/gtx/integer.hpp
  3. ///
  4. /// @see core (dependence)
  5. ///
  6. /// @defgroup gtx_integer GLM_GTX_integer
  7. /// @ingroup gtx
  8. ///
  9. /// Include <glm/gtx/integer.hpp> to use the features of this extension.
  10. ///
  11. /// Add support for integer for core functions
  12. #pragma once
  13. // Dependency:
  14. #include "../glm.hpp"
  15. #include "../gtc/integer.hpp"
  16. #ifndef GLM_ENABLE_EXPERIMENTAL
  17. # error "GLM: GLM_GTX_integer 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."
  18. #elif GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
  19. # pragma message("GLM: GLM_GTX_integer extension included")
  20. #endif
  21. namespace glm
  22. {
  23. /// @addtogroup gtx_integer
  24. /// @{
  25. //! Returns x raised to the y power.
  26. //! From GLM_GTX_integer extension.
  27. GLM_FUNC_DECL int pow(int x, uint y);
  28. //! Returns the positive square root of x.
  29. //! From GLM_GTX_integer extension.
  30. GLM_FUNC_DECL int sqrt(int x);
  31. //! Returns the floor log2 of x.
  32. //! From GLM_GTX_integer extension.
  33. GLM_FUNC_DECL unsigned int floor_log2(unsigned int x);
  34. //! Modulus. Returns x - y * floor(x / y) for each component in x using the floating point value y.
  35. //! From GLM_GTX_integer extension.
  36. GLM_FUNC_DECL int mod(int x, int y);
  37. //! Return the factorial value of a number (!12 max, integer only)
  38. //! From GLM_GTX_integer extension.
  39. template<typename genType>
  40. GLM_FUNC_DECL genType factorial(genType const& x);
  41. //! 32bit signed integer.
  42. //! From GLM_GTX_integer extension.
  43. typedef signed int sint;
  44. //! Returns x raised to the y power.
  45. //! From GLM_GTX_integer extension.
  46. GLM_FUNC_DECL uint pow(uint x, uint y);
  47. //! Returns the positive square root of x.
  48. //! From GLM_GTX_integer extension.
  49. GLM_FUNC_DECL uint sqrt(uint x);
  50. //! Modulus. Returns x - y * floor(x / y) for each component in x using the floating point value y.
  51. //! From GLM_GTX_integer extension.
  52. GLM_FUNC_DECL uint mod(uint x, uint y);
  53. //! Returns the number of leading zeros.
  54. //! From GLM_GTX_integer extension.
  55. GLM_FUNC_DECL uint nlz(uint x);
  56. /// @}
  57. }//namespace glm
  58. #include "integer.inl"