Commit Graph

345 Commits

Author SHA1 Message Date
Recep Aslantas
7f7007574b vec: implement muladd's scalar version 2018-04-13 22:30:44 +03:00
Recep Aslantas
13345f06c1 fix vec4 scalar ops 2018-04-13 15:50:05 +03:00
Recep Aslantas
c05f58a169 vec: add addadd, subadd and muladd helpers 2018-04-13 15:46:43 +03:00
Recep Aslantas
d841f8809d vec: add some new functions for vector
* _mul: multiply two vector (replacement for _mulv)
* _div: div two vector
* _divs: div vector with scalar
* adds: add scalar to each components of vec
* subs: sub scalar from each components of vec
2018-04-13 15:12:56 +03:00
Recep Aslantas
af5a2627b4 fix scale_as for zero length vector
* return zero if vector length is zero
2018-04-13 11:57:34 +03:00
Recep Aslantas
25fc3d0284 vec: add one and zero helpers for vectors 2018-04-13 11:57:14 +03:00
Recep Aslantas
c489955b00 add simd norm helper 2018-04-13 11:39:14 +03:00
Recep Aslantas
79f8b1ebf8 vec4: optimize vec4 norm and norm2 2018-04-13 11:18:42 +03:00
Recep Aslantas
0eb37da8bb vec4: optimize vec4 normalize with SIMD 2018-04-13 11:01:07 +03:00
Recep Aslantas
2d77123999 quat: fix quaternion inverse and tests about it
* multiplication quaternion and its inverse must be identity
2018-04-11 16:50:37 +03:00
Recep Aslantas
9ae8da3e0a update version to v0.4.0 2018-04-11 12:36:39 +03:00
Recep Aslantas
0e63c245d4 update docs 2018-04-11 12:34:20 +03:00
Recep Aslantas
de55850136 add call version of vector extensions 2018-04-11 12:31:29 +03:00
Recep Aslantas
51278b26b4 quat: update call versions of quaternion 2018-04-11 11:19:13 +03:00
Recep Aslantas
fdea13507b replace mat4_mulq with glm_quat_rotate
* glm_quat_rotate is better name to rotate transform matrix using quaternion.
* we may use mat4_mulq in the future for another purpose e.g. left multiplication quat with matrix
2018-04-11 10:49:53 +03:00
Recep Aslantas
80d255e6d9 rotate vector using quaternion 2018-04-11 00:47:11 +03:00
Recep Aslantas
d447876c70 improve glm_vec_rotate 2018-04-11 00:46:23 +03:00
Recep Aslantas
b1fa7ff597 normalize axis quaternion axis-angle constructor 2018-04-11 00:36:39 +03:00
Recep Aslantas
010dcc9837 optimize normalize quaternion with SIMD
* provide _to version for storing into another quat
2018-04-11 00:17:41 +03:00
Recep Aslantas
18ef0d7af1 quat: quaternion for look rotation ( from source point to dest point ) 2018-04-10 16:52:52 +03:00
Recep Aslantas
9466182c10 quat: create view wmatrix with quaternion helper 2018-04-10 16:01:23 +03:00
Recep Aslantas
f0a51b35ad quat: transposed/inverted version of quat2mat 2018-04-10 15:41:09 +03:00
Recep Aslantas
290bcf134c quat: add lerp and improve slerp 2018-04-10 12:38:54 +03:00
Recep Aslantas
416e2f4452 vec: lerp for vec3 and vec4 2018-04-10 11:44:16 +03:00
Recep Aslantas
1fb82a1922 quat: use vector functions for available operations
* provide quat_copy function
2018-04-10 10:47:55 +03:00
Recep Aslantas
591c881376 vec: extend flip sign to store result in another vector 2018-04-10 10:46:45 +03:00
Recep Aslantas
6f69da361b quaternion multiplication
* convert quaternion multiplication to xyzw
* previous implementation may be wrong, wikipedia version implemented
* implement SSE version
2018-04-09 23:56:09 +03:00
Recep Aslantas
93a08fce17 quat: axis angle of quaternion 2018-04-09 23:12:44 +03:00
Recep Aslantas
cc1d3b53ea quat: implement add, sub, real and imag helpers 2018-04-09 22:32:55 +03:00
Recep Aslantas
b21df8fc37 inverse of quaternion 2018-04-09 22:26:23 +03:00
Recep Aslantas
76e9f74020 conjugate of quaternion 2018-04-09 21:54:53 +03:00
Recep Aslantas
3dc93c56e8 convert quaterinon to xyzw order (part 1) 2018-04-09 18:49:12 +03:00
Recep Aslantas
7615f785ac improve quaternion to matrix 2018-04-09 00:53:14 +03:00
Recep Aslantas
f0daaca58b improve matrix to quaternion 2018-04-09 00:46:00 +03:00
Recep Aslantas
381b2fdcc0 fix vec4_norm2, use dot for vec3_norm2 2018-04-09 00:01:56 +03:00
Recep Aslantas
e4e0fa623c sse2 version of vec4 dot product
* use this for normalizing vector
2018-04-08 18:27:54 +03:00
Recep Aslantas
932f638d5a optimize mat4 to quaternion
* add SSE2 version and optimize scalar version
2018-04-08 12:31:32 +03:00
Recep Aslantas
81bda7439d vector square root 2018-04-08 12:30:15 +03:00
Recep Aslantas
b27603c268 normalize quaternion before converting to matrix
* because it must be unit quaternion and didn't specified this in docs.

* we must provide alternative func for unit quat
2018-04-08 00:09:40 +03:00
Recep Aslantas
12c5307447 vec3 and vec4 sign helper 2018-04-07 21:53:22 +03:00
Recep Aslantas
257c57d41f mat4 to quaternion 2018-04-07 19:46:46 +03:00
Recep Aslantas
f5140ea005 quat: mat4_mul_quat helper
* the quaternion is used as right matrix
2018-04-07 13:47:20 +03:00
Recep Aslantas
619ecdc5a4 quat: improve normalize 2018-04-07 13:46:46 +03:00
Recep Aslantas
9b8748acc4 quat: quaternion to mat3 2018-04-07 13:27:40 +03:00
Recep Aslantas
ae06c51746 improve glm_mat4_mulN for non-DEBUG environment 2018-04-07 13:22:44 +03:00
Recep Aslantas
11430559b4 fix isnan and isinf 2018-04-07 08:28:37 +03:00
Recep Aslantas
58f0043417 vector utils: isnan and isinf
* a vector which has least one NaN or INF member, is assumed not valid vector.
2018-04-06 22:57:24 +03:00
Recep Aslantas
7411ac36c1 update docs for euler angles 2018-04-03 17:05:45 +03:00
Recep Aslantas
ea0a10ade9 suppress warnings 2018-04-03 16:47:59 +03:00
Recep Aslantas
024412f00e add docs for project/unproject 2018-04-03 16:41:13 +03:00