Vladimír Vondruš
e997344b8c
Math: new CubicHermite class.
...
For spline interpolation.
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š
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š
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š
bff7ae8d7e
Math: added Range::fromCenter().
8 years ago
Vladimír Vondruš
bb8fbcef9c
Math: doc++
8 years ago
Vladimír Vondruš
b9c96d76e8
Math: ability to use [Dual]Complex and [Dual]Quaternion in configuration.
8 years ago
Vladimír Vondruš
4de8a1d3d2
Math: minor cleanup.
8 years ago
Vladimír Vondruš
e54b1fdbc4
Math: hmm, MSVC 2015 and constexpr. Fun.
8 years ago
Vladimír Vondruš
64f8a90095
Math: ability to construct a Range from std::pair.
...
Useful to feed the output from Math::minmax() directly to a Range.
8 years ago
Vladimír Vondruš
fe10dbece8
Math: use plane equation in Intersection::planeLine().
...
The old overload taking a separate "position" and normal is a deprecated
alias, passing a calculated plane equation to the new one.
8 years ago
Vladimír Vondruš
49068f066d
Math: added planeEquation() helper.
8 years ago
Vladimír Vondruš
8a35299636
Math: added Math::Range::contains() with Range as a parameter.
8 years ago
Vladimír Vondruš
6cb57534e6
Math: implemented intersect() and intersects() for Range.
...
One returns the intersection range, the other a boolean.
8 years ago
Vladimír Vondruš
59852ace85
Math: ability to slice Range into lower dimensions.
8 years ago
Vladimír Vondruš
d88e79cd9e
Math: new Color[34]::fromSrgb[Alpha]() and Color[34]::toSrgb[Alpha]Int().
...
For easier conversion of packed 24-/32-bit colors to the Color types.
8 years ago
Vladimír Vondruš
04f4917f7b
Math: disable floating-point vector ops on integral types.
...
Avoids accidents.
8 years ago
Vladimír Vondruš
261221c864
Math: make projection operator math consistent everywhere.
8 years ago
Vladimír Vondruš
44b059bbc5
Math/Algorithms: improve SVD docs, add a test for xform decomposition.
8 years ago
Vladimír Vondruš
3a8b1a2121
Math/Algorithms: reimplement QR decomposition using Gram-Schmidt.
...
That one is reportedly using the more stable implementation, so just use
it. The code is then also easier to follow. Also added a matrix
decomposition test case and referencing it from the docs, in case
someone would need it again.
8 years ago
Vladimír Vondruš
f9328e3f64
Math/Algorithms: update algorithm docs and make code snippets compiled.
...
And add a bunch more math equations. Of course there was deprecated
functionality being used and some stuff not even compiling.
8 years ago
Vladimír Vondruš
c26075427b
Doxygen. Doxygen IS BROKEN BEYOND REPAIR.
...
I introduced *strong* enum with values, in a subnamespace, that have the
same name as completely unrelated typedefs. Guess what?! It breaks ALL
LINKS TO THOSE TYPEDEFS! **EVERYWHERE!!!**
8 years ago
Vladimír Vondruš
ae2281dfd7
Math: minor cleanup of the Bezier test.
8 years ago
Vladimír Vondruš
ede56e6705
Math: doc++
8 years ago
Vladimír Vondruš
fbd3dedeb3
Math: add Matrix[34]::rotationShear(), scalingSquared() and scaling().
...
Important: the rotation() accessor now allows non-uniform scaling but
expects orthogonality (previously it allowed non-orthogonal rotation
axes but disallowed non-uniform scaling).
Documentation of all these accessors is further improved now as well.
8 years ago
Vladimír Vondruš
c902d4cd6e
Math: fix messed up math equations.
...
Thanks to @uzername for reporting this.
8 years ago
Vladimír Vondruš
086ed8a278
Math: improve docs of matrix queries.
8 years ago
Vladimír Vondruš
a3b425bd26
Math: properly test op-and-assign operators in Unit.
8 years ago
Vladimír Vondruš
0c49c56768
Math: forgot to execute test for Vector::minmax().
...
:(
8 years ago
Vladimír Vondruš
da7d443b67
Math: added lerp(T, T, bool).
...
Last missing piece for fully orthogonal functionality. There was a
lerp(T, T, BoolVector) before, but not a scalar version. This also makes
scalar interpolation phase in select() working with arbitrary types.
8 years ago
Vladimír Vondruš
b024d69a44
Math: properly forward-declare BoolVector.
8 years ago
Vladimír Vondruš
cc51bff893
Math: make lerp() take any type.
...
Needed in order to easily pass interpolators to the Animation library.
8 years ago
Vladimír Vondruš
002d2260fd
Math: added select().
...
For animations I need a constant interpolator with the same API as
lerp() and friends.
8 years ago
Vladimír Vondruš
6e74966d94
Math: doc++
...
Make the whole vector bold, including the subscript.
8 years ago
Vladimír Vondruš
d08b064b5b
Math: doc++
8 years ago
Vladimír Vondruš
3be84b89f7
Math: doc++
8 years ago
Vladimír Vondruš
5d60f0d350
Math: moved Geometry::Distance and Intersection directly into Math.
...
Too deep nesting, too much typing. Colon cancer. Fully preserving
backwards compatibility, except for the recently added cone/frustum
intersection functions, which were not in master yet.
8 years ago
Vladimír Vondruš
915d0f0600
Math/Geometry: this test passes only on non-optimized Emscripten builds.
...
And there's no way to detect that, so doing this ugly thing.
8 years ago
Vladimír Vondruš
f0adb5688f
Math/Geometry: reduce benchmark iterations.
...
It still runs with acceptable error but at a quarter time. The iteration
count can be always increased from command-line.
8 years ago
Vladimír Vondruš
60940264cd
Math/Geometry: remove unused parameter.
8 years ago
Vladimír Vondruš
8292ac9a3e
Math/Geometry: added a missing test case.
8 years ago
Vladimír Vondruš
be3dcc6fa0
Math/Geometry: improve assertion message.
8 years ago
Vladimír Vondruš
a77b08471e
Math/Geometry: various cleanup.
...
Spacing, indentation, overly wide lines, some const etc. Minor stuff,
except for renaming function arguments for consistency. That affects
everything.
8 years ago
Squareys
04ca48ce64
Math: Add and improve intersection methods
...
Signed-off-by: Squareys <squareys@googlemail.com>
8 years ago
Vladimír Vondruš
40a5b898a2
Math: ability to convert BoolVector from/to external representation.
8 years ago
Vladimír Vondruš
47d79ef47d
Math: add GLSL bvec* as keywords for BoolVector.
8 years ago
Vladimír Vondruš
7df90af144
Math: work around MSVC 2017 15.7.2 ICEs.
...
Reported here:
https://developercommunity.visualstudio.com/content/problem/259204/1572-regression-ice-in-constexpr-code-involving-de.html
8 years ago