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

◆ wire() [2/3]

Wiring MayaFlux::Nexus::Fabric::wire ( std::shared_ptr< Emitter >  emitter)

Begin wiring an Emitter into the Fabric.

Parameters
emitterObject to register.
Returns
Wiring builder. Call Wiring::finalise() to apply.

Definition at line 40 of file Fabric.cpp.

41{
42 Member m = emitter;
43 uint32_t id = assign_id(m);
44 Registration reg { .member = std::move(m) };
45 if (emitter->m_position.has_value()) {
46 reg.spatial_id = m_index->insert(*emitter->m_position);
47 }
48 m_registrations.try_emplace(id, std::move(reg));
49 return Wiring { *this, id };
50}
std::unique_ptr< Kinesis::SpatialIndex3D > m_index
Definition Fabric.hpp:292
std::variant< std::shared_ptr< Emitter >, std::shared_ptr< Sensor >, std::shared_ptr< Agent > > Member
Definition Fabric.hpp:273
friend class Wiring
Definition Fabric.hpp:265
uint32_t assign_id(Member &m)
Definition Fabric.cpp:268
std::unordered_map< uint32_t, Registration > m_registrations
Definition Fabric.hpp:293

References assign_id(), m_index, m_registrations, and MayaFlux::Nexus::Fabric::Registration::member.

+ Here is the call graph for this function: