Browse Source

Merge branch 'master' into GTC_integer

Christophe Riccio 11 years ago
parent
commit
883d328fb8
3 changed files with 6 additions and 12 deletions
  1. 3 10
      glm/detail/func_common.inl
  2. 2 2
      glm/gtc/matrix_transform.inl
  3. 1 0
      readme.txt

+ 3 - 10
glm/detail/func_common.inl

@@ -151,22 +151,15 @@ namespace detail
 	}
 
 	// sign
-	//Try something like based on x >> 31 to get the sign bit
+	// fast and works for any type
 	template <typename genFIType> 
 	GLM_FUNC_QUALIFIER genFIType sign(genFIType x)
 	{
 		GLM_STATIC_ASSERT(
 			std::numeric_limits<genFIType>::is_iec559 ||
 			(std::numeric_limits<genFIType>::is_signed && std::numeric_limits<genFIType>::is_integer), "'sign' only accept signed inputs");
-
-		genFIType result;
-		if(x > genFIType(0))
-			result = genFIType(1);
-		else if(x < genFIType(0))
-			result = genFIType(-1);
-		else
-			result = genFIType(0);
-		return result;
+		
+		return genFIType(genFIType(0) < x) - (x < genFIType(0));
 	}
 
 	template <typename T, precision P, template <typename, precision> class vecType>

+ 2 - 2
glm/gtc/matrix_transform.inl

@@ -213,8 +213,8 @@ namespace glm
 		T zFar
 	)
 	{
-		assert(aspect != static_cast<T>(0));
-		assert(zFar != zNear);
+		assert(abs(aspect - std::numeric_limits<T>::epsilon()) > static_cast<T>(0));
+		assert(zFar > zNear);
 
 		T const tanHalfFovy = tan(fovy / static_cast<T>(2));
 

+ 1 - 0
readme.txt

@@ -84,6 +84,7 @@ Fixes:
 - Fixed implicit conversion from another tvec2 type to another tvec2 #241
 - Fixed lack of consistency of quat and dualquat constructors
 - Fixed uaddCarray #253
+- Fixed float comparison warnings #270
 
 Deprecation:
 - Removed degrees for function parameters