MayaFlux 1.0.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 124 of file PhysicsOperator.cpp.

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