diff options
author | LaG1924 <12997935+LaG1924@users.noreply.github.com> | 2018-08-21 17:40:38 +0200 |
---|---|---|
committer | LaG1924 <12997935+LaG1924@users.noreply.github.com> | 2018-08-21 17:40:38 +0200 |
commit | 2877f4eda3d1b0c7431039e3142ecf1a282a34b1 (patch) | |
tree | 58ad35e27ab2a3b8955f5adbf28f296670681ffc /external/include/glm/gtx/vector_query.inl | |
parent | Smooth sun movement (diff) | |
download | AltCraft-2877f4eda3d1b0c7431039e3142ecf1a282a34b1.tar AltCraft-2877f4eda3d1b0c7431039e3142ecf1a282a34b1.tar.gz AltCraft-2877f4eda3d1b0c7431039e3142ecf1a282a34b1.tar.bz2 AltCraft-2877f4eda3d1b0c7431039e3142ecf1a282a34b1.tar.lz AltCraft-2877f4eda3d1b0c7431039e3142ecf1a282a34b1.tar.xz AltCraft-2877f4eda3d1b0c7431039e3142ecf1a282a34b1.tar.zst AltCraft-2877f4eda3d1b0c7431039e3142ecf1a282a34b1.zip |
Diffstat (limited to 'external/include/glm/gtx/vector_query.inl')
-rw-r--r-- | external/include/glm/gtx/vector_query.inl | 134 |
1 files changed, 48 insertions, 86 deletions
diff --git a/external/include/glm/gtx/vector_query.inl b/external/include/glm/gtx/vector_query.inl index 85ea5e5..0d8cddc 100644 --- a/external/include/glm/gtx/vector_query.inl +++ b/external/include/glm/gtx/vector_query.inl @@ -6,68 +6,68 @@ namespace glm{ namespace detail { - template <typename T, precision P, template <typename, precision> class vecType> + template<length_t L, typename T, qualifier Q> struct compute_areCollinear{}; - template <typename T, precision P> - struct compute_areCollinear<T, P, tvec2> + template<typename T, qualifier Q> + struct compute_areCollinear<2, T, Q> { - GLM_FUNC_QUALIFIER static bool call(tvec2<T, P> const & v0, tvec2<T, P> const & v1, T const & epsilon) + GLM_FUNC_QUALIFIER static bool call(vec<2, T, Q> const& v0, vec<2, T, Q> const& v1, T const& epsilon) { - return length(cross(tvec3<T, P>(v0, static_cast<T>(0)), tvec3<T, P>(v1, static_cast<T>(0)))) < epsilon; + return length(cross(vec<3, T, Q>(v0, static_cast<T>(0)), vec<3, T, Q>(v1, static_cast<T>(0)))) < epsilon; } }; - template <typename T, precision P> - struct compute_areCollinear<T, P, tvec3> + template<typename T, qualifier Q> + struct compute_areCollinear<3, T, Q> { - GLM_FUNC_QUALIFIER static bool call(tvec3<T, P> const & v0, tvec3<T, P> const & v1, T const & epsilon) + GLM_FUNC_QUALIFIER static bool call(vec<3, T, Q> const& v0, vec<3, T, Q> const& v1, T const& epsilon) { return length(cross(v0, v1)) < epsilon; } }; - template <typename T, precision P> - struct compute_areCollinear<T, P, tvec4> + template<typename T, qualifier Q> + struct compute_areCollinear<4, T, Q> { - GLM_FUNC_QUALIFIER static bool call(tvec4<T, P> const & v0, tvec4<T, P> const & v1, T const & epsilon) + GLM_FUNC_QUALIFIER static bool call(vec<4, T, Q> const& v0, vec<4, T, Q> const& v1, T const& epsilon) { - return length(cross(tvec3<T, P>(v0), tvec3<T, P>(v1))) < epsilon; + return length(cross(vec<3, T, Q>(v0), vec<3, T, Q>(v1))) < epsilon; } }; - template <typename T, precision P, template <typename, precision> class vecType> + template<length_t L, typename T, qualifier Q> struct compute_isCompNull{}; - template <typename T, precision P> - struct compute_isCompNull<T, P, tvec2> + template<typename T, qualifier Q> + struct compute_isCompNull<2, T, Q> { - GLM_FUNC_QUALIFIER static tvec2<bool, P> call(tvec2<T, P> const & v, T const & epsilon) + GLM_FUNC_QUALIFIER static vec<2, bool, Q> call(vec<2, T, Q> const& v, T const& epsilon) { - return tvec2<bool, P>( + return vec<2, bool, Q>( (abs(v.x) < epsilon), (abs(v.y) < epsilon)); } }; - template <typename T, precision P> - struct compute_isCompNull<T, P, tvec3> + template<typename T, qualifier Q> + struct compute_isCompNull<3, T, Q> { - GLM_FUNC_QUALIFIER static tvec3<bool, P> call(tvec3<T, P> const & v, T const & epsilon) + GLM_FUNC_QUALIFIER static vec<3, bool, Q> call(vec<3, T, Q> const& v, T const& epsilon) { - return tvec3<bool, P>( + return vec<3, bool, Q>( (abs(v.x) < epsilon), (abs(v.y) < epsilon), (abs(v.z) < epsilon)); } }; - template <typename T, precision P> - struct compute_isCompNull<T, P, tvec4> + template<typename T, qualifier Q> + struct compute_isCompNull<4, T, Q> { - GLM_FUNC_QUALIFIER static tvec4<bool, P> call(tvec4<T, P> const & v, T const & epsilon) + GLM_FUNC_QUALIFIER static vec<4, bool, Q> call(vec<4, T, Q> const& v, T const& epsilon) { - return tvec4<bool, P>( + return vec<4, bool, Q>( (abs(v.x) < epsilon), (abs(v.y) < epsilon), (abs(v.z) < epsilon), @@ -77,26 +77,16 @@ namespace detail }//namespace detail - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_QUALIFIER bool areCollinear - ( - vecType<T, P> const & v0, - vecType<T, P> const & v1, - T const & epsilon - ) + template<length_t L, typename T, qualifier Q> + GLM_FUNC_QUALIFIER bool areCollinear(vec<L, T, Q> const& v0, vec<L, T, Q> const& v1, T const& epsilon) { GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'areCollinear' only accept floating-point inputs"); - return detail::compute_areCollinear<T, P, vecType>::call(v0, v1, epsilon); + return detail::compute_areCollinear<L, T, Q>::call(v0, v1, epsilon); } - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_QUALIFIER bool areOrthogonal - ( - vecType<T, P> const & v0, - vecType<T, P> const & v1, - T const & epsilon - ) + template<length_t L, typename T, qualifier Q> + GLM_FUNC_QUALIFIER bool areOrthogonal(vec<L, T, Q> const& v0, vec<L, T, Q> const& v1, T const& epsilon) { GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'areOrthogonal' only accept floating-point inputs"); @@ -105,87 +95,59 @@ namespace detail length(v0)) * max(static_cast<T>(1), length(v1)) * epsilon; } - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_QUALIFIER bool isNormalized - ( - vecType<T, P> const & v, - T const & epsilon - ) + template<length_t L, typename T, qualifier Q> + GLM_FUNC_QUALIFIER bool isNormalized(vec<L, T, Q> const& v, T const& epsilon) { GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isNormalized' only accept floating-point inputs"); return abs(length(v) - static_cast<T>(1)) <= static_cast<T>(2) * epsilon; } - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_QUALIFIER bool isNull - ( - vecType<T, P> const & v, - T const & epsilon - ) + template<length_t L, typename T, qualifier Q> + GLM_FUNC_QUALIFIER bool isNull(vec<L, T, Q> const& v, T const& epsilon) { GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isNull' only accept floating-point inputs"); return length(v) <= epsilon; } - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_QUALIFIER vecType<bool, P> isCompNull - ( - vecType<T, P> const & v, - T const & epsilon - ) + template<length_t L, typename T, qualifier Q> + GLM_FUNC_QUALIFIER vec<L, bool, Q> isCompNull(vec<L, T, Q> const& v, T const& epsilon) { GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isCompNull' only accept floating-point inputs"); - return detail::compute_isCompNull<T, P, vecType>::call(v, epsilon); + return detail::compute_isCompNull<L, T, Q>::call(v, epsilon); } - template <typename T, precision P> - GLM_FUNC_QUALIFIER tvec2<bool, P> isCompNull - ( - tvec2<T, P> const & v, - T const & epsilon) + template<typename T, qualifier Q> + GLM_FUNC_QUALIFIER vec<2, bool, Q> isCompNull(vec<2, T, Q> const& v, T const& epsilon) { - return tvec2<bool, P>( + return vec<2, bool, Q>( abs(v.x) < epsilon, abs(v.y) < epsilon); } - template <typename T, precision P> - GLM_FUNC_QUALIFIER tvec3<bool, P> isCompNull - ( - tvec3<T, P> const & v, - T const & epsilon - ) + template<typename T, qualifier Q> + GLM_FUNC_QUALIFIER vec<3, bool, Q> isCompNull(vec<3, T, Q> const& v, T const& epsilon) { - return tvec3<bool, P>( + return vec<3, bool, Q>( abs(v.x) < epsilon, abs(v.y) < epsilon, abs(v.z) < epsilon); } - template <typename T, precision P> - GLM_FUNC_QUALIFIER tvec4<bool, P> isCompNull - ( - tvec4<T, P> const & v, - T const & epsilon - ) + template<typename T, qualifier Q> + GLM_FUNC_QUALIFIER vec<4, bool, Q> isCompNull(vec<4, T, Q> const& v, T const& epsilon) { - return tvec4<bool, P>( + return vec<4, bool, Q>( abs(v.x) < epsilon, abs(v.y) < epsilon, abs(v.z) < epsilon, abs(v.w) < epsilon); } - template <typename T, precision P, template <typename, precision> class vecType> - GLM_FUNC_QUALIFIER bool areOrthonormal - ( - vecType<T, P> const & v0, - vecType<T, P> const & v1, - T const & epsilon - ) + template<length_t L, typename T, qualifier Q> + GLM_FUNC_QUALIFIER bool areOrthonormal(vec<L, T, Q> const& v0, vec<L, T, Q> const& v1, T const& epsilon) { return isNormalized(v0, epsilon) && isNormalized(v1, epsilon) && (abs(dot(v0, v1)) <= epsilon); } |