10 std::shared_ptr<Vruta::TaskScheduler> scheduler,
11 std::shared_ptr<Vruta::EventManager> event_manager)
12 : m_scheduler(
std::move(scheduler))
13 , m_event_manager(
std::move(event_manager))
30 "Tapestry::create_fabric: name '{}' already registered, returning existing", name);
35 fabric->set_name(name);
43 auto it = std::ranges::find(
m_fabrics, fabric);
50 if (nit->second.lock() == fabric) {
64 auto fabric = nit->second.lock();
#define MF_WARN(comp, ctx,...)
std::vector< std::shared_ptr< Fabric > > m_fabrics
Tapestry(std::shared_ptr< Vruta::TaskScheduler > scheduler, std::shared_ptr< Vruta::EventManager > event_manager)
Construct with shared scheduler and event manager.
void remove_fabric(const std::shared_ptr< Fabric > &fabric)
Remove a Fabric by pointer.
std::shared_ptr< Fabric > get_fabric(std::string_view name) const
Look up a named Fabric.
std::shared_ptr< Vruta::EventManager > m_event_manager
const std::vector< std::shared_ptr< Fabric > > & all_fabrics() const
All woven Fabrics, named and unnamed.
void commit_all()
Commit all woven Fabrics in insertion order.
std::shared_ptr< Fabric > create_fabric(float cell_size=1.0F)
create_fabric a new unnamed Fabric into the Tapestry.
std::shared_ptr< Vruta::TaskScheduler > m_scheduler
std::unordered_map< std::string, std::weak_ptr< Fabric > > m_named_fabrics
@ Init
Engine/subsystem initialization.
@ Nexus
Spatial indexing and scheduling for user-defined behaviour.