Browse Source

Merge branch '0.9.0'

Christophe Riccio 15 years ago
parent
commit
205a288247

+ 21 - 1
doc/src/dummy.cpp

@@ -1,4 +1,5 @@
 #include "../../glm/glm.hpp" // glm::vec3, glm::vec4, glm::ivec4, glm::mat4
 #include "../../glm/glm.hpp" // glm::vec3, glm::vec4, glm::ivec4, glm::mat4
+#include <vector>
 
 
 struct triangle
 struct triangle
 {
 {
@@ -17,12 +18,29 @@ void computeNormal(triangle & Triangle)
 #include "../../glm/gtc/matrix_projection.hpp" // glm::perspective
 #include "../../glm/gtc/matrix_projection.hpp" // glm::perspective
 #include "../../glm/gtc/matrix_transform.hpp" // glm::translate, glm::rotate, glm::scale
 #include "../../glm/gtc/matrix_transform.hpp" // glm::translate, glm::rotate, glm::scale
 #include "../../glm/gtc/type_ptr.hpp" // glm::value_ptr
 #include "../../glm/gtc/type_ptr.hpp" // glm::value_ptr
+#include "../../glm/gtc/quaternion.hpp" // glm::quat
+#include "../../glm/gtx/comparison.hpp" // == != 
+//#include "../../glm/ext.hpp"
 
 
 glm::vec4 const ClearColor = glm::vec4(glm::vec3(0.0f), 1.0f);
 glm::vec4 const ClearColor = glm::vec4(glm::vec3(0.0f), 1.0f);
 glm::ivec4 const Viewport = glm::ivec4(0, 0, 640, 480);
 glm::ivec4 const Viewport = glm::ivec4(0, 0, 640, 480);
 
 
 void glUniformMatrix4fv(int location, int count, bool transpose, const float * value);
 void glUniformMatrix4fv(int location, int count, bool transpose, const float * value);
 
 
+void ticket0023()
+{
+	std::vector<int> vals;
+	vals.push_back(1);
+	vals.push_back(2);
+	vals.push_back(3);
+	std::vector<int>::iterator it1, it2;
+	it1 = vals.begin();
+	it2 = vals.end();
+	it1 != it2; // <-- Here
+	glm::vec3 c;
+	glm::quat q;
+}
+
 int main()
 int main()
 {
 {
 	//triangle Triangle;
 	//triangle Triangle;
@@ -38,5 +56,7 @@ int main()
 	glm::mat4 Model = glm::scale(glm::mat4(1.0f), glm::vec3(0.5f));
 	glm::mat4 Model = glm::scale(glm::mat4(1.0f), glm::vec3(0.5f));
 	glm::mat4 MVP = Projection * View * Model;
 	glm::mat4 MVP = Projection * View * Model;
 	
 	
-	glUniformMatrix4fv(LocationMVP, 1, GL_FALSE, glm::value_ptr(MVP));
+	//glUniformMatrix4fv(LocationMVP, 1, GL_FALSE, glm::value_ptr(MVP));
+
+	ticket0023();
 }
 }

+ 2 - 2
glm/core/type_mat2x2.inl

@@ -32,7 +32,7 @@ namespace detail
 		size_type i
 		size_type i
 	)
 	)
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 
@@ -43,7 +43,7 @@ namespace detail
 		size_type i
 		size_type i
 	) const
 	) const
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 

+ 2 - 2
glm/core/type_mat2x3.inl

@@ -32,7 +32,7 @@ namespace detail
 		size_type i
 		size_type i
 	)
 	)
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 
@@ -43,7 +43,7 @@ namespace detail
 		size_type i
 		size_type i
 	) const
 	) const
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 

+ 2 - 2
glm/core/type_mat2x4.inl

@@ -32,7 +32,7 @@ namespace detail
 		size_type i
 		size_type i
 	)
 	)
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 
@@ -43,7 +43,7 @@ namespace detail
 		size_type i
 		size_type i
 	) const
 	) const
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 

+ 2 - 2
glm/core/type_mat3x2.inl

@@ -32,7 +32,7 @@ namespace detail
 		size_type i
 		size_type i
 	)
 	)
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 
@@ -43,7 +43,7 @@ namespace detail
 		size_type i
 		size_type i
 	) const
 	) const
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 

+ 2 - 2
glm/core/type_mat3x3.inl

@@ -32,7 +32,7 @@ namespace detail
 		size_type i
 		size_type i
 	)
 	)
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 
@@ -43,7 +43,7 @@ namespace detail
 		size_type i
 		size_type i
 	) const
 	) const
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 

+ 2 - 2
glm/core/type_mat3x4.inl

@@ -32,7 +32,7 @@ namespace detail
 		size_type i
 		size_type i
 	)
 	)
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 
@@ -43,7 +43,7 @@ namespace detail
 		size_type i
 		size_type i
 	) const
 	) const
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 

+ 2 - 2
glm/core/type_mat4x2.inl

@@ -32,7 +32,7 @@ namespace detail
 		size_type i
 		size_type i
 	)
 	)
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 
@@ -43,7 +43,7 @@ namespace detail
 		size_type i
 		size_type i
 	) const
 	) const
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 

+ 2 - 2
glm/core/type_mat4x3.inl

@@ -32,7 +32,7 @@ namespace detail
 		size_type i
 		size_type i
 	)
 	)
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 
@@ -43,7 +43,7 @@ namespace detail
 		size_type i
 		size_type i
 	) const
 	) const
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 

+ 2 - 2
glm/core/type_mat4x4.inl

@@ -32,7 +32,7 @@ namespace detail
 		size_type i
 		size_type i
 	)
 	)
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 
@@ -43,7 +43,7 @@ namespace detail
 		size_type i
 		size_type i
 	) const
 	) const
 	{
 	{
-		assert(i >= size_type(0) && i < col_size());
+		assert(i < col_size());
 		return this->value[i];
 		return this->value[i];
 	}
 	}
 
 

+ 2 - 2
glm/core/type_vec1.inl

@@ -26,7 +26,7 @@ namespace glm
 			size_type i
 			size_type i
 		)
 		)
 		{
 		{
-			assert(i >= size_type(0) && i < value_size());
+			assert(i < value_size());
 			return (&x)[i];
 			return (&x)[i];
 		}
 		}
 
 
@@ -36,7 +36,7 @@ namespace glm
 			size_type i
 			size_type i
 		) const
 		) const
 		{
 		{
-			assert(i >= size_type(0) && i < value_size());
+			assert(i < value_size());
 			return (&x)[i];
 			return (&x)[i];
 		}
 		}
 
 

+ 2 - 2
glm/core/type_vec2.inl

@@ -27,7 +27,7 @@ namespace glm
 			size_type i
 			size_type i
 		)
 		)
 		{
 		{
-			assert(i >= size_type(0) && i < value_size());
+			assert(i < value_size());
 			return (&x)[i];
 			return (&x)[i];
 		}
 		}
 
 
@@ -38,7 +38,7 @@ namespace glm
 			size_type i
 			size_type i
 		) const
 		) const
 		{
 		{
-			assert(i >= size_type(0) && i < value_size());
+			assert(i < value_size());
 			return (&x)[i];
 			return (&x)[i];
 		}
 		}
 
 

+ 2 - 2
glm/core/type_vec3.inl

@@ -27,7 +27,7 @@ namespace glm
 			size_type i
 			size_type i
 		)
 		)
 		{
 		{
-			assert(i >= size_type(0) && i < value_size());
+			assert(i < value_size());
 			return (&x)[i];
 			return (&x)[i];
 		}
 		}
 
 
@@ -38,7 +38,7 @@ namespace glm
 			size_type i
 			size_type i
 		) const
 		) const
 		{
 		{
-			assert(i >= size_type(0) && i < value_size());
+			assert(i < value_size());
 			return (&x)[i];
 			return (&x)[i];
 		}
 		}
 
 

+ 2 - 2
glm/core/type_vec4.inl

@@ -27,7 +27,7 @@ namespace glm
 			size_type i
 			size_type i
 		)
 		)
 		{
 		{
-			assert(i >= size_type(0) && i < value_size());
+			assert(i < value_size());
 			return (&x)[i];
 			return (&x)[i];
 		}
 		}
 
 
@@ -38,7 +38,7 @@ namespace glm
 			size_type i
 			size_type i
 		) const
 		) const
 		{
 		{
-			assert(i >= size_type(0) && i < value_size());
+			assert(i < value_size());
 			return (&x)[i];
 			return (&x)[i];
 		}
 		}
 
 

+ 20 - 2
glm/gtc/swizzle.hpp

@@ -11,7 +11,7 @@
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 
 #ifndef glm_gtc_swizzle
 #ifndef glm_gtc_swizzle
-#define glm_gtc_closest_point
+#define glm_gtc_swizzle
 
 
 // Dependency:
 // Dependency:
 #include "../glm.hpp"
 #include "../glm.hpp"
@@ -26,7 +26,25 @@ namespace glm
 	//! GLM_GTC_swizzle extension
 	//! GLM_GTC_swizzle extension
 	namespace swizzle{
 	namespace swizzle{
 
 
-
+		template <typename T>
+		T swizzle(	
+			detail::tvec4<T> const & v,
+			comp x);
+
+		template <typename T>
+		detail::tvec2<T> swizzle(
+			detail::tvec4<T> const & v,
+			comp x, comp y);
+
+		template <typename T>
+		detail::tvec3<T> swizzle(
+			detail::tvec4<T> const & v,
+			comp x, comp y, comp z);
+
+		template <typename T>
+		inline detail::tref4<T> swizzle(
+			detail::tvec4<T> const & v,
+			comp x, comp y, comp z, comp w);
 
 
 	}//namespace swizzle
 	}//namespace swizzle
 	}//namespace gtc
 	}//namespace gtc

