A breaking change, sorry, but I don't want to add yet another layer of
backwards compatibility on APIs that are in master for just a month or
so. This is a test for how many people actually use these APIs -- if
nobody complains, great!
Conflating the fuzzy operation with the discrete one wasn't a good idea,
as people could be unintentionally using the (slower) fuzzy variant on
data that could be easily deduplicated using the discrete variant. One
such case is in the icosphere primitive, and I'm going to look at that
right now.
But only in the vcpkg package and only with 19.16.27034 (not 27035), so
probably some combination of /permissive- and a compiler bug is to
blame.
The template keyword was unnecessary in any case, it probably got copied
from elsewhere by accident.
Same as in Corrade. Because BUILD_STATIC is independent between Corrade
and Magnum this option is also independent -- the corner cases and bad
interactions would be otherwise too complex to handle (e.g., in case of
a dynamic Corrade and static Magnum it would be impossible to enable
this option for Magnum etc etc).
Instead of first entering the main loop, processing events etc. This
also makes it finally possible to exit the application cleanly, with all
non-global destructors executed as well.
The precision stays the same, but the long double variant is now exposed
on Emscripten as well, following a similar change in Corrade.
Additionally, the alien-looking _EQUALITY_PRECISION macros are now
unused and deprecated. For some reason these weren't ever prefixed with
MAGNUM_, and the ability to override those is an extremely rare use case
that would break half of the assumptions everywhere, so better not allow
that at all.
The TypeTraits test is further extended to compare directly the epsilons
between Magnum and Corrade, in addition to verifying that TestSuite and
TypeTraits have the same comparison results.
It was rendering everything with a plain color, which is rather useless.
Moreover it wasn't consistent with TBN visualization where you might
actually want only the lines rendered and not the triangle.
This turned the primitive from being fully defined at compile time to
being mostly dynamically allocated. Keeping just the positions+normals
case defined at compile time, and splitting the function into two
overloads so the extra code can be DCEd when people call the function
with no flags.