MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ create_fabric() [2/2]

std::shared_ptr< Fabric > MayaFlux::Nexus::Tapestry::create_fabric ( std::string  name,
float  cell_size = 1.0F 
)

create_fabric a new named Fabric into the Tapestry.

Parameters
nameIdentifier for lookup; must not collide with existing names.
cell_sizeGrid cell edge length for the spatial index.

Definition at line 27 of file Tapestry.cpp.

28{
29 if (m_named_fabrics.contains(name)) {
31 "Tapestry::create_fabric: name '{}' already registered, returning existing", name);
32 return m_named_fabrics[name].lock();
33 }
34
35 auto fabric = std::make_shared<Fabric>(*m_scheduler, *m_event_manager, cell_size);
36 fabric->set_id(m_next_id++);
37 fabric->set_name(name);
38 m_fabrics.push_back(fabric);
39 m_named_fabrics.emplace(std::move(name), fabric);
40 return fabric;
41}
#define MF_WARN(comp, ctx,...)
std::vector< std::shared_ptr< Fabric > > m_fabrics
Definition Tapestry.hpp:128
std::shared_ptr< Vruta::EventManager > m_event_manager
Definition Tapestry.hpp:126
std::shared_ptr< Vruta::TaskScheduler > m_scheduler
Definition Tapestry.hpp:125
std::unordered_map< std::string, std::weak_ptr< Fabric > > m_named_fabrics
Definition Tapestry.hpp:129
@ Init
Engine/subsystem initialization.
@ Nexus
Spatial indexing and scheduling for user-defined behaviour.

References MayaFlux::Journal::Init, m_event_manager, m_fabrics, m_named_fabrics, m_next_id, m_scheduler, MF_WARN, and MayaFlux::Journal::Nexus.