Browse Source

Fixed merge

Christophe Riccio 15 years ago
parent
commit
c07a33334b
4 changed files with 163 additions and 114 deletions
  1. 3 1
      doc/CMakeLists.txt
  2. 1 1
      glm/gtc/quaternion.hpp
  3. 37 0
      glm/gtc/quaternion.inl
  4. 122 112
      readme.txt

+ 3 - 1
doc/CMakeLists.txt

@@ -1,10 +1,12 @@
 set(NAME glm-doc)
 
+file(GLOB ROOT_TXT doxyfile ../*.txt)
 file(GLOB ROOT_CPP src/*.cpp)
 file(GLOB ROOT_XML src/*.xml)
 file(GLOB ROOT_XSL src/*.xsl)
 
+source_group("TXT Files" FILES ${ROOT_TXT})
 source_group("XML Files" FILES ${ROOT_XML})
 source_group("XSL Files" FILES ${ROOT_XSL})
 
-add_executable(${NAME} ${ROOT_CPP} ${ROOT_XML} ${ROOT_XSL})
+add_executable(${NAME} ${ROOT_CPP} ${ROOT_XML} ${ROOT_XSL} ${ROOT_TXT})

+ 1 - 1
glm/gtc/quaternion.hpp

@@ -150,7 +150,7 @@ namespace glm
 			detail::tquat<T> const & q1, 
 			detail::tquat<T> const & q2);
 		
-		//! Returns a LERP interpolated quaternion of x and y according a. 
+		//! Returns a SLERP interpolated quaternion of x and y according a. 
 		//! From GLM_GTC_quaternion extension.
 		template <typename T> 
 		detail::tquat<T> mix(

+ 37 - 0
glm/gtc/quaternion.inl

@@ -369,6 +369,43 @@ namespace quaternion{
             k0 * x.z + k1 * y2.z);
     }
 
+    template <typename T>
+    inline detail::tquat<T> mix2
+	(
+		detail::tquat<T> const & x, 
+		detail::tquat<T> const & y, 
+		T const & a
+	)
+    {
+        bool flip = false;
+		if(a <= T(0)) return x;
+        if(a >= T(1)) return y;
+
+        T cos_t = dot(x, y);
+		if(cos_t < T(0))
+		{
+			cos_t = -cos_t;
+			flip = true;
+		}
+
+		T alpha(0), beta(0);
+
+		if(T(1) - cos_t < 1e-7)
+			beta = T(1) - alpha;
+		else
+		{
+			T theta = acos(cos_t);
+			T sin_t = sin(theta);
+			beta = sin(theta * (T(1) - alpha)) / sin_t;
+			alpha = sin(alpha * theta) / sin_t;
+		}
+
+		if(flip)
+			alpha = -alpha;
+		
+        return normalize(beta * x + alpha * y2);
+    }
+
     template <typename T> 
     inline detail::tquat<T> conjugate
 	(

+ 122 - 112
readme.txt

@@ -1,12 +1,21 @@
-=============================
+================================================================================
 G-Truc Creation
------------------------------
+--------------------------------------------------------------------------------
 www.g-truc.net
 [email protected]
 
-=============================
+================================================================================
+GLM Usage
+--------------------------------------------------------------------------------
+GLM is a header only library, there is nothing to build, just include it.
+#include <glm/glm.hpp>
+
+More informations in GLM manual:
+http://glm.g-truc.net/glm-manual.pdf
+
+================================================================================
 GLM 0.9.1.A: 2010-01-31
------------------------------
+--------------------------------------------------------------------------------
 - Added SIMD support
 - Added new swizzle functions
 - Improved static assert error message with C++0x static_assert
@@ -14,314 +23,315 @@ GLM 0.9.1.A: 2010-01-31
 - Reduced branching
 - Fixed trunc implementation
 
-=============================
-GLM 0.9.0.7: 2010-01-30
------------------------------
-- Added == and != operator for *mat* and *vec*
+================================================================================
+GLM 0.9.0.7: 2011-01-30
+--------------------------------------------------------------------------------
 - Added GLSL 4.10 packing functions
+- Added == and != operators for every types.
 
-=============================
+================================================================================
 GLM 0.9.0.6: 2010-12-21
------------------------------
+--------------------------------------------------------------------------------
 - Many matrices bugs fixed
 
-=============================
+================================================================================
 GLM 0.9.0.5: 2010-11-01
------------------------------
+--------------------------------------------------------------------------------
 - Improved Clang support
 - Fixed bugs
 
-=============================
+================================================================================
 GLM 0.9.0.4: 2010-10-04
------------------------------
+--------------------------------------------------------------------------------
 - Added autoexp for GLM
 - Fixed bugs
 
-=============================
+================================================================================
 GLM 0.9.0.3: 2010-08-26
------------------------------
+--------------------------------------------------------------------------------
 - Fixed non-squared matrix operators
 
-=============================
+================================================================================
 GLM 0.9.0.2: 2010-07-08
------------------------------
+--------------------------------------------------------------------------------
 - Added GLM_GTX_int_10_10_10_2
 - Fixed bugs
 
-=============================
+================================================================================
 GLM 0.9.0.1: 2010-06-21
------------------------------
+--------------------------------------------------------------------------------
 - Fixed extensions errors
 
-=============================
+================================================================================
 GLM 0.9.0.0: 2010-05-25
------------------------------
+--------------------------------------------------------------------------------
 - Objective-C support
 - Fixed warnings
 - Updated documentation
 
-=============================
+================================================================================
 GLM 0.9.B.2: 2010-04-30
------------------------------
+--------------------------------------------------------------------------------
 - Git transition
 - Removed experimental code from releases
 - Fixed bugs
 
-=============================
+================================================================================
 GLM 0.9.B.1: 2010-04-03
------------------------------
+--------------------------------------------------------------------------------
 - Based on GLSL 4.00 specification
 - Added the new core functions
 - Added some implicit conversion support
 
-=============================
+================================================================================
 GLM 0.9.A.2: 2010-02-20
------------------------------
+--------------------------------------------------------------------------------
 - Improved some possible errors messages
 - Improved declarations and definitions match
 
-=============================
+================================================================================
 GLM 0.9.A.1: 2010-02-09
------------------------------
+--------------------------------------------------------------------------------
 - Removed deprecated features
 - Internal redesign
 
-=============================
+================================================================================
 GLM 0.8.4.4 final: 2010-01-25
------------------------------
+--------------------------------------------------------------------------------
 - Fixed warnings
 
-=============================
+================================================================================
 GLM 0.8.4.3 final: 2009-11-16
------------------------------
+--------------------------------------------------------------------------------
 - Fixed Half float arithmetic
 - Fixed setup defines
 
-=============================
+================================================================================
 GLM 0.8.4.2 final: 2009-10-19
------------------------------
+--------------------------------------------------------------------------------
 - Fixed Half float adds
 
-=============================
+================================================================================
 GLM 0.8.4.1 final: 2009-10-05
------------------------------
+--------------------------------------------------------------------------------
 - Updated documentation
 - Fixed MacOS X build
 
-=============================
+================================================================================
 GLM 0.8.4.0 final: 2009-09-16
------------------------------
+--------------------------------------------------------------------------------
 - Added GCC 4.4 and VC2010 support
 - Added matrix optimizations
 
-=============================
+================================================================================
 GLM 0.8.3.5 final: 2009-08-11
------------------------------
+--------------------------------------------------------------------------------
 - Fixed bugs
 
-=============================
+================================================================================
 GLM 0.8.3.4 final: 2009-08-10
------------------------------
+--------------------------------------------------------------------------------
 - Updated GLM according GLSL 1.5 spec
 - Fixed bugs
 
-=============================
+================================================================================
 GLM 0.8.3.3 final: 2009-06-25
------------------------------
+--------------------------------------------------------------------------------
 - Fixed bugs
 
-=============================
+================================================================================
 GLM 0.8.3.2 final: 2009-06-04
------------------------------
+--------------------------------------------------------------------------------
 - Added GLM_GTC_quaternion
 - Added GLM_GTC_type_precision
 
-=============================
+================================================================================
 GLM 0.8.3.1 final: 2009-05-21
------------------------------
+--------------------------------------------------------------------------------
 - Fixed old extension system.
 
-=============================
+================================================================================
 GLM 0.8.3.0 final: 2009-05-06
------------------------------
+--------------------------------------------------------------------------------
 - Added stable extensions.
 - Added new extension system.
 
-=============================
+================================================================================
 GLM 0.8.2.3 final: 2009-04-01
------------------------------
+--------------------------------------------------------------------------------
 - Fixed bugs.
 
-=============================
+================================================================================
 GLM 0.8.2.2 final: 2009-02-24
------------------------------
+--------------------------------------------------------------------------------
 - Fixed bugs.
 
-=============================
+================================================================================
 GLM 0.8.2.1 final: 2009-02-13
------------------------------
+--------------------------------------------------------------------------------
 - Fixed bugs.
 
-=============================
+================================================================================
 GLM 0.8.2 final: 2009-01-21
------------------------------
+--------------------------------------------------------------------------------
 - Fixed bugs.
 
-=============================
+================================================================================
 GLM 0.8.1 final: 2008-10-30
------------------------------
+--------------------------------------------------------------------------------
 - Fixed bugs.
 
-=============================
+================================================================================
 GLM 0.8.0 final: 2008-10-23
------------------------------
+--------------------------------------------------------------------------------
 - New method to use extension.
 
-=============================
+================================================================================
 GLM 0.8.0 beta3: 2008-10-10
------------------------------
+--------------------------------------------------------------------------------
 - Added CMake support for GLM tests.
 
-=============================
+================================================================================
 GLM 0.8.0 beta2: 2008-10-04
------------------------------
+--------------------------------------------------------------------------------
 - Improved half scalars and vectors support.
 
-=============================
+================================================================================
 GLM 0.8.0 beta1: 2008-09-26
------------------------------
+--------------------------------------------------------------------------------
 - Improved GLSL conformance
 - Added GLSL 1.30 support
 - Improved API documentation
 
-=============================
+================================================================================
 GLM 0.7.6 final: 2008-08-08
----------------------------
+--------------------------------------------------------------------------------
 - Improved C++ standard comformance
 - Added Static assert for types checking
 
-===========================
+================================================================================
 GLM 0.7.5 final: 2008-07-05
----------------------------
+--------------------------------------------------------------------------------
 - Added build message system with Visual Studio
 - Pedantic build with GCC
 
-===========================
+================================================================================
 GLM 0.7.4 final: 2008-06-01
----------------------------
+--------------------------------------------------------------------------------
 - Added external dependencies system.
 
-===========================
+================================================================================
 GLM 0.7.3 final: 2008-05-24
----------------------------
+--------------------------------------------------------------------------------
 - Fixed bugs
 - Added new extension group
 
-===========================
+================================================================================
 GLM 0.7.2 final: 2008-04-27
----------------------------
+--------------------------------------------------------------------------------
 - Updated documentation
 - Added preprocessor options
 
-===========================
+================================================================================
 GLM 0.7.1 final: 2008-03-24
----------------------------
+--------------------------------------------------------------------------------
 - Disabled half on GCC
 - Fixed extensions
 
-===========================
+================================================================================
 GLM 0.7.0 final: 2008-03-22
----------------------------
+--------------------------------------------------------------------------------
 - Changed to MIT license
 - Added new documentation
 
-===========================
+================================================================================
 GLM 0.6.4 : 2007-12-10
----------------------------
+--------------------------------------------------------------------------------
 - Fixed swizzle operators
 
-===========================
+================================================================================
 GLM 0.6.3 : 2007-11-05
----------------------------
+--------------------------------------------------------------------------------
 - Fixed type data accesses
 - Fixed 3DSMax sdk conflict
 
-===========================
+================================================================================
 GLM 0.6.2 : 2007-10-08
----------------------------
+--------------------------------------------------------------------------------
 - Fixed extension
 
-===========================
+================================================================================
 GLM 0.6.1 : 2007-10-07
----------------------------
+--------------------------------------------------------------------------------
 - Fixed a namespace error
 - Added extensions
 
-===========================
+================================================================================
 GLM 0.6.0 : 2007-09-16
----------------------------
+--------------------------------------------------------------------------------
 - Added new extension namespace mecanium
 - Added Automatic compiler detection
 
-===========================
+================================================================================
 GLM 0.5.1 : 2007-02-19
----------------------------
+--------------------------------------------------------------------------------
 - Fixed swizzle operators
 
-===========================
+================================================================================
 GLM 0.5.0 : 2007-01-06
----------------------------
+--------------------------------------------------------------------------------
 - Upgrated to GLSL 1.2
 - Added swizzle operators
 - Added setup settings
 
-===========================
+================================================================================
 GLM 0.4.1 : 2006-05-22
----------------------------
+--------------------------------------------------------------------------------
 - Added OpenGL examples
 
-===========================
+================================================================================
 GLM 0.4.0 : 2006-05-17
----------------------------
+--------------------------------------------------------------------------------
 - Added missing operators to vec* and mat*
 - Added first GLSL 1.2 features
 - Fixed windows.h before glm.h when windows.h required
 
-===========================
+================================================================================
 GLM 0.3.2 : 2006-04-21
----------------------------
+--------------------------------------------------------------------------------
 - Fixed texcoord components access.
 - Fixed mat4 and imat4 division operators.
 
-===========================
+================================================================================
 GLM 0.3.1 : 2006-03-28
----------------------------
+--------------------------------------------------------------------------------
 - Added GCC 4.0 support under MacOS X.
 - Added GCC 4.0 and 4.1 support under Linux.
 - Added code optimisations.
 
-===========================
+================================================================================
 GLM 0.3 : 2006-02-19
----------------------------
+--------------------------------------------------------------------------------
 - Improved GLSL type conversion and construction compliance.
 - Added experimental extensions.
 - Added Doxygen Documentation.
 - Added code optimisations.
 - Fixed bugs.
 
-===========================
+================================================================================
 GLM 0.2: 2005-05-05
----------------------------
+--------------------------------------------------------------------------------
 - Improve adaptative from GLSL.
 - Add experimental extensions based on OpenGL extension process.
 - Fixe bugs.
 
-===========================
+================================================================================
 GLM 0.1: 2005-02-21
----------------------------
+--------------------------------------------------------------------------------
 - Add vec2, vec3, vec4 GLSL types
 - Add ivec2, ivec3, ivec4 GLSL types
 - Add bvec2, bvec3, bvec4 GLSL types
 - Add mat2, mat3, mat4 GLSL types
 - Add almost all functions
 
+================================================================================