From 8f517b7505d4333427bdf7c5967cda39b252f2cf Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Wed, 9 Mar 2011 11:54:06 +0000 Subject: [PATCH] Removed define GLMvaltype --- glm/glm.hpp | 3 - glm/gtx/spline.hpp | 30 +++++----- glm/gtx/spline.inl | 72 ++++++++++++----------- glm/gtx/vector_query.hpp | 34 +++++------ glm/gtx/vector_query.inl | 123 ++++++++++++++++++++++++--------------- 5 files changed, 148 insertions(+), 114 deletions(-) diff --git a/glm/glm.hpp b/glm/glm.hpp index 6a117e7f..394ecf4b 100644 --- a/glm/glm.hpp +++ b/glm/glm.hpp @@ -12,9 +12,6 @@ #ifndef glm_glm #define glm_glm -//! TODO: to delete -//#define GLMvalType typename genType::value_type - #include #include #include diff --git a/glm/gtx/spline.hpp b/glm/gtx/spline.hpp index d00bf572..e791d1dc 100644 --- a/glm/gtx/spline.hpp +++ b/glm/gtx/spline.hpp @@ -36,31 +36,31 @@ namespace glm //! From GLM_GTX_spline extension. template genType catmullRom( - const genType& v1, - const genType& v2, - const genType& v3, - const genType& v4, - const GLMvalType& s); + genType const & v1, + genType const & v2, + genType const & v3, + genType const & v4, + typename genType::value_type const & s); //! Return a point from a hermite curve. //! From GLM_GTX_spline extension. template genType hermite( - const genType& v1, - const genType& t1, - const genType& v2, - const genType& t2, - const GLMvalType& s); + genType const & v1, + genType const & t1, + genType const & v2, + genType const & t2, + typename genType::value_type const & s); //! Return a point from a cubic curve. //! From GLM_GTX_spline extension. template genType cubic( - const genType& v1, - const genType& v2, - const genType& v3, - const genType& v4, - const GLMvalType& s); + genType const & v1, + genType const & v2, + genType const & v3, + genType const & v4, + typename genType::value_type const & s); ///@} diff --git a/glm/gtx/spline.inl b/glm/gtx/spline.inl index 7d94b12b..a0c49b4a 100644 --- a/glm/gtx/spline.inl +++ b/glm/gtx/spline.inl @@ -12,53 +12,59 @@ namespace gtx{ namespace spline { template - inline genType catmullRom( - const genType& v1, - const genType& v2, - const genType& v3, - const genType& v4, - const GLMvalType& s) + inline genType catmullRom + ( + genType const & v1, + genType const & v2, + genType const & v3, + genType const & v4, + typename genType::value_type const & s + ) { - GLMvalType s1 = s; - GLMvalType s2 = optimum_pow::pow2(s); - GLMvalType s3 = optimum_pow::pow3(s); + typename genType::value_type s1 = s; + typename genType::value_type s2 = optimum_pow::pow2(s); + typename genType::value_type s3 = optimum_pow::pow3(s); - GLMvalType f1 = -s3 + GLMvalType(2) * s2 - s; - GLMvalType f2 = GLMvalType(3) * s3 - GLMvalType(5) * s2 + GLMvalType(2); - GLMvalType f3 = GLMvalType(-3) * s3 + GLMvalType(4) * s2 + s; - GLMvalType f4 = s3 - s2; + typename genType::value_type f1 = -s3 + typename genType::value_type(2) * s2 - s; + typename genType::value_type f2 = typename genType::value_type(3) * s3 - typename genType::value_type(5) * s2 + typename genType::value_type(2); + typename genType::value_type f3 = typename genType::value_type(-3) * s3 + typename genType::value_type(4) * s2 + s; + typename genType::value_type f4 = s3 - s2; - return (f1 * v1 + f2 * v2 + f3 * v3 + f4 * v4) / GLMvalType(2); + return (f1 * v1 + f2 * v2 + f3 * v3 + f4 * v4) / typename genType::value_type(2); } template - inline genType hermite( - const genType& v1, - const genType& t1, - const genType& v2, - const genType& t2, - const GLMvalType& s) + inline genType hermite + ( + genType const & v1, + genType const & t1, + genType const & v2, + genType const & t2, + typename genType::value_type const & s + ) { - GLMvalType s1 = s; - GLMvalType s2 = optimum_pow::pow2(s); - GLMvalType s3 = optimum_pow::pow3(s); + typename genType::value_type s1 = s; + typename genType::value_type s2 = optimum_pow::pow2(s); + typename genType::value_type s3 = optimum_pow::pow3(s); - GLMvalType f1 = GLMvalType(2) * s3 - GLMvalType(3) * s2 + GLMvalType(1); - GLMvalType f2 = GLMvalType(-2) * s3 + GLMvalType(3) * s2; - GLMvalType f3 = s3 - GLMvalType(2) * s2 + s; - GLMvalType f4 = s3 - s2; + typename genType::value_type f1 = typename genType::value_type(2) * s3 - typename genType::value_type(3) * s2 + typename genType::value_type(1); + typename genType::value_type f2 = typename genType::value_type(-2) * s3 + typename genType::value_type(3) * s2; + typename genType::value_type f3 = s3 - typename genType::value_type(2) * s2 + s; + typename genType::value_type f4 = s3 - s2; return f1 * v1 + f2 * v2 + f3 * t1 + f4 * t2; } template - inline genType cubic( - const genType& v1, - const genType& v2, - const genType& v3, - const genType& v4, - const GLMvalType& s) + inline genType cubic + ( + genType const & v1, + genType const & v2, + genType const & v3, + genType const & v4, + typename genType::value_type const & s + ) { return ((v1 * s + v2) * s + v3) * s + v4; } diff --git a/glm/gtx/vector_query.hpp b/glm/gtx/vector_query.hpp index f531cf07..47fac281 100644 --- a/glm/gtx/vector_query.hpp +++ b/glm/gtx/vector_query.hpp @@ -39,9 +39,9 @@ namespace glm //! From GLM_GTX_vector_query extensions. template bool areCollinear( - const genType & v0, - const genType & v1, - typename genType::value_type const epsilon = std::numeric_limits::epsilon()); + genType const & v0, + genType const & v1, + typename genType::value_type const & epsilon = std::numeric_limits::epsilon()); //! Check if two vectors are opposites. //! From GLM_GTX_vector_query extensions. @@ -49,45 +49,45 @@ namespace glm bool areOpposite( genType const & v0, genType const & v1, - typename genType::value_type const epsilon = std::numeric_limits::epsilon()); + typename genType::value_type const & epsilon = std::numeric_limits::epsilon()); //! Check if two vectors are orthogonals. //! From GLM_GTX_vector_query extensions. template bool areOrthogonal( - const genType & v0, - const genType & v1, - const GLMvalType epsilon = std::numeric_limits::epsilon()); + genType const & v0, + genType const & v1, + typename genType::value_type const & epsilon = std::numeric_limits::epsilon()); //! Check if a vector is normalized. //! From GLM_GTX_vector_query extensions. template bool isNormalized( - const genType & v, - const GLMvalType epsilon = std::numeric_limits::epsilon()); + genType const & v, + typename genType::value_type const & epsilon = std::numeric_limits::epsilon()); //! Check if a vector is null. //! From GLM_GTX_vector_query extensions. template bool isNull( - const genType& v, - const GLMvalType epsilon = std::numeric_limits::epsilon()); + genType const & v, + typename genType::value_type const & epsilon = std::numeric_limits::epsilon()); //! Check if two vectors are orthonormal. //! From GLM_GTX_vector_query extensions. template bool areOrthonormal( - const genType & v0, - const genType & v1, - const GLMvalType epsilon = std::numeric_limits::epsilon()); + genType const & v0, + genType const & v1, + typename genType::value_type const & epsilon = std::numeric_limits::epsilon()); //! Check if two vectors are similar. //! From GLM_GTX_vector_query extensions. template bool areSimilar( - const genType& v0, - const genType& v1, - const GLMvalType epsilon = std::numeric_limits::epsilon()); + genType const & v0, + genType const & v1, + typename genType::value_type const & epsilon = std::numeric_limits::epsilon()); ///@} diff --git a/glm/gtx/vector_query.inl b/glm/gtx/vector_query.inl index b1e76ae2..f9d02199 100644 --- a/glm/gtx/vector_query.inl +++ b/glm/gtx/vector_query.inl @@ -17,77 +17,100 @@ namespace gtx{ namespace vector_query { template - inline bool areCollinear( - const detail::tvec2& v0, - const detail::tvec2& v1, - const T epsilon) + inline bool areCollinear + ( + detail::tvec2 const & v0, + detail::tvec2 const & v1, + T const & epsilon + ) { return length(cross(detail::tvec3(v0, T(0)), detail::tvec3(v1, T(0)))) < epsilon; } template - inline bool areCollinear( - const detail::tvec3& v0, - const detail::tvec3& v1, - const T epsilon) + inline bool areCollinear + ( + detail::tvec3 const & v0, + detail::tvec3 const & v1, + T const & epsilon + ) { return length(cross(v0, v1)) < epsilon; } template - inline bool areCollinear( - const detail::tvec4& v0, - const detail::tvec4& v1, - const T epsilon) + inline bool areCollinear + ( + detail::tvec4 const & v0, + detail::tvec4 const & v1, + T const & epsilon + ) { return length(cross(detail::tvec3(v0), detail::tvec3(v1))) < epsilon; } template - inline bool areOpposite( - const genType& v0, - const genType& v1, - const GLMvalType epsilon) + inline bool areOpposite + ( + genType const & v0, + genType const & v1, + typename genType::value_type const & epsilon + ) { assert(isNormalized(v0) && isNormalized(v1)); - return((genType::value_type(1) + dot(v0, v1)) <= epsilon); + return((typename genType::value_type(1) + dot(v0, v1)) <= epsilon); } template - inline bool areOrthogonal( - const genType& v0, - const genType& v1, - const GLMvalType epsilon) + inline bool areOrthogonal + ( + genType const & v0, + genType const & v1, + typename genType::value_type const & epsilon + ) { - return abs(dot(v0, v1)) <= max(GLMvalType(1), length(v0)) * max(GLMvalType(1), length(v1)) * epsilon; + return abs(dot(v0, v1)) <= max( + typename genType::value_type(1), + length(v0)) * max( + typename genType::value_type(1), + length(v1)) * epsilon; } template - inline bool isNormalized( - const genType& v, - const GLMvalType epsilon) + inline bool isNormalized + ( + genType const & v, + typename genType::value_type const & epsilon + ) { return abs(length(v) - GLMvalType(1)) <= GLMvalType(2) * epsilon; } template - inline bool isNull(const genType& v, const GLMvalType epsilon) + inline bool isNull + ( + genType const & v, + typename genType::value_type const & epsilon + ) { return length(v) <= epsilon; } template - inline bool isCompNull( - const T s, - const T epsilon) + inline bool isCompNull + ( + T const & s, + T const & epsilon + ) { return abs(s) < epsilon; } template - inline detail::tvec2 isCompNull( - const detail::tvec2& v, - const T epsilon) + inline detail::tvec2 isCompNull + ( + detail::tvec2 const & v, + T const & epsilon) { return detail::tvec2( (abs(v.x) < epsilon), @@ -95,9 +118,11 @@ namespace vector_query } template - inline detail::tvec3 isCompNull( - const detail::tvec3& v, - const T epsilon) + inline detail::tvec3 isCompNull + ( + detail::tvec3 const & v, + T const & epsilon + ) { return detail::tvec3( abs(v.x) < epsilon, @@ -106,9 +131,11 @@ namespace vector_query } template - inline detail::tvec4 isCompNull( - const detail::tvec4& v, - const T epsilon) + inline detail::tvec4 isCompNull + ( + detail::tvec4 const & v, + T const & epsilon + ) { return detail::tvec4( abs(v.x) < epsilon, @@ -118,19 +145,23 @@ namespace vector_query } template - inline bool areOrthonormal( - const genType& v0, - const genType& v1, - const GLMvalType epsilon) + inline bool areOrthonormal + ( + genType const & v0, + genType const & v1, + typename genType::value_type const & epsilon + ) { return isNormalized(v0, epsilon) && isNormalized(v1, epsilon) && (abs(dot(v0, v1)) <= epsilon); } template - inline bool areSimilar( - const genType& v0, - const genType& v1, - const GLMvalType epsilon) + inline bool areSimilar + ( + genType const & v0, + genType const & v1, + typename genType::value_type const & epsilon + ) { bool similar = true; for(typename genType::size_type i = 0; similar && i < genType::value_size(); i++)