diff options
Diffstat (limited to 'external/include/glm/gtc/round.hpp')
-rw-r--r-- | external/include/glm/gtc/round.hpp | 136 |
1 files changed, 82 insertions, 54 deletions
diff --git a/external/include/glm/gtc/round.hpp b/external/include/glm/gtc/round.hpp index a583592..d8d04c3 100644 --- a/external/include/glm/gtc/round.hpp +++ b/external/include/glm/gtc/round.hpp @@ -7,15 +7,15 @@ /// @defgroup gtc_round GLM_GTC_round /// @ingroup gtc /// -/// @brief rounding value to specific boundings +/// Include <glm/gtc/round.hpp> to use the features of this extension. /// -/// <glm/gtc/round.hpp> need to be included to use these functionalities. +/// Rounding value to specific boundings #pragma once // Dependencies #include "../detail/setup.hpp" -#include "../detail/precision.hpp" +#include "../detail/qualifier.hpp" #include "../detail/_vectorize.hpp" #include "../vector_relational.hpp" #include "../common.hpp" @@ -33,140 +33,168 @@ namespace glm /// Return true if the value is a power of two number. /// /// @see gtc_round - template <typename genIUType> - GLM_FUNC_DECL bool isPowerOfTwo(genIUType Value); + template<typename genIUType> + GLM_FUNC_DECL bool isPowerOfTwo(genIUType v); /// Return true if the value is a power of two number. /// + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point or integer scalar types + /// @tparam Q Value from qualifier enum + /// /// @see gtc_round - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_DECL vecType<bool, P> isPowerOfTwo(vecType<T, P> const & value); + template<length_t L, typename T, qualifier Q> + GLM_FUNC_DECL vec<L, bool, Q> isPowerOfTwo(vec<L, T, Q> const& v); /// Return the power of two number which value is just higher the input value, /// round up to a power of two. /// /// @see gtc_round - template <typename genIUType> - GLM_FUNC_DECL genIUType ceilPowerOfTwo(genIUType Value); + template<typename genIUType> + GLM_FUNC_DECL genIUType ceilPowerOfTwo(genIUType v); /// Return the power of two number which value is just higher the input value, /// round up to a power of two. /// + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point or integer scalar types + /// @tparam Q Value from qualifier enum + /// /// @see gtc_round - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_DECL vecType<T, P> ceilPowerOfTwo(vecType<T, P> const & value); + template<length_t L, typename T, qualifier Q> + GLM_FUNC_DECL vec<L, T, Q> ceilPowerOfTwo(vec<L, T, Q> const& v); /// Return the power of two number which value is just lower the input value, /// round down to a power of two. /// /// @see gtc_round - template <typename genIUType> - GLM_FUNC_DECL genIUType floorPowerOfTwo(genIUType Value); + template<typename genIUType> + GLM_FUNC_DECL genIUType floorPowerOfTwo(genIUType v); /// Return the power of two number which value is just lower the input value, /// round down to a power of two. /// + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point or integer scalar types + /// @tparam Q Value from qualifier enum + /// /// @see gtc_round - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_DECL vecType<T, P> floorPowerOfTwo(vecType<T, P> const & value); + template<length_t L, typename T, qualifier Q> + GLM_FUNC_DECL vec<L, T, Q> floorPowerOfTwo(vec<L, T, Q> const& v); /// Return the power of two number which value is the closet to the input value. /// /// @see gtc_round - template <typename genIUType> - GLM_FUNC_DECL genIUType roundPowerOfTwo(genIUType Value); + template<typename genIUType> + GLM_FUNC_DECL genIUType roundPowerOfTwo(genIUType v); /// Return the power of two number which value is the closet to the input value. /// + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point or integer scalar types + /// @tparam Q Value from qualifier enum + /// /// @see gtc_round - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_DECL vecType<T, P> roundPowerOfTwo(vecType<T, P> const & value); + template<length_t L, typename T, qualifier Q> + GLM_FUNC_DECL vec<L, T, Q> roundPowerOfTwo(vec<L, T, Q> const& v); /// Return true if the 'Value' is a multiple of 'Multiple'. /// /// @see gtc_round - template <typename genIUType> - GLM_FUNC_DECL bool isMultiple(genIUType Value, genIUType Multiple); + template<typename genIUType> + GLM_FUNC_DECL bool isMultiple(genIUType v, genIUType Multiple); /// Return true if the 'Value' is a multiple of 'Multiple'. /// + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point or integer scalar types + /// @tparam Q Value from qualifier enum + /// /// @see gtc_round - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_DECL vecType<bool, P> isMultiple(vecType<T, P> const & Value, T Multiple); + template<length_t L, typename T, qualifier Q> + GLM_FUNC_DECL vec<L, bool, Q> isMultiple(vec<L, T, Q> const& v, T Multiple); /// Return true if the 'Value' is a multiple of 'Multiple'. /// + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point or integer scalar types + /// @tparam Q Value from qualifier enum + /// /// @see gtc_round - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_DECL vecType<bool, P> isMultiple(vecType<T, P> const & Value, vecType<T, P> const & Multiple); + template<length_t L, typename T, qualifier Q> + GLM_FUNC_DECL vec<L, bool, Q> isMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple); /// Higher multiple number of Source. /// /// @tparam genType Floating-point or integer scalar or vector types. - /// @param Source + /// + /// @param v Source value to which is applied the function /// @param Multiple Must be a null or positive value /// /// @see gtc_round - template <typename genType> - GLM_FUNC_DECL genType ceilMultiple(genType Source, genType Multiple); + template<typename genType> + GLM_FUNC_DECL genType ceilMultiple(genType v, genType Multiple); /// Higher multiple number of Source. /// - /// @tparam genType Floating-point or integer scalar or vector types. - /// @param Source + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point or integer scalar types + /// @tparam Q Value from qualifier enum + /// + /// @param v Source values to which is applied the function /// @param Multiple Must be a null or positive value /// /// @see gtc_round - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_DECL vecType<T, P> ceilMultiple(vecType<T, P> const & Source, vecType<T, P> const & Multiple); + template<length_t L, typename T, qualifier Q> + GLM_FUNC_DECL vec<L, T, Q> ceilMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple); /// Lower multiple number of Source. /// /// @tparam genType Floating-point or integer scalar or vector types. - /// @param Source + /// + /// @param v Source value to which is applied the function /// @param Multiple Must be a null or positive value /// /// @see gtc_round - template <typename genType> - GLM_FUNC_DECL genType floorMultiple( - genType Source, - genType Multiple); + template<typename genType> + GLM_FUNC_DECL genType floorMultiple(genType v, genType Multiple); /// Lower multiple number of Source. /// - /// @tparam genType Floating-point or integer scalar or vector types. - /// @param Source + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point or integer scalar types + /// @tparam Q Value from qualifier enum + /// + /// @param v Source values to which is applied the function /// @param Multiple Must be a null or positive value /// /// @see gtc_round - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_DECL vecType<T, P> floorMultiple( - vecType<T, P> const & Source, - vecType<T, P> const & Multiple); + template<length_t L, typename T, qualifier Q> + GLM_FUNC_DECL vec<L, T, Q> floorMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple); /// Lower multiple number of Source. /// /// @tparam genType Floating-point or integer scalar or vector types. - /// @param Source + /// + /// @param v Source value to which is applied the function /// @param Multiple Must be a null or positive value /// /// @see gtc_round - template <typename genType> - GLM_FUNC_DECL genType roundMultiple( - genType Source, - genType Multiple); + template<typename genType> + GLM_FUNC_DECL genType roundMultiple(genType v, genType Multiple); /// Lower multiple number of Source. /// - /// @tparam genType Floating-point or integer scalar or vector types. - /// @param Source + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point or integer scalar types + /// @tparam Q Value from qualifier enum + /// + /// @param v Source values to which is applied the function /// @param Multiple Must be a null or positive value /// /// @see gtc_round - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_DECL vecType<T, P> roundMultiple( - vecType<T, P> const & Source, - vecType<T, P> const & Multiple); + template<length_t L, typename T, qualifier Q> + GLM_FUNC_DECL vec<L, T, Q> roundMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple); /// @} } //namespace glm |