Sam Hocevar
|
99b0874652
|
color: simplify CIEDE2000 distance code.
|
12 роки тому |
Sam Hocevar
|
b12c16448a
|
color: fix a mistake in the CIEDE2000 color-difference formula.
|
12 роки тому |
Sam Hocevar
|
a5ba03b405
|
color: unit test data for the CIEDE2000 color-difference formula.
|
12 роки тому |
Sam Hocevar
|
d6634da83f
|
build: fix the WTFPL site URL in all code comments.
|
12 роки тому |
Sam Hocevar
|
bbc2edcc8e
|
core: we can now set Map elements using simply map[foo] = bar, no need for
a Set() method. Also, new HasKey() method.
|
12 роки тому |
Sam Hocevar
|
dff7a5b72c
|
core: do not use va_copy since Visual Studio doesn’t know about it.
|
12 роки тому |
Sam Hocevar
|
949128d325
|
core: implement String::Printf() and start working on the unit tests.
I'm gonna commit this right now though I'm not really sure whether Visual
Studio will agree to build va_copy and others.
|
12 роки тому |
Sam Hocevar
|
46f7e750c0
|
core: more string concatenation and comparison methods, plus a lot
of unit tests for the String class.
|
12 роки тому |
Sam Hocevar
|
d4c0c005d6
|
math: refactor real number constant declarations so that they are only
computed on demand with static initialisation.
|
12 роки тому |
Sam Hocevar
|
f2c269cb1e
|
math: add dot() for quaternions, plus the relevant unit test.
|
12 роки тому |
Sam Hocevar
|
62744d98bb
|
test: add a unit test to ensure default constructed reals are initialised
to zero.
|
12 роки тому |
Sam Hocevar
|
caec5ed082
|
build: allow to build the PS3 binaries from Visual Studio if the proper
software is installed.
|
12 роки тому |
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 роки тому |
Sam Hocevar
|
a71562bd83
|
core: rename f64vec4 to dvec4 etc. for consistency with GLSL.
|
12 роки тому |
Sam Hocevar
|
a4fb64d6c8
|
test: add a few unit tests for datatype sanity.
|
12 роки тому |
Sam Hocevar
|
d0dbbde159
|
core: allow to concatenate arrays, and add unit tests for that.
|
12 роки тому |
Sam Hocevar
|
c276dbb1ff
|
math: allow to write 1.f / q to take a quaternion's inverse.
|
12 роки тому |
Sam Hocevar
|
82aaaae62c
|
core: the Array class now properly works with non-POD types.
|
12 роки тому |
Sam Hocevar
|
0315413285
|
core: rename Array::Append() to Array::Push() for brevity and arbitrary
personal taste.
|
12 роки тому |
Sam Hocevar
|
bbdd59032d
|
test: add matrix determinant and quaternion norm checks in the unit tests.
|
12 роки тому |
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 роки тому |
Sam Hocevar
|
9e9c18d37e
|
test: add several unit tests for rotations with matrices and quaternions.
|
12 роки тому |
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 роки тому |
Sam Hocevar
|
c9520d2aca
|
test: add unit tests for the Array class.
|
12 роки тому |
Sam Hocevar
|
eb51928415
|
math: add inversion code for 2×2 and 3×3 matrices, and transposition
code for all matrices.
|
12 роки тому |
Sam Hocevar
|
0303a8384f
|
win32: fix Visual Studio compilation and link issues.
|
12 роки тому |
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 роки тому |
Sam Hocevar
|
54f74a1b20
|
win32: some compilation fixes here and there.
|
12 роки тому |
Sam Hocevar
|
0a52e68f6f
|
math: rename matrix.h to vector.h and simplify some stuff, especially in
the matrix code itself.
|
13 роки тому |
Sam Hocevar
|
57df2357de
|
math: try to implement the magic getter/setter pattern. BREAKS BUILD.
|
13 роки тому |
Sam Hocevar
|
d38a79ee3d
|
math: move most vector and matrix member functions to global functions.
|
13 роки тому |
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 роки тому |
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 роки тому |
Sam Hocevar
|
f56c72c53d
|
core: fix the sign of a negative real number raised to an even power, and
add the corresponding unit test.
|
13 роки тому |
Sam Hocevar
|
992c198a66
|
core: allow to build a real number using a string literal.
|
13 роки тому |
Sam Hocevar
|
2d3ee50da3
|
test: do not test for strict doubles equality in quaternion unit test.
|
13 роки тому |
Sam Hocevar
|
433d05964c
|
core: implement complex numbers and add unit tests for these.
|
13 роки тому |
Sam Hocevar
|
3dde22ea62
|
test: add missing quaternion unit tests.
|
13 роки тому |
Sam Hocevar
|
4a16c072f2
|
core: new combinations of integer vectors (unsigned, 8-bit, etc.), dot and
cross product, normalize, etc.
|
13 роки тому |
Sam Hocevar
|
6767dae741
|
core: disallow casting eg. a vec3 into a vec2. Use the xy() getter instead.
|
13 роки тому |
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 роки тому |
Sam Hocevar
|
2235e9c180
|
core: implement real methods cbrt(), log2(), exp2(), and copysign().
|
13 роки тому |
Sam Hocevar
|
5d9167bda0
|
core: fix an accuracy error in real::re() and real::sqrt() introduced in
the 16-to-32-bit refactoring.
|
13 роки тому |
Sam Hocevar
|
c5c4913bda
|
core: implement round() and fmod() for real numbers.
|
13 роки тому |
Sam Hocevar
|
064856b443
|
core: implement floor() and ceil() for real numbers.
|
13 роки тому |
Sam Hocevar
|
221f469c3f
|
core: implement asin() and acos() for real numbers and add unit tests for
these functions.
|
13 роки тому |
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 роки тому |
Sam Hocevar
|
1ffa994f4b
|
core: add boolean operators on real numbers, add unit tests for that,
and simplify the Remez code accordingly.
|
13 роки тому |
Sam Hocevar
|
4822f02d8d
|
core: implement shift operators for reals; they're useful for fast
multiplications by integers, especially powers of two.
|
13 роки тому |
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 роки тому |