Sam Hocevar
|
caec5ed082
|
build: allow to build the PS3 binaries from Visual Studio if the proper
software is installed.
|
12 lat temu |
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.
|
12 lat temu |
Sam Hocevar
|
a71562bd83
|
core: rename f64vec4 to dvec4 etc. for consistency with GLSL.
|
12 lat temu |
Sam Hocevar
|
a4fb64d6c8
|
test: add a few unit tests for datatype sanity.
|
12 lat temu |
Sam Hocevar
|
d0dbbde159
|
core: allow to concatenate arrays, and add unit tests for that.
|
12 lat temu |
Sam Hocevar
|
c276dbb1ff
|
math: allow to write 1.f / q to take a quaternion's inverse.
|
12 lat temu |
Sam Hocevar
|
82aaaae62c
|
core: the Array class now properly works with non-POD types.
|
12 lat temu |
Sam Hocevar
|
0315413285
|
core: rename Array::Append() to Array::Push() for brevity and arbitrary
personal taste.
|
12 lat temu |
Sam Hocevar
|
bbdd59032d
|
test: add matrix determinant and quaternion norm checks in the unit tests.
|
12 lat temu |
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.
|
12 lat temu |
Sam Hocevar
|
9e9c18d37e
|
test: add several unit tests for rotations with matrices and quaternions.
|
12 lat temu |
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.
|
12 lat temu |
Sam Hocevar
|
c9520d2aca
|
test: add unit tests for the Array class.
|
12 lat temu |
Sam Hocevar
|
eb51928415
|
math: add inversion code for 2×2 and 3×3 matrices, and transposition
code for all matrices.
|
12 lat temu |
Sam Hocevar
|
0303a8384f
|
win32: fix Visual Studio compilation and link issues.
|
12 lat temu |
Sam Hocevar
|
8bea4cf189
|
math: ensure real::fabs() is never chosen over std::fabs() for arguments
that are not explicitly real, even with namespace mistakes.
|
12 lat temu |
Sam Hocevar
|
54f74a1b20
|
win32: some compilation fixes here and there.
|
12 lat temu |
Sam Hocevar
|
0a52e68f6f
|
math: rename matrix.h to vector.h and simplify some stuff, especially in
the matrix code itself.
|
13 lat temu |
Sam Hocevar
|
57df2357de
|
math: try to implement the magic getter/setter pattern. BREAKS BUILD.
|
13 lat temu |
Sam Hocevar
|
d38a79ee3d
|
math: move most vector and matrix member functions to global functions.
|
13 lat temu |
Sam Hocevar
|
bed5dea0c0
|
math: implement ulp() for reals, which returns the smallest real y > 0 such
that x + y != x, and nextafter() which behaves like the C function.
|
13 lat temu |
Sam Hocevar
|
366644d43c
|
real: get rid of <<= and >>= operators; we can use ldexp() instead. As a
bonus, multiplication or division by a power of two will be optimised as
a shift of the exponent.
|
13 lat temu |
Sam Hocevar
|
f56c72c53d
|
core: fix the sign of a negative real number raised to an even power, and
add the corresponding unit test.
|
13 lat temu |
Sam Hocevar
|
992c198a66
|
core: allow to build a real number using a string literal.
|
13 lat temu |
Sam Hocevar
|
2d3ee50da3
|
test: do not test for strict doubles equality in quaternion unit test.
|
13 lat temu |
Sam Hocevar
|
433d05964c
|
core: implement complex numbers and add unit tests for these.
|
13 lat temu |
Sam Hocevar
|
3dde22ea62
|
test: add missing quaternion unit tests.
|
13 lat temu |
Sam Hocevar
|
4a16c072f2
|
core: new combinations of integer vectors (unsigned, 8-bit, etc.), dot and
cross product, normalize, etc.
|
13 lat temu |
Sam Hocevar
|
6767dae741
|
core: disallow casting eg. a vec3 into a vec2. Use the xy() getter instead.
|
13 lat temu |
Sam Hocevar
|
94160c461c
|
test: minor fixes to the test suite: disable optimisation tests in debug
mode, and do not call "new" when we’re not sure "delete" can be called.
|
13 lat temu |
Sam Hocevar
|
2235e9c180
|
core: implement real methods cbrt(), log2(), exp2(), and copysign().
|
13 lat temu |
Sam Hocevar
|
5d9167bda0
|
core: fix an accuracy error in real::re() and real::sqrt() introduced in
the 16-to-32-bit refactoring.
|
13 lat temu |
Sam Hocevar
|
c5c4913bda
|
core: implement round() and fmod() for real numbers.
|
13 lat temu |
Sam Hocevar
|
064856b443
|
core: implement floor() and ceil() for real numbers.
|
13 lat temu |
Sam Hocevar
|
221f469c3f
|
core: implement asin() and acos() for real numbers and add unit tests for
these functions.
|
13 lat temu |
Sam Hocevar
|
bbd75b80eb
|
core: add real constants for 0, 1, 2 and 10, and reorder static constants
so that their initialisation order ensures they have the proper values. Add
unit tests for these constants.
|
13 lat temu |
Sam Hocevar
|
1ffa994f4b
|
core: add boolean operators on real numbers, add unit tests for that,
and simplify the Remez code accordingly.
|
13 lat temu |
Sam Hocevar
|
4822f02d8d
|
core: implement shift operators for reals; they're useful for fast
multiplications by integers, especially powers of two.
|
13 lat temu |
Sam Hocevar
|
058d88232d
|
core: add rounding to real->double conversion, fix a bug in the addition
code shortcut, fix bugs in the addition and subtraction, another one in
the multiplication code, and add new unit tests for most of these.
|
13 lat temu |
Sam Hocevar
|
56511457d2
|
test: give more explicit names to unit test cases.
|
13 lat temu |
Sam Hocevar
|
48bde6fa94
|
test: add simple unit tests for image loading.
|
13 lat temu |
Sam Hocevar
|
cdc155c42b
|
core: allow to cast reals to doubles in addition to floats.
|
13 lat temu |
Sam Hocevar
|
325ea94821
|
core: implement division of reals and change their default precision
to 32 bigits.
|
13 lat temu |
Sam Hocevar
|
93479c2876
|
core: implement real subtraction.
|
13 lat temu |
Sam Hocevar
|
a173e49ddc
|
core: implement comparison operators for reals.
|
13 lat temu |
Sam Hocevar
|
48f00deff9
|
core: fix real unary minus and handle negative numbers in additions.
|
13 lat temu |
Sam Hocevar
|
884978c71b
|
core: handle zero, negative zero and infinite in the real constructor,
and add a test suite check for unary minus.
|
13 lat temu |
Sam Hocevar
|
dbb0463f4c
|
core: start working on the extended floating point addition.
|
13 lat temu |
Sam Hocevar
|
202ac6aaf3
|
core: switch real mantissa to uint16_t instead of uint32_t to ease the
multiplication.
|
13 lat temu |
Sam Hocevar
|
5aedae49a3
|
core: add missing real.cpp unit test.
|
13 lat temu |