18class ParticleSubsystem;
24 unsigned maxParticleCount = 100u;
25 unsigned initialEmissionCount = 0u;
26 unsigned periodicEmissionCount = 0u;
27 float periodicEmissionFrequency = 0.0f;
33 float lifetime = 5.0f;
34 Vector3 positionMin = Vector3::Zero();
35 Vector3 positionMax = Vector3::Zero();
36 float rotationMin = 0.0f;
37 float rotationMax = 0.0f;
38 float scaleMin = 1.0f;
39 float scaleMax = 1.0f;
45 Vector3 velocityMin = Vector3::Zero();
46 Vector3 velocityMax = Vector3::Zero();
47 float velocityOverTimeFactor = 0.0f;
48 float rotationMin = 0.0f;
49 float rotationMax = 0.0f;
50 float rotationOverTimeFactor = 0.0f;
51 float scaleOverTimeFactor = 0.0f;
82 m_texture{other.m_texture},
93 m_texture = other.m_texture;
94 m_info = other.m_info;
106 auto GetEntity()
const ->
Entity {
return m_self; }
120 static void RegisterSubsystem(graphics::ParticleSubsystem* subsystem)
122 s_subsystem = subsystem;
127 static inline graphics::ParticleSubsystem* s_subsystem =
nullptr;
133 void Release() noexcept;
CurveType
Common types of curves.
Definition: Curve.h:13
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:74
auto GetInfo() const noexcept -> const ParticleInfo &
Definition: ParticleEmitter.h:113
void SetInfo(const ParticleInfo &info)
void Emit(size_t count)
Emit count number of particles, saturating at maxParticleCount.
Gradient between two Colors.
Definition: Color.h:45
Describes particle color properties.
Definition: ParticleEmitter.h:56
CurveType alphaCurve
curve describing how RGB values change over time
Definition: ParticleEmitter.h:60
Gradient end
gradient initial color is randomly selected from
Definition: ParticleEmitter.h:58
CurveType colorCurve
gradient final color is randomly selected from
Definition: ParticleEmitter.h:59
Describes particle emission behavior for a ParticleEmitter.
Definition: ParticleEmitter.h:23
Settings for a ParticleEmitter.
Definition: ParticleEmitter.h:65
Describes initial particle properties.
Definition: ParticleEmitter.h:32
Describes particle motion over time.
Definition: ParticleEmitter.h:44
A three component vector.
Definition: Vector.h:29
Definition: AssetViews.h:66