group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
SmokeEffect.hpp
Go to the documentation of this file.
1
3
4#pragma once
5
9
10#include <glm/glm.hpp>
11#include <vector>
12
20{
21public:
27 void update(float dt, Registry& registry, glm::vec3 camPos, glm::vec3 camForward);
28
33 void spawn(glm::vec3 pos, float radius, bool isFire = false);
34
36 void spawnTrailPuff(glm::vec3 pos, float radius);
37
38 [[nodiscard]] const SmokeParticle* data() const { return sorted_.data(); }
39 [[nodiscard]] uint32_t count() const { return static_cast<uint32_t>(sorted_.size()); }
40
41private:
43 std::vector<SmokeParticle> sorted_;
44
45 static constexpr float k_upDrift = 18.f;
46};
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 &registry, 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