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