Vladimír Vondruš
13b4bf8461
Math: use __builtin_sincos for sincos() on GCC.
...
Makes this thing faster on Debug. But I'm not sure whether it's due to
less function calls or this intrinsic being actually faster, heh.
Probably a combination of both.
7 years ago
Vladimír Vondruš
a28e14491c
Math: verify that TypeTraits work correctly for signed infinities.
7 years ago
Vladimír Vondruš
3cf9dbf409
Math: added component-wise equal()/notEqual() for vectors.
7 years ago
Vladimír Vondruš
c158cfa2dd
Math: you need to know this.
7 years ago
Vladimír Vondruš
1b37d22006
Doc++
7 years ago
Vladimír Vondruš
bd1ce7d316
Math: return proper type from Range3D::xy().
7 years ago
Vladimír Vondruš
0de0104abe
Math: return proper type from Range*D::scaledFromCenter().
7 years ago
Vladimír Vondruš
2030e7cfef
Math: clarify how quaternion data are ordered.
7 years ago
Vladimír Vondruš
3d5f50ac49
Test: use the new setTestCaseTemplateName().
7 years ago
Vladimír Vondruš
a1cc0cb62d
Math: off-center Matrix4::perspectiveProjection().
7 years ago
Vladimír Vondruš
637e8ecd44
Math: de-duplicate code in Matrix4::perspectiveProjection().
7 years ago
Vladimír Vondruš
ad291c2afe
Math: mention planeEquation() in Frustum docs and vice versa.
7 years ago
Vladimír Vondruš
b83c4366e7
Math: fix a build issue with CUDA on Windows.
7 years ago
Vladimír Vondruš
1253a60046
Math: doc++
7 years ago
Vladimír Vondruš
8e5ecfacac
Math: ignore NaNs also in Vector::min(), max() and minmax().
...
To have the API consistent.
7 years ago
Vladimír Vondruš
bd4ed9ae0e
Math: make batch functions accept strided array views.
...
The obvious improvement.
7 years ago
Vladimír Vondruš
51f9fd3a5f
Math: clarifying comment for future self.
...
Reverted all of this and then spent hours rediscovering these errors.
7 years ago
Vladimír Vondruš
2a9f4a1fed
Math: hint that lerpInverted() can be used for rane mapping.
7 years ago
Vladimír Vondruš
46fdb38cd2
Math: make batch min() / max() / minmax() ignore NaNs.
7 years ago
Vladimír Vondruš
d38303505d
Math: added batch isInf() and isNan().
7 years ago
Vladimír Vondruš
da43af403e
Math: minor cleanup and code simplification.
7 years ago
Vladimír Vondruš
571ba7b17f
Math: group the free functions to make them easier to look up.
7 years ago
Vladimír Vondruš
d9da018af7
Math: don't hide the vector/scalar overloads from docs.
...
People should be able to see the IsScalar requirements and how the
vector types are passed around as well.
7 years ago
Vladimír Vondruš
28f12f9a5e
Math: improve the NaN propagation tests even more.
7 years ago
Vladimír Vondruš
75ffd39fe0
Math: make it possible to use Deg/Rad in all functions.
...
This should have been here ages ago, haha.
7 years ago
Vladimír Vondruš
7941a769cd
Math: added IsUnitless type trait.
7 years ago
Vladimír Vondruš
ab0d7c5485
Math: be consistent with not using long double on Emscripten.
7 years ago
Vladimír Vondruš
19844352ff
Math: added UnderlyingTypeOf.
7 years ago
Vladimír Vondruš
aa2adb7222
Math: add IsScalar, IsVector, IsIntegral and IsFloatingPoint type traits.
...
The standard ones are not good enough, so let's roll out my own.
7 years ago
Vladimír Vondruš
4b4b8efc1b
Math: doc++
...
Fixing Engrish while doing the Python bindings.
7 years ago
Vladimír Vondruš
442d5576d0
Math: change the way BoolVector is printed to Debug.
...
Found while working on the Python bindings --- BoolVector4(0b1010) got
printed as BoolVector(0101), which is totally confusing. Now it prints
it in a way that looks exactly the same as when constructing the vector
with binary literals.
7 years ago
Vladimír Vondruš
4b6fabb004
Math: ability to Debug colors as actual colored squares.
7 years ago
Vladimír Vondruš
988a33c000
Added convenience BoolVector2, BoolVector3 and BoolVector4 typedefs.
7 years ago
Vladimír Vondruš
3fb90cdf5c
Math: remove obsolete Doxygen workarounds.
7 years ago
Vladimír Vondruš
36ba5f4333
Math: ensure ZeroInit and IdentityInit constructors are explicit.
...
Like NoInit ones. Not sure what I was doing there.
7 years ago
Vladimír Vondruš
3626562e1d
Adapted to Corrade changes.
...
Mostly missing includes now.
7 years ago
Vladimír Vondruš
f8b9c69b16
Don't use std::tie() on std::pair().
...
It's nice and all, but including the whole <tuple> just for that is not
worth it.
7 years ago
Vladimír Vondruš
b61f8262e9
Math: inline a helper function.
7 years ago
Vladimír Vondruš
e4e90bd75c
Math: explicitly specialize 3x3 matrix determinant.
...
Together with the operator[] deinilining that makes matrix inverse
almost six times faster than before. Now 2x faster in debug builds than
GLM (was 3x slower before).
7 years ago
Vladimír Vondruš
05b1cefda5
Math: avoid operator[] calls where possible (and not too verbose).
...
In debug builds (where nothing is inlined), this makes matrix
multiplication run in 33% of the time and matrix inversion roughly twice
as fast.
7 years ago
Vladimír Vondruš
5cf4f6bb19
Math: be nicer to people and preserve compatibility.
...
This broke backwards compatibility pretty heavily for little reason.
Putting back a compat include.
7 years ago
Vladimír Vondruš
8c1d62d97c
Math: use CORRADE_TARGET_EMSCRIPTEN instead of MAGNUM_TARGET_WEBGL.
...
When WebGPU is here, what would we gonna do?
7 years ago
Vladimír Vondruš
7b3110e7f8
Math: missing includes when building with CORRADE_NO_DEBUG.
7 years ago
Vladimír Vondruš
754c84525e
The <cmath> header is not allowed anymore.
7 years ago
Vladimír Vondruš
0dd763fe9d
Math: fix deprecated build.
7 years ago
Vladimír Vondruš
53c1549e69
Math: deprecate Frustum::planes() in favor of begin()/end().
...
This allows us to get rid of the StaticArrayView, which is the last
roadblock on the way to a single-header math. The planes() are now
deprecated, along with the include, and will get removed in a future
release.
7 years ago
Vladimír Vondruš
8079cda8aa
Math: check for OOB access in Frustum::operator[]().
7 years ago
Vladimír Vondruš
3a1713d549
Math: no need to include <tuple> just for std::tie() in tests.
...
Unpack the pairs manually instead.
7 years ago
Vladimír Vondruš
c12680ec38
Math: move batch functionality to FunctionsBatch.h.
...
Avoids including a (relatively) large ArrayView in Functions.h. Yes,
we are now at a point where 500 lines matter.
7 years ago
Vladimír Vondruš
fd51ef662b
Math: avoid std::tie() in DualQuaternion sclerp..
...
It needs #include <tuple> and that's heavier than I'd like.
7 years ago