diff options
Diffstat (limited to 'assetFactory/object.cpp')
-rw-r--r-- | assetFactory/object.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/assetFactory/object.cpp b/assetFactory/object.cpp new file mode 100644 index 0000000..ae5a301 --- /dev/null +++ b/assetFactory/object.cpp @@ -0,0 +1,23 @@ +#include "object.h" +#include <algorithm> + +Object::Object(std::string i) : id {std::move(i)} { } + +Object::CreatedFaces +Object::createMesh(ModelFactoryMesh & mesh, const Mutation::Matrix & mutation) const +{ + CreatedFaces faces; + for (const auto & use : uses) { + auto useFaces = use->createMesh(mesh, mutation); + std::transform(useFaces.begin(), useFaces.end(), std::inserter(faces, faces.end()), [this](auto && face) { + return std::make_pair(id + ":" + face.first, std::move(face.second)); + }); + } + return faces; +} + +bool +Object::persist(Persistence::PersistenceStore & store) +{ + return STORE_TYPE && STORE_MEMBER(id) && STORE_NAME_HELPER("use", uses, Persistence::Appender<Use::Collection>); +} |