group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
ImpactEffect.hpp
Go to the documentation of this file.
1
3
4#pragma once
5
9
10#include <glm/glm.hpp>
11
14{
15public:
17 void update(float dt);
18
24 void spawn(glm::vec3 pos, glm::vec3 normal, SurfaceType surface, float frameDt);
25
26 [[nodiscard]] const BillboardParticle* data() const { return pool_.rawData(); }
27 [[nodiscard]] uint32_t count() const { return pool_.liveCount(); }
28
29private:
31};
Fixed-capacity particle pool with O(1) swap-remove.
GPU-uploadable particle structs for all effect categories.
Projectile component and weapon/surface type enumerations.
SurfaceType
Surface material hit by a projectile — drives impact effect parameters.
Definition Projectile.hpp:13
Spawns spark bursts + impact flash quads on hit events.
Definition ImpactEffect.hpp:14
uint32_t count() const
Definition ImpactEffect.hpp:27
void update(float dt)
Advance spark physics and fade alpha over time.
Definition ImpactEffect.cpp:88
void spawn(glm::vec3 pos, glm::vec3 normal, SurfaceType surface, float frameDt)
Spawn 8-16 sparks + 1 flash at the impact point.
Definition ImpactEffect.cpp:49
const BillboardParticle * data() const
Definition ImpactEffect.hpp:26
Single billboard particle (sparks, impact flash, shockwave ring).
Definition ParticleTypes.hpp:12
Fixed-capacity particle pool with O(1) swap-remove.
Definition ParticlePool.hpp:22
const T * rawData() const
Pointer to the contiguous live data for GPU upload.
Definition ParticlePool.hpp:48
uint32_t liveCount() const
Definition ParticlePool.hpp:49