16class ParticleSubsystem;
22 unsigned maxParticleCount = 100u;
23 unsigned initialEmissionCount = 0u;
24 unsigned periodicEmissionCount = 0u;
25 float periodicEmissionFrequency = 0.0f;
31 float lifetime = 5.0f;
32 Vector3 positionMin = Vector3::Zero();
33 Vector3 positionMax = Vector3::Zero();
34 float rotationMin = 0.0f;
35 float rotationMax = 0.0f;
36 float scaleMin = 1.0f;
37 float scaleMax = 1.0f;
43 Vector3 velocityMin = Vector3::Zero();
44 Vector3 velocityMax = Vector3::Zero();
45 float velocityOverTimeFactor = 0.0f;
46 float rotationMin = 0.0f;
47 float rotationMax = 0.0f;
48 float rotationOverTimeFactor = 0.0f;
49 float scaleOverTimeFactor = 0.0f;
70 m_texture{other.m_texture},
81 m_texture = other.m_texture;
82 m_info = other.m_info;
94 auto GetEntity()
const ->
Entity {
return m_self; }
108 static void RegisterSubsystem(graphics::ParticleSubsystem* subsystem)
110 s_subsystem = subsystem;
115 static inline graphics::ParticleSubsystem* s_subsystem =
nullptr;
121 void Release() noexcept;
Identifies an object in the registry.
Definition: Entity.h:18
static constexpr auto Null() noexcept
Construct a null Entity.
Definition: Entity.h:61
Component for creating particle effects.
Definition: ParticleEmitter.h:62
auto GetInfo() const noexcept -> const ParticleInfo &
Definition: ParticleEmitter.h:101
void SetInfo(const ParticleInfo &info)
void Emit(size_t count)
Emit count number of particles, saturating at maxParticleCount.
Describes particle emission behavior for a ParticleEmitter.
Definition: ParticleEmitter.h:21
Settings for a ParticleEmitter.
Definition: ParticleEmitter.h:54
Describes initial particle properties.
Definition: ParticleEmitter.h:30
Describes particle motion over time.
Definition: ParticleEmitter.h:42
A three component vector.
Definition: Vector.h:29
Definition: AssetViews.h:66