47 class COMPONENT_API CSubGroup :
49 public IParticleCallback
75 CSubGroup(CGroup* group);
Definition CObjectSerializable.h:36
Individual particle data structure.
Definition CParticle.h:65
A particle group that spawns particles from the positions of particles in a parent group.
Definition CSubGroup.h:50
virtual void OnSwapParticleData(CParticle &p1, CParticle &p2)
Callback when parent particle data is swapped in the array.
core::vector3df m_direction
Spawn direction (derived from parent velocity).
Definition CSubGroup.h:61
virtual void OnGroupDestroy()
Callback when the parent group is destroyed.
core::vector3df m_position
Spawn position (derived from parent particle).
Definition CSubGroup.h:59
core::quaternion m_rotate
Spawn rotation (derived from parent orientation).
Definition CSubGroup.h:63
bool m_followParentTransform
Whether particles should follow the parent's current position every frame.
Definition CSubGroup.h:66
void syncParentParams(bool life, bool color)
Configures synchronization of life and color from parent.
ISystem * m_parentSystem
System that syncs this group's particles to parent particles.
Definition CSubGroup.h:56
void initParticles()
Initializes internal born data for all emitters based on current parent particles.
virtual CObjectSerializable * createSerializable()
Creates a serializable object for property editing or saving.
virtual core::vector3df getTransformVector(const core::vector3df &vec)
Transforms vector from parent local space to world space.
void setEmitterWorldOrientation(bool b)
Sets emitter orientation mode.
Definition CSubGroup.h:114
CGroup * m_parentGroup
Pointer to the parent particle group.
Definition CSubGroup.h:53
virtual void updateLaunchEmitter()
Internal: updates launch emitters based on parent particles.
CGroup * getParentGroup()
Gets the parent group.
Definition CSubGroup.h:123
virtual void bornParticle()
Internal: spawns new particles at parent positions.
bool m_syncColor
Whether to sync child color with parent.
Definition CSubGroup.h:72
bool m_emitterWorldOrientation
Whether emitter orientation should be in world space or relative to parent.
Definition CSubGroup.h:68
virtual core::vector3df getTransformPosition(const core::vector3df &pos)
Transforms position from parent local space to world space.
void setFollowParentTransform(bool b)
Enables/disables following the parent's movement.
Definition CSubGroup.h:107
virtual void OnParticleBorn(CParticle &p)
Callback when a parent particle is born.
virtual void loadSerializable(CObjectSerializable *object)
Loads properties from a serializable object.
bool m_syncLife
Whether to sync child age/life with parent.
Definition CSubGroup.h:70
virtual void OnParticleDead(CParticle &p)
Callback when a parent particle dies.
Base interface for particle systems that update particle data.
Definition ISystem.h:41
Quaternion class for representing rotations.
Definition quaternion.h:27
Everything in the Skylicht Engine. You can start by looking at the topics.
Definition AudioDebugLog.h:29
vector3d< f32 > vector3df
Typedef for a f32 3d vector.
Definition vector3d.h:445