Vladimír Vondruš
b0883f8d6b
Doc++
13 years ago
Vladimír Vondruš
5e8606a755
Math: added sign() function.
13 years ago
Vladimír Vondruš
56139ae365
Math: no need to provide implementation just for Doxygen.
13 years ago
Vladimír Vondruš
8d5b2cae71
Math: std::hypot() is not available in NaCl newlib.
...
Probably bug / not-yet-implemented feature.
13 years ago
Vladimír Vondruš
64585ca4fd
GCC 4.6 compatibility: vector conversion is not constexpr.
13 years ago
Vladimír Vondruš
2d71c86942
Math: make trignometric functions working with Unit base class.
...
The test now passes again.
13 years ago
Vladimír Vondruš
d95c44fcc8
Math: test that trigonometric functions work with Unit base class.
...
The test fails.
13 years ago
Vladimír Vondruš
6802b022ea
Added some TODOs.
13 years ago
Vladimír Vondruš
407071dc96
Math: test also possibility of Unit implicit conversions.
13 years ago
Vladimír Vondruš
32d03530e1
Math: test that implicit conversion vector <-> complex/quat can't compile.
13 years ago
Vladimír Vondruš
37c93468fd
Math: test that implicit conversion of Rectangle type can't compile.
13 years ago
Vladimír Vondruš
51da8bd65b
Math: updated Rectangle test to test constexpr functions.
13 years ago
Vladimír Vondruš
213499e7bb
Math: test that implicit conversion from/to foreign types can't compile.
13 years ago
Vladimír Vondruš
1d5e3fee7a
Math: test that implicit conversion of underlying type can't compile.
13 years ago
Vladimír Vondruš
cc938a29dd
Math: test that implicit conversion of T to Vector<T> won't compile.
...
"Won't compile" tests are another awesome feature of C++11.
13 years ago
Vladimír Vondruš
45ba444fb8
Math: properly test conversion constexpr also in Vector subclasses.
13 years ago
Vladimír Vondruš
83bda8bbe6
Math: fixed test for denormalize<UnsignedLong, long double>().
...
Amazing what single forgotten literal can do.
13 years ago
Vladimír Vondruš
35eb876303
Various other compilation fixes for OpenGL ES target.
13 years ago
Vladimír Vondruš
ba0f56fa51
No need to use Double type in tests so extensively.
...
Makes porting to OpenGL ES easier.
13 years ago
Vladimír Vondruš
b28261d269
Math: fix compilation of tests with OpenGL ES.
...
Double precision is not supported there, mention that for skipped test
cases.
13 years ago
Vladimír Vondruš
be5c872c8a
Math: fixed two typos in the test.
...
They resulted in fact that the test case didn't actually test anything.
Spotted by Clang.
13 years ago
Vladimír Vondruš
fcb756e42a
Revert "GCC 4.6 compatibility: can't list-initialize array of classes."
...
It does too much harm on GCC 4.6 (all these constexpr constructors are
not constexpr now). We can disable that `-pedantic` warning for GCC 4.6
only and live with that.
This reverts commit 2d92d497d9 .
13 years ago
Vladimír Vondruš
dd788285dc
Various code cleanup.
13 years ago
Vladimír Vondruš
2d92d497d9
GCC 4.6 compatibility: can't list-initialize array of classes.
...
Awesome bug. In GCC 4.6 it throws plenty of ungoogleable `-pedantic`
warnings and in GCC 4.5 it fails directly with "error: bad array
initializer". Fallback to initialization using for-cycle.
Hello, performance? You can go home now.
13 years ago
Vladimír Vondruš
999b7d55c0
GCC 4.6 compatibility: no delegating constructors.
...
Don't know why the corresponding conversion operator can't be constexpr.
13 years ago
Vladimír Vondruš
ba105b1cf6
Math: test constexpr vector conversion.
13 years ago
Vladimír Vondruš
7b140db3ed
Properly test swizzle() constexpr.
...
Removed constExpressions() test case and merged it to others, reducing
duplicate code.
13 years ago
Vladimír Vondruš
ce6f999904
Math: better isNormalized() implementation.
...
Comparing squared length to 1 is not sufficient to compare within range
[1 - epsilon, 1 + epsilon], as e.g. Quaternion with dot() = 1 + 1e-7
when converted to matrix has column vectors with dot() = 1 + 1e-6, which
is just above 1 + epsilon. Thus it's needed to compare sqrt(dot()) in
range [1 - epsilon, 1 + epsilon] or dot() in range [1 - 2*epsilon +
epsilon^2, 1 + 2*epsilon + epsilon^2]. Because epsilon^2 is way off
machine precision, it's omitted, thus dot() in all isNormalized()
implementations is now compared this way:
abs(dot() - 1) < 2*epsilon;
13 years ago
Vladimír Vondruš
f4f44d9d90
Math: allow creating DualComplex/DualQuaternion from real part only.
...
Useful when creating transformation from rotation only.
13 years ago
Vladimír Vondruš
4744b631bb
Math: test pow() constexpr.
13 years ago
Vladimír Vondruš
7cb79b145e
Math: test Constants constexpr.
13 years ago
Vladimír Vondruš
b28b90a9df
Math: merged constExpressions() test cases into other test cases.
...
Simplifies the code and reduces duplicates.
13 years ago
Vladimír Vondruš
3e0e91d7db
Math: renamed {rotationAngle, rotationAxis}() -> {rotation, angle, axis}().
...
DualQuaternion and DualComplex has now only rotation() which returns
full rotation part, rotationAngle() and rotationAxis() on Quaternion and
Complex were renamed to angle() and axis().
13 years ago
Vladimír Vondruš
73a4e9b18a
Math: doc++
13 years ago
Vladimír Vondruš
da2bbac104
Math: simplified Matrix::isOrthogonal().
...
No need to call std::abs() when comparing with zero, as dot() should
always be positive.
13 years ago
Vladimír Vondruš
b00554fd7f
Math: added convenience {Quaternion,DualQuaternion}::isNormalized().
13 years ago
Vladimír Vondruš
1790f37295
Math: added convenience functions {Complex,DualComplex}::isNormalized().
13 years ago
Vladimír Vondruš
3db2aa13c4
Math: added convenience function Vector::isNormalized().
13 years ago
Vladimír Vondruš
da93b2ad6a
Math: ability to create Quaternion and DualQuaternion from matrix.
13 years ago
Vladimír Vondruš
9128820e35
Math: ability to create Complex and DualComplex from matrix.
13 years ago
Vladimír Vondruš
33058aa5b0
Math: Matrix::invertedOrthogonal(), Matrix{3,4}::invertedRigid().
...
Renamed original invertedEuclidean() functions to invertedRigid() and
simplified them using isRigidTransformation().
13 years ago
Vladimír Vondruš
dfe2571047
Math: added Matrix{3,4}::isRigidTransformation().
13 years ago
Vladimír Vondruš
4714cafedc
Math: added Matrix::isOrthogonal().
13 years ago
Vladimír Vondruš
408f40a908
Math: renamed MathTypeTraits to TypeTraits.
...
As there is no Magnum::TypeTraits struct anymore, there is no need to
have redundant name in it. Hopefully Doxygen will handle the difference
between this and Corrade's TypeTraits.h properly.
13 years ago
Vladimír Vondruš
75d8fefdde
Math: ability to access also matrix row vectors.
13 years ago
Vladimír Vondruš
a0b83edd2b
Relicensing to MIT/Expat license, part 4: CMake and documentation files.
...
They didn't contain license header before, but I think adding it also
there wouldn't do any harm. Documentation is also integral part of the
codebase.
13 years ago
Vladimír Vondruš
c5ab86794b
Relicensing to MIT/Expat license, part 3: source files.
...
Added license header also to shader sources. Hopefully it won't harm
compilation times too much.
13 years ago
Vladimír Vondruš
6a5d75d1e4
Relicensing to MIT/Expat license, part 2: headers.
13 years ago
Vladimír Vondruš
90a60ce7e9
Math: disable denormalize() test for UnsignedLong.
...
It works with GCC and -O3, but fails on unoptimized code.
13 years ago
Vladimír Vondruš
90dbb28763
Thorough CMakeLists cleanup.
...
* Calling enable_testing() only in root path.
* Using CORRADE_CXX_FLAGS instead of our own set to make things easier
to maintain.
* Various cleanup and reorganization.
13 years ago