Sam Hocevar
9ecd579593
math: fix quaternion to euler conversion and add unit tests.
pirms 12 gadiem
Benjamin ‘Touky’ Huet
04556dea8b
mat4 : removed useless ortho(). Fixed shifted_perspective so it actually works.
numeric : Added SmoothClamp & swap
camera : fixed target&up issues and added screen-scale factor.
touky_demo : correct camera integration & first pass on uro refactor. Also added Makefile to vcproj
pirms 12 gadiem
Sam Hocevar
58ec9dd582
math: add lol::sq() square function and simplify quaternion conversions.
pirms 12 gadiem
Sam Hocevar
6adf553806
math: implement vec3::toeuler_* for Tait-Bryan angles.
pirms 12 gadiem
Sam Hocevar
f193bc2caa
scene: break text rendering again so that 2D games work properly...
pirms 12 gadiem
Benjamin ‘Touky’ Huet
876f62228c
btphystest : added new camera functions. Added funny camera stuff for cat simulation.
pirms 12 gadiem
Sam Hocevar
7fa84cdf36
math: remove debug code.
pirms 12 gadiem
Sam Hocevar
c6e453fe5c
math: add unit tests for quat::rotate(vec3, vec3).
pirms 12 gadiem
Sam Hocevar
af6deb15a2
math: create a quaternion from two vectors.
pirms 12 gadiem
Benjamin ‘Touky’ Huet
181334f5ad
Added shifted_perspective for easier camera handling.
MeshViewer : Camera update and small object tweak.
ortho to perspective transition is now perfect.
pirms 12 gadiem
Sam Hocevar
d8c6d4c198
doc: add some comments in vector.cpp functions.
pirms 12 gadiem
Sam Hocevar
6faf4ee067
base: roll our own constants because it’s always a pain in the ass
to get M_PI from the platform headers and cast it to float.
pirms 12 gadiem
Sam Hocevar
eead925c59
math: use "degrees" as the variable name for rotations for clarity.
pirms 13 gadiem
Sam Hocevar
16d53895fa
math: remove coercion rules in the vector classes, they increase the
compilation time for very little benefit and maybe even confusion.
pirms 13 gadiem
Benjamin ‘Touky’ Huet
c7219ff1dd
New year copyright update.
pirms 13 gadiem
Sam Hocevar
d6634da83f
build: fix the WTFPL site URL in all code comments.
pirms 13 gadiem
Sam Hocevar
2bf4cb668b
math: add a uniform scaling matrix constructor.
pirms 13 gadiem
Sam Hocevar
5c5abfa53c
math: improve slerp implementation.
pirms 13 gadiem
jeunathe
5224a5dd99
Added test in slerp to avoid -1 quat members
pirms 13 gadiem
jeunathe
cbd842b21a
Added Slerp method to Quat
pirms 13 gadiem
Sam Hocevar
28728814cc
core: replace usage of sin() or std::sin() with lol::sin() where appropriate.
pirms 13 gadiem
Sam Hocevar
8375f3443d
build: fix the PS3 port by using our trig.h everywhere instead of stdlib
functions; also remove a lot of idiotic "using namespace std" from the
codebase.
pirms 13 gadiem
Sam Hocevar
59ba6e6c87
core: no longer deactivate std::ostream features on Android.
pirms 13 gadiem
Sam Hocevar
f30105e675
math: implement all Euler conversions for 3×3 matrices.
pirms 13 gadiem
Sam Hocevar
552dfee5b1
math: implement quaternion creation from true Euler angles (as opposed
to the Tait-Bryan angles we had for now). Also, change quaternion storage
order to wxyz in order to match the constructors.
pirms 13 gadiem
Sam Hocevar
da6062de06
core: add methods to set the camera's view matrix.
pirms 13 gadiem
Sam Hocevar
e1d0beae1a
math: support all Tait-Bryan angle combinations in quaternions.
pirms 13 gadiem
Sam Hocevar
fad3e434cf
math: fix a bug in mat3::fromeuler().
pirms 13 gadiem
Sam Hocevar
ecda7cd569
math: replace mat3::rotate(quat) with an explicit constructor, and add
more unit tests for the quaternion to 3×3 matrix conversion.
pirms 13 gadiem
Sam Hocevar
032b32271b
math: fix a bug in the rotation matrix to quaternion conversion, found
with the unit tests.
pirms 13 gadiem
Sam Hocevar
e91c326f57
math: add methods to convert from a quaternion to Euler angles and from
Euler angles to a rotation matrix. Also fix quat::rotate() which was not
building the correct quaternion.
pirms 13 gadiem
Sam Hocevar
fceeaf1c74
math: add quat::fromeuler static constructor for quaternions.
pirms 13 gadiem
Sam Hocevar
8325d8889c
math: chage quaternion constructor to wxyz order because it matches the
mathematical writing, and add static constructors to create quaternions
from a rotation.
pirms 13 gadiem
Sam Hocevar
bed2d554c1
math: new mat3::scale() and mat4::scale() methods.
pirms 13 gadiem
Sam Hocevar
3e3b254423
math: implement rotate() for mat3 in addition to mat4.
pirms 13 gadiem
Sam Hocevar
eb51928415
math: add inversion code for 2×2 and 3×3 matrices, and transposition
code for all matrices.
pirms 13 gadiem
Sam Hocevar
56e4332597
build: reorganise math files in a single "math" directory, and get rid of the
"shader" source directory since we have "gpu".
pirms 13 gadiem
Sam Hocevar
2d3307c6b2
math: move cross product out of the .cpp file.
pirms 13 gadiem
Sam Hocevar
60a2e83d54
xbox: start working on an Xbox/Direct3D port.
pirms 13 gadiem
Sam Hocevar
6951578bb7
math: minor compilation fixes for Visual Studio. Still does not link.
pirms 13 gadiem
Sam Hocevar
0a52e68f6f
math: rename matrix.h to vector.h and simplify some stuff, especially in
the matrix code itself.
pirms 14 gadiem
Sam Hocevar
c8d5630e4e
math: finally get the GLSL-like swizzling to work.
pirms 14 gadiem
Sam Hocevar
d38a79ee3d
math: move most vector and matrix member functions to global functions.
pirms 14 gadiem
Sam Hocevar
433d05964c
core: implement complex numbers and add unit tests for these.
pirms 14 gadiem
Sam Hocevar
3e9d3e323b
math: build quaternions from rotation matrices and conversely.
pirms 14 gadiem
Sam Hocevar
def84d569d
core: implement a quaternion class and tighten some vector operation rules
to avoid common programming errors.
pirms 14 gadiem
Sam Hocevar
01ebcec3b8
core: split vector operations into linear and non-linear so that we can
reuse the linear operations in quaternions. Also mark some constructors
explicit to better spot coding errors.
pirms 14 gadiem
Sam Hocevar
3978ea9e2a
core: fix bugs in mat4::lookat() and mat4::perspective(), and ensure these
function use degrees rather than radians.
pirms 14 gadiem
Sam Hocevar
4a16c072f2
core: new combinations of integer vectors (unsigned, 8-bit, etc.), dot and
cross product, normalize, etc.
pirms 14 gadiem
Sam Hocevar
7b7d4fe003
build: stop defining ANDROID_NDK and check for __ANDROID__ instead.
According to David Turner, “it should be the only thing that NDK users
should be testing again.”
pirms 14 gadiem