Vladimír Vondruš
881be9b985
modules: updated FindMagnum.cmake.
7 years ago
Vladimír Vondruš
7549d107de
python: implement buffer protocol for Vector types as well.
...
This makes Vector3 to np.array conversion about 20x faster. Yes, *that*
much. Crazy. Timings from the benchmark added in previous commit before:
np.array([]) 0.66096 µs
np.array([1.0, 2.0, 3.0]) 0.70623 µs
a = array.array("f", [1.0, 2.0, 3.0]); np.array(a) 0.57877 µs
a = Vector3(1.0, 2.0, 3.0); np.array(a) 18.18542 µs
after:
np.array([]) 0.57162 µs
np.array([1.0, 2.0, 3.0]) 0.68309 µs
a = array.array("f", [1.0, 2.0, 3.0]); np.array(a) 0.53958 µs
a = Vector3(1.0, 2.0, 3.0); np.array(a) 0.74818 µs
There's still some overhead that could be removed I think, making the
Vector3-to-numpy conversion faster than list-to-numpy.
7 years ago
Vladimír Vondruš
6f6f6dacba
python: benchmark math / numpy / buffer protocol things.
...
Lots of optimization opportunities here. In particular, the conversion
of Vector3 to np.array is *crazy slow*, turns out to be caused mainly by
the overhead of exception throwing in pybind11. In case of Matrix3 to
np.array conversion there's no such overhead because the buffer protocol
takes care of that.
Another thing is that pybind11 buffer protocol interface has a
relatively large overhead compared to e.g. python's own array.array. I
blame the unneded allocations.
7 years ago
Vladimír Vondruš
700fd7c510
python: doc++
7 years ago
Vladimír Vondruš
b3a06f62e6
python: expose the new Matrix4::perspectiveProjection() overload.
7 years ago
Vladimír Vondruš
7fba2a030e
python: test at least the temporary property.
7 years ago
Vladimír Vondruš
fc3990b4bd
package/ci: remove dead commented-out stuff.
7 years ago
Vladimír Vondruš
aae98e0f02
python: remove pybind11 2.2.4 workarounds.
7 years ago
Vladimír Vondruš
e4aa19884a
package/ci: use pybind11 2.3.0.
7 years ago
Vladimír Vondruš
a38b14870f
python: use writeonly properties for shader uniform setters.
...
This practically means we depend on pybind11 2.3 now.
7 years ago
Vladimír Vondruš
ee2a209e9c
doc: adapt to m.css changes.
7 years ago
Vladimír Vondruš
e5e0ac0e36
doc: hmm, why corrade.containers were automagically included before?
7 years ago
Vladimír Vondruš
8b60643058
Added .editorconfig.
...
Huh, how did I miss this here.
7 years ago
Vladimír Vondruš
58e1b3c5d9
python: make scenegraph features actually instantiable from python.
7 years ago
Vladimír Vondruš
39f2699b90
python: more yelling at the buildsystem.
7 years ago
Vladimír Vondruš
7474e22ce1
python: TODAY I AM THE ANGRY GUY YELLING AT COMPUTERS.
7 years ago
Vladimír Vondruš
f66594f36b
python: setuptools why are you so flimsy.
7 years ago
Vladimír Vondruš
6d30c5ddd7
python: make setup.py work even if imported from elsewhere.
...
I feel like I'm stepping into unknown waters here :D
7 years ago
Vladimír Vondruš
daac3ac5f4
Make the Find module usable with a CMake subproject.
7 years ago
Vladimír Vondruš
c1f854472d
package/ci: test the static build as well.
7 years ago
Vladimír Vondruš
d050145e51
python: put everything into a single module if magnum is built statically.
...
That makes it much easier to handle in that case (because that's the
whole point of static builds) and also nicely circumvents any issues
with duplicated global data when a static lib would be linked to
multiple dynamic libraries.
7 years ago
Vladimír Vondruš
21ee51fd96
python: do as little as possible in PYBIND11_MODULE.
7 years ago
Vladimír Vondruš
6adc330e39
python: minor cleanup.
7 years ago
Vladimír Vondruš
d0d028f72d
python: make the main bindings _magnum, not magnum._magnum.
7 years ago
Vladimír Vondruš
8b9146dc78
package: added Homebrew package.
7 years ago
Vladimír Vondruš
e9b5fb0019
modules: added FindMagnumBindings.cmake for finding the helper headers.
7 years ago
Vladimír Vondruš
d5b5b55d2f
python: make sure all Matrix static constructors return proper type.
...
And test for those.
7 years ago
Vladimír Vondruš
2cfb061d7b
python: expose TRS SceneGraph implementation.
7 years ago
Vladimír Vondruš
52a0650cd2
python: expose at least underscored Matrix[34]._translation property.
...
Still need to figure out a way to expose the property with the same name
as a static function, but this has to suffice for now.
7 years ago
Vladimír Vondruš
012bccffbd
python: make room for more scenegraph transformation implementations.
...
Also might make it more parallel, hopefully.
7 years ago
Vladimír Vondruš
82862b8bcd
python: numpy compatibility for matrices and vectors.
7 years ago
Vladimír Vondruš
124980cec4
python: return proper type when doing operations on Color.
7 years ago
Vladimír Vondruš
fde6102a8d
python: expose SceneGraph Python wrapping helpers.
...
Those will get used by 3rd party code, so need to be installed.
7 years ago
Vladimír Vondruš
256e69a8bb
package: test also docstring validity.
...
Doctest is ... wow. Such a simple idea and yet so useful. No need to do
any complex compiled code snippets like with C++.
7 years ago
Vladimír Vondruš
f6136c8895
doc: python bindings are in master now.
7 years ago
Vladimír Vondruš
dc1ef106bf
python: improve matrix bindings code coverage.
7 years ago
Vladimír Vondruš
452d9478ab
python: make it possible to create matrices from nested tuples.
...
Ugh, I need to drop this std::tuple. It makes code complicated for no
reason.
7 years ago
Vladimír Vondruš
7777943a03
doc: add a page with examples.
7 years ago
Vladimír Vondruš
464154adca
python: implement conversions between different underlying types.
...
Such a tiny feature and such a pain when it's not there.
7 years ago
Vladimír Vondruš
670537d664
python: implement basic mouse events for SDL2 and GLFW apps.
...
This took a while because I wasn't able to convince pybind to do what I
want.
7 years ago
Vladimír Vondruš
ecc616b48c
python: expose minimum of GL::Renderer.
7 years ago
Vladimír Vondruš
2c82dc8b3d
python: make Matrix4 operations return Matrix4, not Matrix4x4.
...
Similarly for Matrix3. Also make it implicitly convertible from the base
type.
7 years ago
Vladimír Vondruš
2ae83a0c26
python: make ArrayView properly convertible from Python array.
...
Also fix element sizes that aren't 1.
7 years ago
Vladimír Vondruš
2b0dfaa22a
python: expose MeshTools::compile().
7 years ago
Vladimír Vondruš
4b58ba5204
python: Cube and Square from Primitives.
7 years ago
Vladimír Vondruš
293c5eca64
python: *very* little from Trade.
7 years ago
Vladimír Vondruš
8b1efde15f
python: add generic MeshPrimitive and MeshIndexType enums.
7 years ago
Vladimír Vondruš
0db853a483
python: expose the (almost) full Phong shader.
...
Except textures.
7 years ago
Vladimír Vondruš
998c428355
python: expose Color3 and Color4.
...
Mainly for RGB -> RGBA shortcuts. Need to invent some nice decoding from
a string.
7 years ago
Vladimír Vondruš
ad01c1a306
python: initial SceneGraph bits.
7 years ago