mirror of
https://github.com/g-truc/glm.git
synced 2024-11-30 03:44:38 +00:00
598 lines
25 KiB
Plaintext
598 lines
25 KiB
Plaintext
================================================================================
|
|
OpenGL Mathematics (GLM)
|
|
--------------------------------------------------------------------------------
|
|
glm.g-truc.net
|
|
glm@g-truc.net
|
|
|
|
================================================================================
|
|
The MIT License
|
|
--------------------------------------------------------------------------------
|
|
Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
THE SOFTWARE.
|
|
|
|
================================================================================
|
|
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.pdf
|
|
|
|
================================================================================
|
|
GLM 0.9.5.0: 2013-XX-XX
|
|
--------------------------------------------------------------------------------
|
|
- Added forward declarations (glm/fwd.hpp) for faster compilations
|
|
- Improved Intel Compiler detection
|
|
- Added bitfieldInterleave and _mm_bit_interleave_si128 functions
|
|
- Added GTX_scalar_relational
|
|
- Added GTX_dual_quaternion
|
|
- Added rotation function to GTX_quaternion (#22)
|
|
- Added precision variation of each type
|
|
- Added quaternion comparison functions
|
|
- Fixed GTX_multiple for negative value
|
|
- Removed GTX_ocl_type extension
|
|
|
|
================================================================================
|
|
GLM 0.9.4.4: 2013-0X-XX
|
|
--------------------------------------------------------------------------------
|
|
- Fixed slerp when costheta is close to 1
|
|
- Fixed mat4x2 value_type constructor
|
|
|
|
================================================================================
|
|
GLM 0.9.4.3: 2013-03-20
|
|
--------------------------------------------------------------------------------
|
|
- Detected qualifier for Clang
|
|
- Fixed C++11 mode for GCC, couldn't be enabled without MS extensions
|
|
- Fixed squad, intermediate and exp quaternion functions
|
|
- Fixed GTX_polar_coordinates euclidean function, takes a vec2 instead of a vec3
|
|
- Clarify the license applying on the manual
|
|
- Added a docx copy of the manual
|
|
- Fixed GLM_GTX_matrix_interpolation
|
|
- Fixed isnan and isinf on Android with Clang
|
|
- Autodetected C++ version using __cplusplus value
|
|
- Fixed mix for bool and bvec* third parameter
|
|
|
|
================================================================================
|
|
GLM 0.9.4.2: 2013-02-14
|
|
--------------------------------------------------------------------------------
|
|
- Fixed compAdd from GTX_component_wise
|
|
- Fixed SIMD support for Intel compiler on Windows
|
|
- Fixed isnan and isinf for CUDA compiler
|
|
- Fixed GLM_FORCE_RADIANS on glm::perspective
|
|
- Fixed GCC warnings
|
|
- Fixed packDouble2x32 on XCode
|
|
- Fixed mix for vec4 SSE implementation
|
|
- Fixed 0x2013 dash character in comments that cause issue in Windows
|
|
Japanese mode
|
|
- Fixed documentation warnings
|
|
- Fixed CUDA warnings
|
|
|
|
================================================================================
|
|
GLM 0.9.4.1: 2012-12-22
|
|
--------------------------------------------------------------------------------
|
|
- Improved half support: -0.0 case and implicit conversions
|
|
- Fixed Intel Composer Compiler support on Linux
|
|
- Fixed interaction between quaternion and euler angles
|
|
- Fixed GTC_constants build
|
|
- Fixed GTX_multiple
|
|
- Fixed quat slerp using mix function when cosTheta close to 1
|
|
- Improved fvec4SIMD and fmat4x4SIMD implementations
|
|
- Fixed assert messages
|
|
- Added slerp and lerp quaternion functions and tests
|
|
|
|
================================================================================
|
|
GLM 0.9.4.0: 2012-11-18
|
|
--------------------------------------------------------------------------------
|
|
- Added Intel Composer Compiler support
|
|
- Promoted GTC_espilon extension
|
|
- Promoted GTC_ulp extension
|
|
- Removed GLM website from the source repository
|
|
- Added GLM_FORCE_RADIANS so that all functions takes radians for arguments
|
|
- Fixed detection of Clang and LLVM GCC on MacOS X
|
|
- Added debugger visualizers for Visual C++ 2012
|
|
|
|
================================================================================
|
|
GLM 0.9.3.4: 2012-06-30
|
|
--------------------------------------------------------------------------------
|
|
- Added SSE4 and AVX2 detection.
|
|
- Removed VIRTREV_xstream and the incompatibility generated with GCC
|
|
- Fixed C++11 compiler option for GCC
|
|
- Removed MS language extension option for GCC (not fonctionnal)
|
|
- Fixed bitfieldExtract for vector types
|
|
- Fixed warnings
|
|
- Fixed SSE includes
|
|
|
|
================================================================================
|
|
GLM 0.9.3.3: 2012-05-10
|
|
--------------------------------------------------------------------------------
|
|
- Fixed isinf and isnan
|
|
- Improved compatibility with Intel compiler
|
|
- Added CMake test build options: SIMD, C++11, fast math and MS land ext
|
|
- Fixed SIMD mat4 test on GCC
|
|
- Fixed perspectiveFov implementation
|
|
- Fixed matrixCompMult for none-square matrices
|
|
- Fixed namespace issue on stream operators
|
|
- Fixed various warnings
|
|
- Added VC11 support
|
|
|
|
================================================================================
|
|
GLM 0.9.3.2: 2012-03-15
|
|
--------------------------------------------------------------------------------
|
|
- Fixed doxygen documentation
|
|
- Fixed Clang version detection
|
|
- Fixed simd mat4 /= operator
|
|
|
|
================================================================================
|
|
GLM 0.9.3.1: 2012-01-25
|
|
--------------------------------------------------------------------------------
|
|
- Fixed platform detection
|
|
- Fixed warnings
|
|
- Removed detail code from Doxygen doc
|
|
|
|
================================================================================
|
|
GLM 0.9.3.0: 2012-01-09
|
|
--------------------------------------------------------------------------------
|
|
- Added CPP Check project
|
|
- Fixed conflict with Windows headers
|
|
- Fixed isinf implementation
|
|
- Fixed Boost conflict
|
|
- Fixed warnings
|
|
|
|
================================================================================
|
|
GLM 0.9.3.B: 2011-12-12
|
|
--------------------------------------------------------------------------------
|
|
- Added support for Chrone Native Client
|
|
- Added epsilon constant
|
|
- Removed value_size function from vector types
|
|
- Fixed roundEven on GCC
|
|
- Improved API documentation
|
|
- Fixed modf implementation
|
|
- Fixed step function accuracy
|
|
- Fixed outerProduct
|
|
|
|
================================================================================
|
|
GLM 0.9.3.A: 2011-11-11
|
|
--------------------------------------------------------------------------------
|
|
- Improved doxygen documentation
|
|
- Added new swizzle operators for C++11 compilers
|
|
- Added new swizzle operators declared as functions
|
|
- Added GLSL 4.20 length for vector and matrix types
|
|
- Promoted GLM_GTC_noise extension: simplex, perlin, periodic noise functions
|
|
- Promoted GLM_GTC_random extension: linear, gaussian and various random number
|
|
generation distribution
|
|
- Added GLM_GTX_constants: provides usefull constants
|
|
- Added extension versioning
|
|
- Removed many unused namespaces
|
|
- Fixed half based type contructors
|
|
- Added GLSL core noise functions
|
|
|
|
================================================================================
|
|
GLM 0.9.2.7: 2011-10-24
|
|
--------------------------------------------------------------------------------
|
|
- Added more swizzling constructors
|
|
- Added missing none-squared matrix products
|
|
|
|
================================================================================
|
|
GLM 0.9.2.6: 2011-10-01
|
|
--------------------------------------------------------------------------------
|
|
- Fixed half based type build on old GCC
|
|
- Fixed /W4 warnings on Visual C++
|
|
- Fixed some missing l-value swizzle operators
|
|
|
|
================================================================================
|
|
GLM 0.9.2.5: 2011-09-20
|
|
--------------------------------------------------------------------------------
|
|
- Fixed floatBitToXint functions
|
|
- Fixed pack and unpack functions
|
|
- Fixed round functions
|
|
|
|
================================================================================
|
|
GLM 0.9.2.4: 2011-09-03
|
|
--------------------------------------------------------------------------------
|
|
- Fixed extensions bugs
|
|
|
|
================================================================================
|
|
GLM 0.9.2.3: 2011-06-08
|
|
--------------------------------------------------------------------------------
|
|
- Fixed build issues
|
|
|
|
================================================================================
|
|
GLM 0.9.2.2: 2011-06-02
|
|
--------------------------------------------------------------------------------
|
|
- Expend matrix constructors flexibility
|
|
- Improved quaternion implementation
|
|
- Fixed many warnings across platforms and compilers
|
|
|
|
================================================================================
|
|
GLM 0.9.2.1: 2011-05-24
|
|
--------------------------------------------------------------------------------
|
|
- Automatically detect CUDA support
|
|
- Improved compiler detection
|
|
- Fixed errors and warnings in VC with C++ extensions disabled
|
|
- Fixed and tested GLM_GTX_vector_angle
|
|
- Fixed and tested GLM_GTX_rotate_vector
|
|
|
|
================================================================================
|
|
GLM 0.9.2.0: 2011-05-09
|
|
--------------------------------------------------------------------------------
|
|
- Added CUDA support
|
|
- Added CTest test suite
|
|
- Added GLM_GTX_ulp extension
|
|
- Added GLM_GTX_noise extension
|
|
- Added GLM_GTX_matrix_interpolation extension
|
|
- Updated quaternion slerp interpolation
|
|
|
|
================================================================================
|
|
GLM 0.9.1.3: 2011-05-07
|
|
--------------------------------------------------------------------------------
|
|
- Fixed bugs
|
|
|
|
================================================================================
|
|
GLM 0.9.1.2: 2011-04-15
|
|
--------------------------------------------------------------------------------
|
|
- Fixed bugs
|
|
|
|
================================================================================
|
|
GLM 0.9.1.1: 2011-03-17
|
|
--------------------------------------------------------------------------------
|
|
- Fixed bugs
|
|
|
|
================================================================================
|
|
GLM 0.9.1.0: 2011-03-03
|
|
--------------------------------------------------------------------------------
|
|
- Fixed bugs
|
|
|
|
================================================================================
|
|
GLM 0.9.1.B: 2011-02-13
|
|
--------------------------------------------------------------------------------
|
|
- Updated API documentation
|
|
- Improved SIMD implementation
|
|
- Fixed Linux build
|
|
|
|
================================================================================
|
|
GLM 0.9.0.8: 2011-02-13
|
|
--------------------------------------------------------------------------------
|
|
- Added quaternion product operator.
|
|
- Clarify that GLM is a header only library.
|
|
|
|
================================================================================
|
|
GLM 0.9.1.A: 2011-01-31
|
|
--------------------------------------------------------------------------------
|
|
- Added SIMD support
|
|
- Added new swizzle functions
|
|
- Improved static assert error message with C++0x static_assert
|
|
- New setup system
|
|
- Reduced branching
|
|
- Fixed trunc implementation
|
|
|
|
================================================================================
|
|
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
|
|
|
|
================================================================================
|