Vladimír Vondruš
13a6ba8a23
Math: benchmark quaternion interpolation methods.
8 years ago
Vladimír Vondruš
cbc35c4353
Stub documentation for transformation interpolation and animation.
8 years ago
Vladimír Vondruš
eadf8986f6
Math: fuzzy compare for division-by-zero in quaternion s(c)lerp.
...
Also remove a totally unneeded conversion.
8 years ago
Vladimír Vondruš
880bf7a1b6
Animation: list the new interpolators.
8 years ago
Vladimír Vondruš
9f8da6d47a
Animation: prefer "shortest path" interpolators in interpolatorFor().
...
The function has an explicit name but making it the default makes for a
less surprising behavior.
8 years ago
Vladimír Vondruš
fde07c6c58
Doc++
8 years ago
Vladimír Vondruš
780e5258cc
Math: consistently use arccos() in math equations.
8 years ago
Vladimír Vondruš
ec34009025
Math: document the usual notation for complex/dual/quat numbers.
8 years ago
Vladimír Vondruš
1f507d81d4
Math: make docs of slerp() for Complex consistent with Quaternion.
8 years ago
Vladimír Vondruš
737104f2c7
Math: added "shortest path" alternatives to lerp(), slerp() and sclerp().
...
Before neither of the lerp(), slerp() had the shortest path check, while
sclerp() had it. Now, to be consistent, none of them has it and there
are lerpShortestPath(), slerpShortestPath() and sclerpShortestPath()
functions that have the shortest path check.
This is different from other engines, where there's usually only the
shortest path interpolation by default and either an optional
"non-shortest-path" interpolation or no alternative at all. I like to
give the users a choice, so there's both versions and the
non-shortest-path version is the default, because -- at least in case of
lerp() -- this results in a quite significant perf difference (15%
faster), so why not have it. Preprocess your data instead ;)
8 years ago
Vladimír Vondruš
d156a60943
Math: fix sclerp() behavior with dual quaternions having the same angle.
...
The fix done with https://github.com/mosra/magnum/pull/122
(0e05c7289e ) was not tested properly (see
previous commit) and thus this code path never worked. This properly
lerps the translation part and recombines it with the rotation instead
of interpolating just a part of it.
Also I'm no longer having any "dotResult" that's done only on the
vector part of the rotation, but instead using the full
rotation quaternion dot product. I have no idea why it was done this
way. This branch was also never properly tested -- it'll be with the
introduction of "shortest path" variants in the next commit.
8 years ago
Vladimír Vondruš
425d31fb5c
Math: no, this is testing it wrong.
...
And causes an assertion message. Obviously the test doesn't pass anymore
after this fix.
8 years ago
Vladimír Vondruš
f583d1c853
Math: cleaned up the sclerp() test.
...
No need to have the precision so crazy.
8 years ago
Vladimír Vondruš
68f34b3283
Math: STUPID EFFING DOXYGEN GODDAMIT I HATE YA WITH PASSION
8 years ago
Vladimír Vondruš
6c8a2a46b8
Math: implement cubic Bezier <-> cubic Hermite conversion.
8 years ago
Vladimír Vondruš
c3d093bee9
Trade: support for spline interpolation in AnimationData.
8 years ago
Vladimír Vondruš
b1b663fa65
Animation: support for spline interpolation.
8 years ago
Vladimír Vondruš
e997344b8c
Math: new CubicHermite class.
...
For spline interpolation.
8 years ago
Vladimír Vondruš
ac11a8e815
Animation, Trade: support Complex for rotation animations.
...
Since there's now lerp() and slerp() for it.
8 years ago
Vladimír Vondruš
ffe838a404
Animation: add an explanatory comment.
8 years ago
Vladimír Vondruš
8c7c74c22e
Math: mutable getters for Complex, Dual and Quaternion.
...
Not sure why these were omitted. Everything else has them.
8 years ago
Vladimír Vondruš
c2c6b9f22b
Math: added lerp() and slerp() for complex numbers.
...
It's a straight copy of the code for quaternions -- it could probably be
simplified a bit, but I don't have the necessary brain cells at the
moment. I tried the following but failed:
retun Complex::rotation(acos(cosAngle)*t)*normalizedA;
8 years ago
Vladimír Vondruš
0f4b88870a
Math: simplify angle() implementation for Complex.
...
Not sure why that wasn't done before.
8 years ago
Vladimír Vondruš
bb9b41057f
Math: separate assertion tests into a dedicated test case.
8 years ago
Vladimír Vondruš
5e9bce3823
DebugTools: doc++
8 years ago
Vladimír Vondruš
a77a46c926
Math: debug output for Half with proper amount of decimal places.
...
The totally random places after were not exactly useful. This file was
sitting here for a while, not sure why I didn't commit that earlier.
8 years ago
Vladimír Vondruš
943d74dd1c
GL: restore backwards compatibility of deprecated Buffer::map<T>().
...
Calling map<void>() was trying to instantiate ArrayView<void> through
arrayCast<void>(), which is not possible (void has no size etc etc.).
Casting the returned pointer directly instead. Thanks to @AndySomogyi
for pointing this out.
8 years ago
Vladimír Vondruš
8dc1f8a7da
MeshTools: make the generateFlatNormals() docs less handwavy.
...
If it takes *me* ten minutes to figure out how this needs to be used,
then it probably should be documented.
8 years ago
Vladimír Vondruš
f6ba4111e1
GL: remove obsolete Firefox workaround.
...
Reverts commit 4ce2875262 from 2015. This
is now also worked around directly in Emscripten:
6dc4ac5f9e/src/library_gl.js (L7361)
8 years ago
Vladimír Vondruš
439b40f762
Platform: this actually asserts now.
8 years ago
Vladimír Vondruš
dba35bac7a
Platform: initial HiDPI support in GlfwApplication.
...
Not basing this off GLFW 3.3 as it's far from being released yet, just a
copy of what's done for SDL2 already.
8 years ago
Vladimír Vondruš
8efc6b39e9
Deprecate the Shapes library and everything that depends on it.
...
Scheduled for removal in ~6 months if all goes well.
8 years ago
Vladimír Vondruš
c9d621bed2
Shapes: properly export all instances.
...
Not sure why this wasn't done already.
8 years ago
Vladimír Vondruš
61d0ad9c7c
external: update generated Vulkan headers for new global function in 1.1.
...
See https://github.com/mosra/flextgl/issues/18 for a detailed
discussion.
8 years ago
Vladimír Vondruš
2b0b6a9422
Platform: no, this doesn't look right.
8 years ago
Vladimír Vondruš
4a9663a2ea
Platform: update deprecation warnings/errors.
...
Consistent capitalization, add the warnings also on a file level; hide
the deprecation warnings when compiling the library itself.
8 years ago
Vladimír Vondruš
e0c0baacd2
DebugTools: Primitives are needed also for ObjectRenderer.
8 years ago
Vladimír Vondruš
b98dcf76aa
Audio: make the tests compile even if SceneGraph is not enabled.
8 years ago
Vladimír Vondruš
0adf7ea323
MeshTools: make the tests compile even if Primitives are not enabled.
...
Disabling that one benchmark which depends on Primitives.
8 years ago
Vladimír Vondruš
87a951fc5d
Math: I have no idea what happened here.
...
Even after the change I am not sure what I originally meant to do here.
Discovered by PVS-Studio, thanks to @alexesDev for gathering the report.
8 years ago
Vladimír Vondruš
86b6edb120
Platform: there's no bootstrap for GlutApplication anymore.
8 years ago
Vladimír Vondruš
6f2b115953
external: regenerated Vulkan headers with latest flextGL.
...
Should fix the compilation issue on Windows.
8 years ago
Vladimír Vondruš
de68076f65
Trade: doc++
8 years ago
Vladimír Vondruš
7356a1b788
SceneGraph: fix a copypaste error in an abstract implementation.
...
Abstract transformation implementations are not used as often so there
was only a minor chance somebody would hit this bug, yet it's a serious
bug. Discovered by PVS-Studio, many thanks to @alexesDev for collecting
the report.
8 years ago
Vladimír Vondruš
c0affdae3b
GL: properly initialize XFB binding in the state tracker.
...
Discovered by PVS-Studio, many thanks to @alexesDev for collecting the
report.
8 years ago
Vladimír Vondruš
471a6d0c28
GL: properly move BufferImage::dataSize().
...
Discovered with PVS-Studio, many thanks to @alexesDev for collecting the
report.
8 years ago
Vladimír Vondruš
e795478353
Make all vars initialized in constructors rather than at some later point.
...
Reported by PVS-Studio, many thanks to @alexesDev for collecting the
report.
8 years ago
Vladimír Vondruš
d21c05f6f3
Platform: disallow calling framebufferSize() / windowSize() w/o a window.
8 years ago
Vladimír Vondruš
088c9d6b35
Platform: better capitalization for deprecation messages.
8 years ago
Squareys
f832c8df51
Platform: gracefully fail GlfwApplication::exec() if no window was opened
...
Signed-off-by: Squareys <squareys@googlemail.com>
8 years ago