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

◆ apply_forces()

void MayaFlux::Nodes::Network::PhysicsOperator::apply_forces ( )
private

Definition at line 465 of file PhysicsOperator.cpp.

466{
467 for (auto& group : m_collections) {
468 for (auto& state : group.physics_state) {
469 state.force += m_gravity * state.mass;
470 }
471 }
472
475 }
476
477 if (m_turbulence_strength > 0.001F) {
479 }
480
483 }
484
485 if (!m_bond_root.empty()) {
487 }
488
489 if (!m_force_fields.empty()) {
490 for (auto& group : m_collections) {
491 auto& points = group.collection->get_points();
492
493 for (size_t i = 0; i < points.size(); ++i) {
494 for (const auto& field : m_force_fields) {
495 group.physics_state[i].force += field(points[i].position);
496 }
497 }
498 }
499 }
500}
std::optional< glm::vec3 > position
Definition Decoder.cpp:93
std::vector< glm::vec2 > * points
std::vector< CollectionGroup > m_collections
std::vector< Kinesis::VectorField > m_force_fields
std::vector< uint32_t > m_bond_root
Empty when no bonds are adopted; see sync_bonds_from_claims.
void apply_bond_forces()
Pull each bonded particle toward its root with a spring.

References apply_attraction_forces(), apply_bond_forces(), apply_spatial_interactions(), apply_turbulence(), m_bond_root, m_collections, m_force_fields, m_gravity, m_has_attraction_point, m_interaction_radius, m_spatial_interactions_enabled, m_turbulence_strength, points, and position.

Referenced by process().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: