summaryrefslogtreecommitdiff
path: root/test/test-modelFactory.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2023-02-21 01:25:34 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2023-02-21 01:25:34 +0000
commited7c2a6a73f24f97a0f04c2e6be6862ffe54b585 (patch)
tree810350a653292d54621b7c4e72275bcd48dc6785 /test/test-modelFactory.cpp
parentAdd missing override (diff)
downloadilt-ed7c2a6a73f24f97a0f04c2e6be6862ffe54b585.tar.bz2
ilt-ed7c2a6a73f24f97a0f04c2e6be6862ffe54b585.tar.xz
ilt-ed7c2a6a73f24f97a0f04c2e6be6862ffe54b585.zip
Support for loading objects, uses and model factories from an XML resource
Diffstat (limited to 'test/test-modelFactory.cpp')
-rw-r--r--test/test-modelFactory.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/test-modelFactory.cpp b/test/test-modelFactory.cpp
index 39362f5..8f2d56c 100644
--- a/test/test-modelFactory.cpp
+++ b/test/test-modelFactory.cpp
@@ -147,4 +147,27 @@ BOOST_AUTO_TEST_CASE(brush47)
render(20);
}
+BOOST_AUTO_TEST_CASE(brush47xml)
+{
+ auto mf = ModelFactory::loadXML(RESDIR "/brush47.xml");
+ BOOST_REQUIRE(mf);
+ BOOST_REQUIRE_EQUAL(6, mf->shapes.size());
+ BOOST_CHECK(mf->shapes.at("plane"));
+ BOOST_CHECK(mf->shapes.at("cylinder"));
+ BOOST_CHECK(mf->shapes.at("cuboid"));
+ BOOST_CHECK(mf->shapes.at("wheel"));
+ BOOST_CHECK(mf->shapes.at("axel"));
+ auto bogey = mf->shapes.at("bogey");
+ BOOST_REQUIRE(bogey);
+ auto bogeyObj = std::dynamic_pointer_cast<const Object>(bogey);
+ BOOST_CHECK_EQUAL(3, bogeyObj->uses.size());
+
+ FactoryMesh::Collection factoryMeshes;
+ std::transform(factoryMeshes.begin(), factoryMeshes.end(), std::back_inserter(meshes.objects),
+ [](const FactoryMesh::CPtr & factoryMesh) -> Mesh::Ptr {
+ return factoryMesh->createMesh();
+ });
+
+ render(20);
+}
BOOST_AUTO_TEST_SUITE_END();