Fixed-capacity particle pool with O(1) swap-remove.
GPU-uploadable particle structs for all effect categories.
Volumetric smoke billboard particle manager with back-to-front sorting.
Spawns shockwave ring + fireball + smoke cloud for rocket explosions.
Definition ExplosionEffect.hpp:16
void update(float dt)
Advance ring animations and tick deferred smoke timers.
Definition ExplosionEffect.cpp:29
void spawn(glm::vec3 pos, float blastRadius, SmokeEffect &smoke)
Spawn a full explosion at pos with given blast radius.
Definition ExplosionEffect.cpp:8
ParticlePool< BillboardParticle, 64 > ringPool_
Definition ExplosionEffect.hpp:34
const BillboardParticle * ringData() const
Definition ExplosionEffect.hpp:28
PendingSmoke pending_[k_maxPending]
Definition ExplosionEffect.hpp:46
int pendingCount_
Definition ExplosionEffect.hpp:47
uint32_t ringCount() const
Definition ExplosionEffect.hpp:29
static constexpr int k_maxPending
Definition ExplosionEffect.hpp:45
Manages volumetric smoke billboard particles.
Definition SmokeEffect.hpp:20
Single billboard particle (sparks, impact flash, shockwave ring).
Definition ParticleTypes.hpp:12
Deferred smoke or fire spawn scheduled after the initial explosion.
Definition ExplosionEffect.hpp:38
float delay
Seconds until spawn.
Definition ExplosionEffect.hpp:41
bool isFire
Definition ExplosionEffect.hpp:42
float radius
Definition ExplosionEffect.hpp:40
glm::vec3 pos
Definition ExplosionEffect.hpp:39
Fixed-capacity particle pool with O(1) swap-remove.
Definition ParticlePool.hpp:22