#include "asset.h" #include "assetFactory.h" bool Asset::persist(Persistence::PersistenceStore & store) { return STORE_MEMBER(id) && STORE_MEMBER(name); } Asset::TexturePtr Asset::getTexture() const { if (auto mf = Persistence::ParseBase::getShared("assetFactory")) { return mf->getTexture(); } return nullptr; } Asset::MeshConstruct::MeshConstruct(Mesh::Ptr & m) : Persistence::SelectionPtrBase {fmesh}, out {m} { } void Asset::MeshConstruct::endObject(Persistence::Stack & stk) { out = fmesh->createMesh(); Persistence::SelectionPtrBase::endObject(stk); } Asset::MeshArrayConstruct::MeshArrayConstruct(std::span m) : Persistence::SelectionPtrBase {fmesh}, out {m} { } void Asset::MeshArrayConstruct::endObject(Persistence::Stack & stk) { for (auto & outMesh : out) { if (!outMesh) { outMesh = fmesh->createMesh(); break; } } Persistence::SelectionPtrBase::endObject(stk); }