Commit Graph

1493 Commits

Author SHA1 Message Date
Dave Reid
c6c8dd15f2 Add missing implementation of fmat4x4SIMD binary operators. 2012-12-21 08:28:34 +10:00
Dave Reid
a4ea111417 Add a new constructor to fmat4x4SIMD that takes a __m128[4]. This is used in a future commit. 2012-12-21 08:19:36 +10:00
Dave Reid
60c3d3c943 Improve const-correctness in instrinsic_matrix.inl. 2012-12-21 08:12:30 +10:00
Dave Reid
3681cd3523 Add support for doing an identity initialization in the default constructor of fmat4x4SIMD().
This is disabled by default and enabled with GLM_SIMD_ENABLE_DEFAULT_INIT. It makes toggling between SIMD and non-SIMD builds a bit easier.
2012-12-21 07:55:39 +10:00
Dave Reid
efff3add87 Add support for doing a (0.0, 0.0, 0.0, 0.0) initialization in the default constructor of fvec4SIMD().
This is disabled by default, but enabled with GLM_SIMD_ENABLE_DEFAULT_INIT. This makes toggling between SIMD and non-SIMD builds a bit easier.
2012-12-21 07:49:49 +10:00
Dave Reid
87c90590be Add support for x,y,z,w accessors to fvec4SIMD.
This is done via a union. It must be enabled with GLM_SIMD_ENABLE_XYZW_UNION. A nameless struct/union warning in VC (C4201) is explicitly disabled with the "pragma warning(push/pop)" system.

Allowing xyzw access makes it much easier to toggle between SIMD and non-SIMD builds.
2012-12-21 07:40:03 +10:00
Christophe Riccio
560b474008 Fixed quat slerp using mix function when cosTheta close to 1 2012-12-20 18:13:04 +01:00
Christophe Riccio
0b41846700 Fixed speeling 2012-12-20 11:16:12 +01:00
Christophe Riccio
c19dda3797 Fixed quaternion interpolation when cosTheta is close to zero 2012-12-20 00:37:28 +01:00
Christophe Riccio
ec05d43d7d Updated readme for GLM 0.9.4.1 release 2012-12-16 22:05:23 +01:00
Christophe Riccio
443f62bb08 Fixed issue #19, fixed -0.0 with half 2012-12-16 21:54:54 +01:00
Christophe Riccio
739ab3529c Resolved issue #4, added GLM_GTX_rotate_normalized_axis 2012-12-14 00:14:02 +01:00
Christophe Riccio
8a291a9dc2 Fixed bug #14, fixed constexpr 2012-12-13 23:08:41 +01:00
Christophe Riccio
841f91e830 Fixed bug #15, added missing roll, pitch and yaw functions; Fixed half implicit conversions 2012-12-13 22:48:20 +01:00
Christophe Riccio
931b7bcdd6 Fixed issue #18 glm::clamp and NaN's 2012-12-13 11:26:59 +01:00
Christophe Riccio
a7fb9f31fd Fixed bug #13, ICC built on Linux 2012-12-10 14:07:33 +01:00
Christophe Riccio
c7fa6d745a Revert previous change trying to fix bug #13: Break the build on Windows... 2012-12-09 00:40:25 +01:00
Christophe Riccio
8b75ff6e1c Added GTX_multiple tests 2012-12-07 11:25:06 +01:00
Christophe Riccio
7e0288359f Tentative of fixing bug #13, nextafter on Intel compiler 2012-12-07 11:22:13 +01:00
Christophe Riccio
753d5db251 Updated documentation 2012-11-18 14:05:52 +01:00
Christophe Riccio
5474e33d08 Clean up util files 2012-11-18 14:03:14 +01:00
Christophe Riccio
b8f30c5ad3 Fixed bug #11, added missing quat based epsilonEqual and epsilonNotEqual definitions 2012-11-15 15:37:28 +01:00
Christophe Riccio
47b610c6d3 Clean up doxygen documentation 2012-11-15 15:29:41 +01:00
Christophe Riccio
4b18cc7051 Clean up doxygen documentation... was exposing implementation details 2012-11-14 12:16:10 +01:00
Christophe Riccio
2f8f070597 Fixed GTC_epsilon with Clang 2012-11-14 12:02:24 +01:00
Christophe Riccio
0b745d4e1c Clean up space characters 2012-11-13 17:57:42 +01:00
Christophe Riccio
7b60ef7ab4 Merge branch 'master' of https://github.com/g-truc/glm into 0.9.4 2012-11-13 17:55:19 +01:00
Christophe Riccio
214c56cd45 Updated doxygen documentation 2012-11-13 17:54:11 +01:00
Christophe Riccio
63ae274be2 Merge pull request #10 from boromisp/master
Sphere intersection fixes
2012-11-13 08:51:21 -08:00
Christophe Riccio
9a4abb07ef Updated GLM manual for 0.9.4 2012-11-13 13:48:37 +01:00
Christophe Riccio
7778013575 Fixed space characters 2012-11-13 13:19:11 +01:00
boromisp
1683e78f58 Fixed the line-sphere intersection
The original implementation had the same mistakes than the ray-sphere
intersection.
Added two new 'out' parameters to return both intersection ponits.
Changed the implementation to the geomethric method.
2012-11-11 23:53:10 +01:00
boromisp
ed12134f34 Fixed the original ray-sphere intersection
Changed the original analytic method to a geometrical.

