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 26 of file Tapestry.cpp.

27{
28 if (m_named_fabrics.contains(name)) {
30 "Tapestry::create_fabric: name '{}' already registered, returning existing", name);
31 return m_named_fabrics[name].lock();
32 }
33
34 auto fabric = std::make_shared<Fabric>(*m_scheduler, *m_event_manager, cell_size);
35 fabric->set_name(name);
36 m_fabrics.push_back(fabric);
37 m_named_fabrics.emplace(std::move(name), fabric);
38 return fabric;
39}
#define MF_WARN(comp, ctx,...)
std::vector< std::shared_ptr< Fabric > > m_fabrics
Definition Tapestry.hpp:92
std::shared_ptr< Vruta::EventManager > m_event_manager
Definition Tapestry.hpp:90
std::shared_ptr< Vruta::TaskScheduler > m_scheduler
Definition Tapestry.hpp:89
std::unordered_map< std::string, std::weak_ptr< Fabric > > m_named_fabrics
Definition Tapestry.hpp:93
@ 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_scheduler, MF_WARN, and MayaFlux::Journal::Nexus.