Browse Source

python: expose the attribute-less MeshData constructor.

So it's somewhat possible to really create meshes from scratch, and not
just annoyingly append to existing.
next
Vladimír Vondruš 2 years ago
parent
commit
40f9048adf
  1. 8
      src/python/magnum/test/test_trade.py
  2. 3
      src/python/magnum/trade.cpp

8
src/python/magnum/test/test_trade.py

@ -823,6 +823,14 @@ class MeshData(unittest.TestCase):
self.assertEqual(str(b), "MeshAttribute.BITANGENT")
self.assertEqual(repr(b), "<MeshAttribute.BITANGENT: 3>")
def test_init_empty(self):
mesh = trade.MeshData(MeshPrimitive.TRIANGLES, 21)
self.assertIs(mesh.owner, None)
self.assertFalse(mesh.is_indexed)
self.assertEqual(mesh.primitive, MeshPrimitive.TRIANGLES)
self.assertEqual(mesh.vertex_count, 21)
self.assertEqual(mesh.attribute_count(), 0)
def test(self):
importer = trade.ImporterManager().load_and_instantiate('GltfImporter')
# This adds extra attributes for joints and weights, don't want

3
src/python/magnum/trade.cpp

@ -1072,6 +1072,9 @@ void trade(py::module_& m) {
}, "Memory owner");
py::class_<Trade::MeshData, Trade::PyDataHolder<Trade::MeshData>>{m, "MeshData", "Mesh data"}
.def(py::init([](MeshPrimitive primitive, UnsignedInt vertexCount) {
return Trade::MeshData{primitive, vertexCount};
}), "Construct an index-less attribute-less mesh data", py::arg("primitive"), py::arg("vertex_count"))
.def_property_readonly("primitive", &Trade::MeshData::primitive, "Primitive")
.def_property_readonly("index_data_flags", [](const Trade::MeshData& self) {
return Trade::DataFlag(Containers::enumCastUnderlyingType(self.indexDataFlags()));

Loading…
Cancel
Save