MCPcopy Create free account
hub / github.com/Prograda/Skybolt / createParticle

Method createParticle

src/Skybolt/SkyboltSim/Particles/ParticleSystem.cpp:52–68  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50int ParticleEmitter::mNextParticleId = 0;
51
52Particle ParticleEmitter::createParticle(const Vector3& emitterVelocity, float timeOffset) const
53{
54 float density = getAtmosphericDensity();
55 float alpha = glm::mix(mParams.zeroAtmosphericDensityAlpha, mParams.earthSeaLevelAtmosphericDensityAlpha, density / 1.225);
56
57 Vector3 velocityRelEmitter = calculateParticleVelocityRelEmitter();
58 Particle particle;
59 particle.guid = mNextParticleId++;
60 particle.position = mParams.positionable->getPosition() + velocityRelEmitter * double(timeOffset);
61 particle.velocity = emitterVelocity + velocityRelEmitter;
62 particle.age = 0;
63 particle.radius = mParams.radius;
64 particle.initialAlpha = alpha * mEmissionAlphaMultiplier;
65 particle.alpha = particle.initialAlpha;
66 particle.temperatureDegreesCelcius = mParams.temperatureDegreesCelcius;
67 return particle;
68}
69
70Vector3 ParticleEmitter::calculateParticleVelocityRelEmitter() const
71{

Callers

nothing calls this directly

Calls 2

getAtmosphericDensityFunction · 0.85
getPositionMethod · 0.45

Tested by

no test coverage detected