+ 36 - 4
glm/gtx/comparison.hpp

@@ -28,13 +28,45 @@ namespace glm
 
 
 		//! Define == operator for vectors
 		//! Define == operator for vectors
 		//! From GLM_GTX_comparison extension.
 		//! From GLM_GTX_comparison extension.
-		template <typename vecType>
-		bool operator== (vecType const & x, vecType const & y);
+		template <typename T>
+		bool operator== (
+			detail::tvec2<T> const & x, 
+			detail::tvec2<T> const & y);
+
+		//! Define == operator for vectors
+		//! From GLM_GTX_comparison extension.
+		template <typename T>
+		bool operator== (
+			detail::tvec3<T> const & x, 
+			detail::tvec3<T> const & y);
+
+		//! Define == operator for vectors
+		//! From GLM_GTX_comparison extension.
+		template <typename T>
+		bool operator== (
+			detail::tvec4<T> const & x, 
+			detail::tvec4<T> const & y);
+
+		//! Define != operator for vectors
+		//! From GLM_GTX_comparison extension.
+		template <typename T>
+		bool operator!= (
+			detail::tvec2<T> const & x, 
+			detail::tvec2<T> const & y);
+
+		//! Define != operator for vectors
+		//! From GLM_GTX_comparison extension.
+		template <typename T>
+		bool operator!= (
+			detail::tvec3<T> const & x, 
+			detail::tvec3<T> const & y);
 
 
 		//! Define != operator for vectors
 		//! Define != operator for vectors
 		//! From GLM_GTX_comparison extension.
 		//! From GLM_GTX_comparison extension.
-		template <typename vecType>
-		bool operator!= (vecType const & x, vecType const & y);
+		template <typename T>
+		bool operator!= (
+			detail::tvec4<T> const & x, 
+			detail::tvec4<T> const & y);
 
 
 	}//namespace comparison
 	}//namespace comparison
 	}//namespace gtx
 	}//namespace gtx

+ 39 - 0
glm/gtx/int_10_10_10_2.hpp

@@ -0,0 +1,39 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// OpenGL Mathematics Copyright (c) 2005 - 2010 G-Truc Creation (www.g-truc.net)
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Created : 2010-07-07
+// Updated : 2010-07-07
+// Licence : This source is under MIT License
+// File    : glm/gtx/int_10_10_10_2.hpp
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Dependency:
+// - GLM core
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+#ifndef glm_gtx_int_10_10_10_2
+#define glm_gtx_int_10_10_10_2
+
+// Dependency:
+#include "../glm.hpp"
+
+namespace glm
+{
+	namespace gtx{
+	//! GLM_GTX_int_10_10_10_2 extension: Add support for integer for core functions
+	namespace int_10_10_10_2
+	{
+		//! From GLM_GTX_int_10_10_10_2 extension.
+		int int10_10_10_2_cast(glm::vec4 const & v);
+
+		//! From GLM_GTX_int_10_10_10_2 extension.
+		uint uint10_10_10_2_cast(glm::vec4 const & v);
+
+	}//namespace integer
+	}//namespace gtx
+}//namespace glm
+
+#include "int_10_10_10_2.inl"
+
+namespace glm{using namespace gtx::int_10_10_10_2;}
+
+#endif//glm_gtx_int_10_10_10_2

+ 28 - 0
glm/gtx/int_10_10_10_2.inl

@@ -0,0 +1,28 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// OpenGL Mathematics Copyright (c) 2005 - 2010 G-Truc Creation (www.g-truc.net)
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Created : 2010-07-07
+// Updated : 2010-07-07
+// Licence : This source is under MIT License
+// File    : glm/gtx/int_10_10_10_2.inl
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+namespace glm{
+namespace gtx{
+namespace int_10_10_10_2
+{
+	//! From GLM_GTX_int_10_10_10_2 extension.
+	int int10_10_10_2_cast(glm::vec4 const & v)
+	{
+		return int(v.x * 2047.f) << 0 | int(v.y * 2047.f) << 10 | int(v.z * 2047.f) << 20 | int(v.w * 3.f) << 30;
+	}
+
+	//! From GLM_GTX_int_10_10_10_2 extension.
+	uint uint10_10_10_2_cast(glm::vec4 const & v)
+	{
+		return uint(v.x * 2047.f) << 0 | uint(v.y * 2047.f) << 10 | uint(v.z * 2047.f) << 20 | uint(v.w * 3.f) << 30;
+	}
+
+}//namespace int_10_10_10_2
+}//namespace gtx
+}//namespace glm