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
35 [[nodiscard]] const SmokeParticle* data() const { return sorted_.data(); }
36 [[nodiscard]] uint32_t count() const { return static_cast<uint32_t>(sorted_.size()); }
37
38private:
40 std::vector<SmokeParticle> sorted_;
41
42 static constexpr float k_upDrift = 18.f;
43};
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:35
void update(float dt, Registry &registry, glm::vec3 camPos, glm::vec3 camForward)
Simulate particles, drive continuous emitters, and sort for rendering.
Definition SmokeEffect.cpp:53
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
uint32_t count() const
Definition SmokeEffect.hpp:36
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:67