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

◆ process()

void MayaFlux::Nodes::Network::PhysicsOperator::process ( float  dt)
overridevirtual

Process for one batch cycle.

Parameters
dtTime delta or sample count (operator-specific)

Implements MayaFlux::Nodes::Network::NetworkOperator.

Definition at line 122 of file PhysicsOperator.cpp.

123{
124 uint32_t expected = 0;
125 while (!m_access_token.compare_exchange_weak(expected, 1,
126 std::memory_order_acquire, std::memory_order_relaxed)) {
127 if (m_shutdown.load(std::memory_order_relaxed))
128 return;
129 expected = 0;
130 }
131
132 if (m_collections.empty()) {
133 m_access_token.store(0, std::memory_order_release);
134 return;
135 }
136
137 const float effective_dt = m_force_internal_dt ? m_internal_dt : dt;
138 apply_forces();
139 integrate(effective_dt);
142
143 for (auto& group : m_collections) {
144 group.collection->compute_frame();
145 }
146
147 m_access_token.store(0, std::memory_order_release);
148}
std::vector< CollectionGroup > m_collections

References apply_forces(), handle_boundary_conditions(), integrate(), m_access_token, m_collections, MayaFlux::Nodes::Network::GraphicsOperator::m_force_internal_dt, m_internal_dt, m_shutdown, and sync_to_point_collection().

+ Here is the call graph for this function: