#pragma once #include "factoryMesh.h" #include "persistence.h" #include class TextureAtlas; class Asset : public Persistence::Persistable, public StdTypeDefs { public: using TexturePtr = std::shared_ptr; std::string id; std::string name; protected: TexturePtr getTexture() const; struct MeshConstruct : public Persistence::SelectionPtrBase { using Persistence::SelectionPtrBase::setValue; MeshConstruct(Mesh::Ptr & m); void endObject(Persistence::Stack & stk) override; FactoryMesh::Ptr fmesh; Mesh::Ptr & out; }; struct MeshArrayConstruct : public Persistence::SelectionPtrBase { using Persistence::SelectionPtrBase::setValue; MeshArrayConstruct(std::span m); void endObject(Persistence::Stack & stk) override; FactoryMesh::Ptr fmesh; std::span out; }; friend Persistence::SelectionPtrBase>; bool persist(Persistence::PersistenceStore & store) override; };