The errors in the original intersection calculation:
The function has a sphere center parameter, but ignores it and assumes
that the sphere is in the origo.
It calculates the length of the ray direction vector, but later on uses
this vector as a unit vector.
The position calculation is simply wrong. It multiplies the direction
vector with the radius of the sphere instead of the calculated
intersection distance.

The quadratic equation solving could be improved too:
There should be an early exit for negative discriminant.
The naive implementation sould be changed to a floating-point
specialized one.
2012-11-11 23:41:11 +01:00
boromisp
3a3c1fd8e8 Added new ray-sphere intersection
This version uses a geometric method (usually faster) and doesn't
calculate the intersection position and normal, only the distance.
2012-11-11 23:09:12 +01:00
Christophe Riccio
4fff9b4367 Added matrix inverse tests and clean up space characters 2012-11-09 03:39:43 +01:00
Christophe Riccio
c9a0b87c7b Fixed spaces 2012-11-09 01:24:22 +01:00
Christophe Riccio
a69de771a0 Fixed merge 2012-11-09 01:24:04 +01:00
Christophe Riccio
f96b0424ec Merge pull request #5 from komiga/master
Fixed component swapping in tmat2x2::_inverse()
2012-11-08 16:00:49 -08:00
Christophe Riccio
4d3af10700 Fixed space characters 2012-11-08 15:00:50 +01:00
Christophe Riccio
669ace8067 Fixed space character 2012-11-08 14:34:22 +01:00
Christophe Riccio
bfec0e2388 Fixed epsilon for half types 2012-11-06 02:26:31 +01:00
Christophe Riccio
1fb8bec873 Fixed abs function for half based types 2012-11-06 01:23:14 +01:00
Christophe Riccio
cdf5d19275 Fixed space characters, using tab 2012-11-06 00:44:48 +01:00
Christophe Riccio
415c970188 Renamed equalEpsilon function into epsilonEqual and added tests 2012-11-05 19:43:23 +01:00
Christophe Riccio
9d9a625493 Renamed equalEpsilon function into epsilonEqual and added tests 2012-11-05 19:39:22 +01:00
Christophe Riccio
a350a26e3b Fixed merge 2012-11-04 21:59:53 +01:00
Christophe Riccio
16876bef5a Fixed merge 2012-11-04 21:57:19 +01:00
Christophe Riccio
1dda2390e5 Fixed warnings on MacOS X 2012-11-04 14:26:54 +01:00
Christophe Riccio
1cc7448c43 Fixed CUDA 5 warning due to parameter name mismatch between the declaration and the definition 2012-11-03 00:34:19 +01:00
Tim Howard
e2bc911f00 Fixed component swapping in tmat2x2::_inverse().
NB: glm::detail::tmat2x2::_inverse() incorrectly swaps all components instead of only main diagonals:

	A = ⌈a  b⌉
	    ⌊c  d⌋

(using standard representation). _inverse() on A incorrectly gives the order

	⌈ d  -c⌉
	⌊-b   a⌋

(swaps both diagonals) where it should be

	⌈ d  -b⌉
	⌊-c   a⌋

(I am leaving out division by the determinate for clarity).

Also, glm::inverse() in `glm/core/func_matrix.inl` is correct for 2x2 matrices and shows the mistake of _inverse().
The unit tests do not appear to test division of a mat2 by a mat2 (where this could arise).
2012-10-22 17:23:03 -04:00