27 void update(
float dt,
Registry& registry, glm::vec3 camPos, glm::vec3 camForward);
33 void spawn(glm::vec3 pos,
float radius,
bool isFire =
false);
39 [[nodiscard]] uint32_t
count()
const {
return static_cast<uint32_t
>(
sorted_.size()); }
Fixed-capacity particle pool with O(1) swap-remove.
GPU-uploadable particle structs for all effect categories.
Shared ECS registry type alias for the game engine.
entt::registry Registry
Shared ECS registry type alias.
Definition Registry.hpp:11
Manages volumetric smoke billboard particles.
Definition SmokeEffect.hpp:20
const SmokeParticle * data() const
Definition SmokeEffect.hpp:38
ParticlePool< SmokeParticle, 1024 > pool_
Definition SmokeEffect.hpp:42
std::vector< SmokeParticle > sorted_
Back-to-front sorted copy for upload.
Definition SmokeEffect.hpp:43
void spawnTrailPuff(glm::vec3 pos, float radius)
Spawn a compact, short-lived smoke puff for rocket trails.
Definition SmokeEffect.cpp:51
void update(float dt, Registry ®istry, glm::vec3 camPos, glm::vec3 camForward)
Simulate particles, drive continuous emitters, and sort for rendering.
Definition SmokeEffect.cpp:68
void spawn(glm::vec3 pos, float radius, bool isFire=false)
Spawn a cluster of smoke puffs at pos with the given radius.
Definition SmokeEffect.cpp:30
static constexpr float k_upDrift
Upward drift speed (world units/s).
Definition SmokeEffect.hpp:45
uint32_t count() const
Definition SmokeEffect.hpp:39
Fixed-capacity particle pool with O(1) swap-remove.
Definition ParticlePool.hpp:22
Smoke / fire billboard (uses noise texture for volumetric look).
Definition ParticleTypes.hpp:76