MCPcopy Create free account
hub / github.com/defold/defold / ApplyAcceleration

Function ApplyAcceleration

engine/particle/src/particle.cpp:1439–1453  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1437 }
1438
1439 void ApplyAcceleration(dmArray<Particle>& particles, Property* modifier_properties, const Quat& rotation, float scale, float emitter_t, float dt)
1440 {
1441 uint32_t particle_count = particles.Size();
1442 Vector3 acc_step = rotate(rotation, ACCELERATION_LOCAL_DIR) * dt * scale;
1443 const Property& magnitude_property = modifier_properties[MODIFIER_KEY_MAGNITUDE];
1444 uint32_t segment_index = dmMath::Min((uint32_t)(emitter_t * PROPERTY_SAMPLE_COUNT), PROPERTY_SAMPLE_COUNT - 1);
1445 float magnitude;
1446 SAMPLE_PROP(magnitude_property.m_Segments[segment_index], emitter_t, magnitude)
1447 float mag_spread = magnitude_property.m_Spread;
1448 for (uint32_t i = 0; i < particle_count; ++i)
1449 {
1450 Particle* particle = &particles[i];
1451 particle->SetVelocity(particle->GetVelocity() + acc_step * (magnitude + mag_spread * particle->GetSpreadFactor()));
1452 }
1453 }
1454
1455 void ApplyDrag(dmArray<Particle>& particles, Property* modifier_properties, dmParticleDDF::Modifier* modifier_ddf, const Quat& rotation, float emitter_t, float dt)
1456 {

Callers 1

SimulateFunction · 0.85

Calls 3

MinFunction · 0.85
rotateFunction · 0.50
SizeMethod · 0.45

Tested by

no test coverage detected