875 Commits

Author SHA1 Message Date
Mariusz Okulanis
eb23f89db2 fix glm::bounceEaseInOut() easing formula 2021-06-07 16:39:24 +02:00
SGrottel
a0ccbcc63d Added further details on the comparison issue with covariance matrices on some VMs.
Also corrected some code style guide, and changed `nullptr` to `GLM_NULLPTR` for better compatibility.
Tests are now executed in blocks of related tests, and only inbetween blocks the tests will exit.
2021-05-10 21:32:01 +02:00
SGrottel
0f5b544d5d Corrected errors on Xcode C++98 pure related to language extensions accidentially used. 2021-05-10 16:38:38 +02:00
SGrottel
b8adc27808 Removed lambdas and initializer list ctors to be compatible with older cpp standards. 2021-05-10 15:45:42 +02:00
SGrottel
dd40903b74 Implemented 'principle component analysis' utility in gtx, including tests 2021-05-10 13:14:29 +02:00
Sergey Krivohatskiy
df7b5bda7c axisAngle epsilon changed to work as expected on small angles
also small refactoring
also single epsilon is used
also passes new axisAngle tests now

Signed-off-by: Sergey Krivohatskiy <s.krivohatskiy@gmail.com>
2021-03-23 14:28:36 +03:00
Sergey Krivohatskiy
c9c656ce31 axisAngle refactoring
Signed-off-by: Sergey Krivohatskiy <s.krivohatskiy@gmail.com>
2021-03-23 14:27:00 +03:00
Christophe
fe9bb21f1f
Merge pull request #1058 from SergeyKrivohatskiy/patch-1
Fix in axisAngle implementation #1058
2021-03-07 09:37:42 +01:00
Christophe
bbedf96c16
Revert "Fix quaternion orientation in glm::decompose" 2021-03-06 17:12:03 +01:00
Sergey Krivohatskiy
acab24129d
Fixed axisAngle implementation
`acos` domain is in range [-1.0, 1.0]. Due to inaccuracies the value `angleCos` may be slightly outside that range for a correct matrix and `acos(angleCos)` produces `NaN` in that case.

The fix is we check `angleCos` value and return `acos(1)` for `angleCos > 1` and `acos(-1)` for `angleCos < -1`.

The original code checked only for `angleCos` close to `1.0` and returned an incorrect value for `acos(1)`, which is `0`, not  `pi/4`.
2021-02-20 20:16:31 +03:00
Nick Dumas
2fc22e3f3e Fix squered typo
Squered -> Squared
2021-02-16 09:56:30 +08:00
nowakowsk
6437133cd2 fix: add missing transposition to adjugate for mat2 and mat4 2021-02-14 12:14:59 +01:00
Gottfried Leibniz
00c4720305 fix: isIdentity for non-symmetric matrices 2020-12-06 11:26:14 -04:00
Christophe
1cf91a1009
Merge pull request #1012 from bosmacs/master
Fix quaternion orientation in `glm::decompose` #1012
2020-11-21 22:27:46 +01:00
lpisha
051781e265
Remove ban on using string_cast with CUDA host code
string_cast.hpp merely detects whether the current compiler is NVCC (originally based on `if defined(__CUDACC__)` in glm/simd/platform.h) and throws an error if it is. This means string_cast.hpp cannot be included in any header which might ever be used in a CUDA project.

Of course, glm::to_string can't be used in device (GPU) code. However, the current approach to stop this is both incorrect and unnecessary. __CUDACC__ will be defined in both host and device code compilation, and glm::to_string can obviously be used in host code. The correct define is __CUDA_ARCH__ (will be defined only if compiling device code). However, there's no problem if glm::to_string is defined (the header is included) while compiling device code, as long as it's not actually used in the device code. So, throwing an error if __CUDA_ARCH__ is defined would still prevent string_cast.hpp from being included in CUDA projects.

There's actually no need for any manual check to see if glm::to_string is being used in device code, because the compiler will already check for that. It returns a std::string, which itself can't be used in device code, so it's unlikely a developer would try. And if they did, there would be errors that both glm::to_string and all the needed std::string constructors, stream operators, etc. are host-only functions.
2020-11-18 11:09:53 -08:00
Christophe
596577f200
Merge pull request #1035 from koladonia/adjugate-fix
Fixed calculation of m02 minor for mat4x4 adjugate #1035
2020-11-09 18:10:54 +01:00
Christophe
2c36db9cf7
Merge pull request #1033 from gottfriedleibniz/patch-fastnormalize
fix: fastNormalize ambiguity #1033
2020-11-09 18:06:07 +01:00
Christophe
59ae1dd57a
Merge pull request #1030 from gottfriedleibniz/patch-types
fix: spurious floats #1030
2020-11-09 17:53:59 +01:00
Christophe
cc34bc7d49
Merge pull request #1032 from gottfriedleibniz/patch-scalebias
fix: scalebias #1032
2020-11-09 17:52:56 +01:00
koladonia
5b23dcab71 Fixed calculation of m02 minor for mat4x4 adjugate 2020-09-30 03:29:31 +03:00
Gottfried Leibniz
c00f046c85 fix: fastNormalize ambiguity
Declarations in fast_square_root.hpp do not match qualifiers
fast_square_root.inl; will generate: "call to 'fastNormalize' is ambiguous"
errors.
2020-09-24 11:27:06 -03:00
Gottfried Leibniz
593415108d fix: scalebias
template glm::qualifier 'Q' cannot be inferred; compiler will ignore it.
2020-09-23 22:56:48 -03:00
Gottfried Leibniz
96558e896b fix: intersectLineTriangle types 2020-09-22 00:37:56 -03:00
Gottfried Leibniz
c18ec93b0e fix: orientate3 types 2020-09-22 00:36:43 -03:00
Gottfried Leibniz
93e573f7b1 fix: axisAngle
invalid epsilon comparison
2020-09-22 00:35:07 -03:00
Gottfried Leibniz
d9124820ed fix: fastExp promotion
implicit conversion increases floating-point precision: 'float' to 'double'
2020-09-22 00:29:59 -03:00
Craig Bosma
f8bf087caa
Fix quaternion orientation in glm::decompose 2020-05-11 14:33:51 -05:00
Christophe Riccio
a4bf8867c2 Added clamp, repeat, mirrorClamp and mirrorRepeat function to GLM_EXT_scalar_commond and GLM_EXT_vector_commond extensions with tests 2020-02-11 12:53:12 +01:00
Christophe Riccio
e8d758f746 Added integer matrix extensions and fixed build 2020-02-11 11:44:52 +01:00
dorodnic
56c2cadc4a Fixing output order in the documentation of glm::polar 2020-01-06 22:21:02 +02:00
Khem Raj
d2b9bbb911 Fix Wimplicit-int-float-conversion warnings with clang 10+
This is a new warning in clang which will be available in clang 10
onwards

Fixes
error: implicit conversion from 'const int' to 'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
2019-12-27 18:44:52 -08:00
Christophe Riccio
3da0e18de7 Added missing quat constexpr #955 2019-11-06 15:03:32 +01:00
Stefan Maass
e7d51a3838 bugfix intersection ray/plane, added related tests 2019-09-14 23:38:44 +02:00
Christophe Riccio
943529eef6 Fixed CUDA 9 build #910 2019-09-07 14:32:06 +02:00
Christophe Riccio
61b2a73e21 Fixed missing std:: namespace #898 2019-09-07 13:41:08 +02:00
Liam
2c3bdccb01
Merge branch 'master' into lMaxNorm-proposal 2019-08-25 09:03:13 +01:00
Pierre Moreau
5bbbb460d3
Add missing '@' in the documentation
"param" was not being recognised as a keyword, messing up the layout of
`glm::rotation()`'s parameter description.
2019-08-08 12:20:23 +02:00
Liam Adams
2400954df2 Add lMaxNorm for computing the max norm. 2019-07-20 08:01:59 +01:00
Liam Adams
7d20bc8104 Take the absolute vaue of the components to avoid possible negative norm values. 2019-07-19 17:53:19 +01:00
Christophe
947527d3ac Fixed string_cast, broken after fixing #916 2019-07-12 23:11:27 +02:00
Christophe
f5381ef536 Fixed quaternion componant order: w, {x, y, z} #916 2019-07-12 19:19:10 +02:00
Peter Steneteg
9a1f85ae79 Hash hashes qua instead of tquat closes #919 2019-06-26 12:48:40 +02:00
Christophe Riccio
f846aa8334 Build errors when defining GLM_ENABLE_EXPERIMENTAL #884 #883 2019-04-01 16:04:04 +02:00
Khem Raj
1150952697 glm: Remove redundant double semi-colons
Make clang happy
/glm/gtc/../ext/../detail/../simd/common.h:106:45: error: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Werror,-Wextra-semi-stmt]
|         glm_vec4 const or0 = _mm_or_ps(and0, and1);;
|                                                    ^
| 1 error generated.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-03-01 11:13:28 -08:00
Christophe Riccio
477e803f38 - No more requirement for GLM_ENABLE_EXPERIMENTAL to use GTX extension, only a warning with GLM_MESSAGES defined #732 2019-03-01 18:25:15 +01:00
Christophe Riccio
3c28cc459a Improved documentation #836 2019-03-01 15:55:10 +01:00
Christophe Riccio
c142d46ca3 Fixed glm::decompose #869 2019-03-01 15:50:44 +01:00
Christophe Riccio
1362d51967 Added adjugate functions to GTX_matrix_operation #151 2018-09-27 11:39:52 +02:00
Christophe Riccio
0b974f0d00 Improved doxygen API doc 2018-08-31 20:23:27 +02:00
Christophe Riccio
34f0c510b6 Fixed doxygen 2018-08-29 00:05:54 +02:00