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

◆ wire() [1/3]

Wiring MayaFlux::Nexus::Fabric::wire ( std::shared_ptr< Agent agent)

Begin wiring an Agent into the Fabric.

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

Definition at line 63 of file Fabric.cpp.

64{
65 Member m = agent;
66 uint32_t id = assign_id(m);
67 Registration reg { .member = std::move(m) };
68 if (agent->m_position.has_value()) {
69 reg.spatial_id = m_index->insert(*agent->m_position);
70 }
71 m_registrations.try_emplace(id, std::move(reg));
72 return Wiring { *this, id };
73}
std::unique_ptr< Kinesis::SpatialIndex3D > m_index
Definition Fabric.hpp:224
std::variant< std::shared_ptr< Emitter >, std::shared_ptr< Sensor >, std::shared_ptr< Agent > > Member
Definition Fabric.hpp:206
friend class Wiring
Definition Fabric.hpp:199
uint32_t assign_id(Member &m)
Definition Fabric.cpp:225
std::unordered_map< uint32_t, Registration > m_registrations
Definition Fabric.hpp:225

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

+ Here is the call graph for this function: