Vladimír Vondruš
ba048cd2db
MeshTools: cache angles and cross product in generateSmoothNormals().
...
It allocates one more array, but that speeds up the calculation to twice
as fast. Before the benchmark was around 1 ms for flat normals and 12 ms
for smooth, now it's 6 ms for smooth. There is probably more I could do
(I feel like I could save at least one more normalization), however this
is good enough for now.
7 years ago
Vladimír Vondruš
32da5d7587
MeshTools: benchmark generate{Flat,Smooth}Normals().
...
There's some room for improvement so I want to be able to see the
difference.
7 years ago
Vladimír Vondruš
247dff26e0
MeshTools: Primitives are now always needed for the tests.
...
The new generateSmoothNormals() needs it.
7 years ago
Vladimír Vondruš
a4310b9a31
MeshTools: added generateSmoothNormals().
...
This was a *fun* algorithmic exercise. Seriously.
7 years ago
Vladimír Vondruš
7b24161cf3
MeshTools: minor cleanup.
7 years ago
Vladimír Vondruš
d20a17c5c3
MeshTools: ability to generate flat normals in compile().
7 years ago
Vladimír Vondruš
1de258a6b2
MeshTools: de-STL-ify generateFlatNormals().
...
Also move it to a new GenerateNormals.h header so we can easily add
generateSmoothNormals() to it. The old API and header is deprecated and
will be removed in the future. I can't be bothered rewriting the old
code using the new thing, so it's preserved there as a mausoleum until
it gets finally nuked from the orbit.
7 years ago
Vladimír Vondruš
61397afc31
MeshTools: make a version of duplicate() not dependent on std::vector.
...
Provide a version taking StridedArrayView instead, taking an arbitrary
view and also arbitrary index type. Also introduce duplicateInto() which
doesn't even allocate, but rather writes the output to pre-existing
location.
7 years ago
Vladimír Vondruš
8110de3838
package: enable both SDL2 and GLFW apps in all packages.
...
Because people like to use either of them.
7 years ago
Vladimír Vondruš
5bb6878df5
WavAudioImporter: what's with all those empty return statements.
7 years ago
Vladimír Vondruš
3d9966378d
WavAudioImporter: test for empty files consistently with other plugins.
7 years ago
Vladimír Vondruš
ffd04e96eb
WavAudioImporter: a file with zero samples is not an error.
7 years ago
Vladimír Vondruš
cbe7c97188
AnyAudioImporter: recognize AAC and MP3 files.
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š
32a95bb532
Audio: Apple, tell me, what makes a buffer non-undetermined?
7 years ago
Vladimír Vondruš
45e19fe032
doc: updated changelog and credits.
7 years ago
Guillaume Jacquemin
1104d8bb15
Audio: add an implementation and test for Source::type().
...
Co-authored-by: Vladimír Vondruš <mosra@centrum.cz>
7 years ago
Vladimír Vondruš
c442c07190
Audio: add debug operator for Source::Type.
7 years ago
Guillaume Jacquemin
b9fb03ab8e
Audio: add buffer (un)queuing to Source.
7 years ago
Vladimír Vondruš
95bb2cf896
Mention magnum-bindings in the README.
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š
6521e1b9be
Platform: properly zero-initialize the exit code.
...
Accidentally overlooked in f4b6130ab0 .
7 years ago
Vladimír Vondruš
dc1cf5e9d4
Platform: missing enum operators for GlfwApp::MouseMoveEvent::Buttons.
7 years ago
Vladimír Vondruš
f419b25763
Doc++
7 years ago
Vladimír Vondruš
e4db99b418
Updated changelog and credits.
7 years ago
Vladimír Vondruš
66db41f40c
doc: link to OpenAL APIs.
7 years ago
Vladimír Vondruš
f8fc9a7339
doc: oops, forgot these files.
7 years ago
Vladimír Vondruš
bede124c95
Link to the Python API from C++ docs.
7 years ago
Vladimír Vondruš
ba14afb6c8
Platform: doc++
7 years ago
Vladimír Vondruš
11b9f2382c
GL: doc++
7 years ago
Vladimír Vondruš
4b4b8efc1b
Math: doc++
...
Fixing Engrish while doing the Python bindings.
7 years ago
Vladimír Vondruš
91725dd86e
Platform: enable PIC for all (static) Application libraries.
...
Python bindings (which are wrapping these in shared libs) need that.
7 years ago
Vladimír Vondruš
9ec10b89d0
plugins: fix linking of static Any* plugins on otherwise dynamic builds.
7 years ago
Vladimír Vondruš
f383959fb0
Platform: fix SDL2/GLFW viewportEvent() on Retina-aware {i,mac}OS apps.
7 years ago
Vladimír Vondruš
70993983b6
doc: this is wrong.
7 years ago
Vladimír Vondruš
7e06581758
Platform: show the value of KeyEvent::key() in the tests.
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