|
MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
|
| void MayaFlux::Nodes::Network::PhysicsOperator::sync_bonds_from_claims | ( | std::span< const uint32_t > | claimed_by | ) |
Adopt this cycle's GPU claim/absorption clustering as bonds.
| claimed_by | One entry per particle, global index order: entry i equals i if i is a cluster root, or the root's index if i was absorbed into it. Same shape as MutationClaimProcessor's mutation_claimed_by state field, since it is meant to be called directly with that field's readback. |
Bonded (non-root) particles are pulled toward their root each cycle by apply_bond_forces, a spring toward bond_rest_length rather than the root's own absorb_radius, so the CPU-simulated particle stays close to its cluster even on a cycle where the GPU claim graph (fully rebuilt from scratch every cycle, see ClaimInitProcessor) briefly finds no claim for it. Replaces any previously adopted bonds outright: there is no incremental merge, the whole table is the current cycle's snapshot.
Definition at line 578 of file PhysicsOperator.cpp.
References m_accreted_mass, m_bond_root, and m_bonds_enabled.
Referenced by MayaFlux::Buffers::ClaimAccumulateProcessor::processing_function().
Here is the caller graph for this function: