diff --git a/CMakeLists.txt b/CMakeLists.txt index db4774d0..9579aeba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,5 +19,7 @@ add_subdirectory(test) add_subdirectory(bench) add_subdirectory(doc) - - +option(GLM_DEVELOPMENT_MODE "GLM development" OFF) +if(NOT GLM_DEVELOPMENT_MODE) + message(FATAL_ERROR "GLM is a header only library, no need to build it") +endif() diff --git a/doc/src/about.xsl b/doc/src/about.xsl index 6ca8854c..9684dc0d 100644 --- a/doc/src/about.xsl +++ b/doc/src/about.xsl @@ -12,6 +12,19 @@ + + diff --git a/doc/src/code.xsl b/doc/src/code.xsl index f9650409..74b16226 100644 --- a/doc/src/code.xsl +++ b/doc/src/code.xsl @@ -12,6 +12,19 @@ + +
diff --git a/doc/src/data.xml b/doc/src/data.xml index 7b66dbc4..0f9f2553 100644 --- a/doc/src/data.xml +++ b/doc/src/data.xml @@ -1540,7 +1540,7 @@ - + This new version of GLM is bringing a lot of improvements and maybe too many considering the development time it has required: API exposing SIMD implementation but also some new, safe and feature complet swizzling functions and a new setup API. @@ -1563,17 +1563,17 @@ and float to __m128). This implementation can probably be improve in many ways so don't hesitate to send me some feedbacks. - GLM 0.9.1 is not 100% backward compatible with GLM 0.9.0 but mostly advanced usages should be concerned by this compatibility issues. + + UPDATED: SF.net mirrors are available again. + - - GLM 0.9.1.A (zip, 2.7 MB) - GLM 0.9.1.A (7z, 1.7 MB) - - - + GLM 0.9.1.A (zip, 3.0 MB) + GLM 0.9.1.A (7z, 2.0 MB) + GLM Manual + Submit a bug report diff --git a/doc/src/download.xsl b/doc/src/download.xsl index 51c4c98b..705e6f52 100644 --- a/doc/src/download.xsl +++ b/doc/src/download.xsl @@ -12,6 +12,19 @@ + +
diff --git a/doc/src/goodies.xsl b/doc/src/goodies.xsl index 6b27bd40..d21c7a8a 100644 --- a/doc/src/goodies.xsl +++ b/doc/src/goodies.xsl @@ -12,6 +12,19 @@ + +
diff --git a/doc/src/link.xsl b/doc/src/link.xsl index 082e51a4..a100016f 100644 --- a/doc/src/link.xsl +++ b/doc/src/link.xsl @@ -12,6 +12,19 @@ + +
diff --git a/doc/src/news.xsl b/doc/src/news.xsl index bc888916..44d895ce 100644 --- a/doc/src/news.xsl +++ b/doc/src/news.xsl @@ -12,6 +12,19 @@ + +
diff --git a/glm/gtc/quaternion.hpp b/glm/gtc/quaternion.hpp index 6d068a09..0907a935 100644 --- a/glm/gtc/quaternion.hpp +++ b/glm/gtc/quaternion.hpp @@ -79,6 +79,11 @@ namespace glm detail::tquat operator- ( detail::tquat const & q); + template + detail::tquat operator* ( + detail::tquat const & q, + detail::tquat const & p); + template detail::tvec3 operator* ( detail::tquat const & q, @@ -145,7 +150,7 @@ namespace glm //! Returns the cross product of q1 and q2. //! From GLM_GTC_quaternion extension. template - detail::tquat cross( + GLM_DEPRECATED detail::tquat cross( detail::tquat const & q1, detail::tquat const & q2); diff --git a/glm/gtc/quaternion.inl b/glm/gtc/quaternion.inl index d0344d14..a445c182 100644 --- a/glm/gtc/quaternion.inl +++ b/glm/gtc/quaternion.inl @@ -156,6 +156,20 @@ namespace detail{ return detail::tquat(-q.w, -q.x, -q.y, -q.z); } + template + inline detail::tquat operator* + ( + detail::tquat const & q, + detail::tquat const & p + ) + { + return detail::tquat( + q.w * p.w - q.x * p.x - q.y * p.y - q.z * p.z, + q.w * p.x + q.x * p.w + q.y * p.z - q.z * p.y, + q.w * p.y + q.y * p.w + q.z * p.x - q.x * p.z, + q.w * p.z + q.z * p.w + q.x * p.y - q.y * p.x); + } + // Transformation template inline detail::tvec3 operator* diff --git a/glm/setup.hpp b/glm/setup.hpp index bc2578e6..345cf46e 100644 --- a/glm/setup.hpp +++ b/glm/setup.hpp @@ -22,9 +22,9 @@ /////////////////////////////////////////////////////////////////////////////////////////////////// // Compiler -// User defines: GLM_FORCE_COMPILER_UNKNOWNED +// User defines: GLM_FORCE_COMPILER_UNKNOWN -#define GLM_COMPILER_UNKNOWNED 0x00000000 +#define GLM_COMPILER_UNKNOWN 0x00000000 // Visual C++ defines #define GLM_COMPILER_VC 0x01000000 @@ -76,8 +76,8 @@ #define GLM_COMPILER_CODEWARRIOR 0x04000000 // Force generic C++ compiler -#ifdef GLM_FORCE_COMPILER_UNKNOWNED -# define GLM_COMPILER GLM_COMPILER_UNKNOWNED +#ifdef GLM_FORCE_COMPILER_UNKNOWN +# define GLM_COMPILER GLM_COMPILER_UNKNOWN // Visual C++ #elif defined(_MSC_VER) # if _MSC_VER == 900 @@ -157,7 +157,7 @@ # define GLM_COMPILER GLM_COMPILER_CODEWARRIOR #else -# define GLM_COMPILER GLM_COMPILER_UNKNOWNED +# define GLM_COMPILER GLM_COMPILER_UNKNOWN #endif #ifndef GLM_COMPILER @@ -249,7 +249,7 @@ ///////////////// // Platform -// User defines: GLM_FORCE_PURE +// User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_AVX #define GLM_ARCH_PURE 0x0000 //(0x0000) #define GLM_ARCH_SSE2 0x0001 //(0x0001) @@ -258,6 +258,12 @@ #if(defined(GLM_FORCE_PURE)) # define GLM_ARCH GLM_ARCH_PURE +#elif(defined(GLM_FORCE_AVX)) +# define GLM_ARCH GLM_ARCH_AVX +#elif(defined(GLM_FORCE_SSE3)) +# define GLM_ARCH GLM_ARCH_SSE3 +#elif(defined(GLM_FORCE_SSE2)) +# define GLM_ARCH GLM_ARCH_SSE2 #elif((GLM_COMPILER & GLM_COMPILER_VC) && (defined(_M_IX86) || defined(_M_X64))) # if(defined(_M_CEE_PURE)) # define GLM_ARCH GLM_ARCH_PURE @@ -344,7 +350,7 @@ # elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT) # pragma message("GLM: Multiple vector component names through Visual C++ language extensions") # else -# error "GLM_COMPONENT value unknowned" +# error "GLM_COMPONENT value unknown" # endif//GLM_MESSAGE_COMPONENT_DISPLAYED #endif//GLM_MESSAGE