72 void Copy(
const STrailInfo& t)
74 CurrentPosition = t.CurrentPosition;
75 LastPosition = t.LastPosition;
76 CurrentColor = t.CurrentColor;
78 *Position = *t.Position;
82 class COMPONENT_API CParticleTrail :
public IParticleCallback
84 friend class CParticleTrailComponent;
151 CParticleTrail(
CGroup* group);
153 virtual ~CParticleTrail();
This is an object class used to set up the camera, including its position, viewing angle,...
Definition CCamera.h:70
The object class describes material information such as which shader it's associated with,...
Definition CMaterial.h:84
Represents a group of particles with shared settings, emitters, and a renderer.
Definition CGroup.h:132
Individual particle data structure.
Definition CParticle.h:65
Component for adding ribbon/trail effects to particles.
Definition CParticleTrailComponent.h:55
u32 m_trailCount
Current count of active trails.
Definition CParticleTrail.h:115
core::matrix4 m_world
Local-to-world transform.
Definition CParticleTrail.h:136
float m_emissionIntensity
Emission intensity multiplier.
Definition CParticleTrail.h:142
void setTexturePath(const char *path)
Loads ribbon texture by path.
void setWorld(const core::matrix4 &world)
Internal: sets world matrix.
Definition CParticleTrail.h:345
const core::vector3df & getUpVector()
Gets custom up vector.
Definition CParticleTrail.h:334
virtual void update(CCamera *camera)
Updates ribbon geometry based on particle history and camera position.
float m_length
Total trail length in units.
Definition CParticleTrail.h:112
const char * getTexturePath()
Gets ribbon texture path.
Definition CParticleTrail.h:286
bool isEmission()
Checks if emission is enabled.
Definition CParticleTrail.h:298
virtual void OnParticleUpdate(CParticle *particles, int num, CGroup *group, float dt)
Callback: records new particle positions into trails.
CMaterial * getMaterial()
Gets active material.
Definition CParticleTrail.h:180
bool isBillboard()
Checks if billboarding is enabled.
Definition CParticleTrail.h:322
void setEmission(bool b)
Enables/disables emission.
Definition CParticleTrail.h:292
void setCustomMaterial(CMaterial *material)
Sets custom material.
Definition CParticleTrail.h:240
std::wstring m_name
Friendly name.
Definition CParticleTrail.h:91
bool m_billboard
Whether the ribbon always faces the camera.
Definition CParticleTrail.h:145
void setWidth(float f)
Sets ribbon width.
Definition CParticleTrail.h:186
bool isDestroyedWhenParticleDead()
Checks death destruction policy.
Definition CParticleTrail.h:210
core::array< STrailInfo > m_trails
Active trails for live particles.
Definition CParticleTrail.h:94
CGroup * m_group
The group whose particles generate these trails.
Definition CParticleTrail.h:88
bool useCustomMaterial()
Checks if custom material is active.
Definition CParticleTrail.h:246
float getLength()
Gets max trail length.
Definition CParticleTrail.h:271
core::vector3df m_upVector
Custom up vector if billboarding is disabled.
Definition CParticleTrail.h:148
u32 m_maxSegmentCount
Max number of segments per trail.
Definition CParticleTrail.h:106
bool m_emission
Whether the trail has emission.
Definition CParticleTrail.h:139
void setDeadAlphaReduction(float a)
Sets fading speed for dead trails.
Definition CParticleTrail.h:228
IMeshBuffer * m_meshBuffer
Internal mesh buffer for the trail ribbon.
Definition CParticleTrail.h:100
void setLength(float l)
Sets max trail length.
void setSegmentLength(float f)
Sets segment separation distance.
Definition CParticleTrail.h:198
virtual void OnGroupDestroy()
Callback: handles parent group destruction.
bool m_useCustomMaterial
Whether to use custom material.
Definition CParticleTrail.h:133
void setUpVector(const core::vector3df &up)
Sets custom up vector for orientation.
Definition CParticleTrail.h:328
CMaterial * m_customMaterial
Optional custom material.
Definition CParticleTrail.h:130
std::string m_texturePath
Path to the ribbon texture.
Definition CParticleTrail.h:124
float getSegmentLength()
Gets segment separation distance.
Definition CParticleTrail.h:204
float getDeadAlphaReduction()
Gets fading speed for dead trails.
Definition CParticleTrail.h:222
void setEmissionIntensity(float f)
Sets emission intensity.
Definition CParticleTrail.h:304
virtual void OnParticleBorn(CParticle &p)
Callback: initializes trail for a new particle.
core::array< STrailInfo > m_deadTrails
Fading trails for dead particles.
Definition CParticleTrail.h:97
float m_width
Ribbon width.
Definition CParticleTrail.h:109
virtual void OnSwapParticleData(CParticle &p1, CParticle &p2)
Callback: swaps trail indices when particles are reordered.
void setTexture(ITexture *texture)
Directly sets ribbon texture.
bool m_destroyWhenParticleDead
Whether to kill the trail immediately when its particle dies.
Definition CParticleTrail.h:118
float m_deadAlphaReduction
Fading speed for dead trails.
Definition CParticleTrail.h:121
void setBillboard(bool b)
Enables/disables camera billboarding.
Definition CParticleTrail.h:316
void updateDeadTrail()
Internal: manages fading of dead trails.
void enableDestroyWhenParticleDead(bool b)
Configures death destruction policy.
Definition CParticleTrail.h:216
const char * getCustomMaterial()
Gets path to custom material.
Definition CParticleTrail.h:252
void enableCustomMaterial(bool b)
Enables/disables custom material.
Definition CParticleTrail.h:234
const wchar_t * getGroupName()
Gets name of linked group.
Definition CParticleTrail.h:260
float m_segmentLength
Distance between ribbon segments.
Definition CParticleTrail.h:103
CMaterial * m_material
Default material for the ribbon.
Definition CParticleTrail.h:127
IMeshBuffer * getMeshBuffer()
Gets raw access to trail mesh.
Definition CParticleTrail.h:174
void applyMaterial()
Updates material parameters in the mesh buffer.
float getEmissionIntensity()
Gets emission intensity.
Definition CParticleTrail.h:310
float getWidth()
Gets ribbon width.
Definition CParticleTrail.h:192
virtual void OnParticleDead(CParticle &p)
Callback: moves trail to dead list for fading or removes it.
Self reallocating template array (like stl vector) with additional features.
Definition irrArray.h:23
Struct for holding a mesh with a single material.
Definition IMeshBuffer.h:42
Interface of a Video Driver dependent Texture.
Definition ITexture.h:119
Class representing a 32 bit ARGB color.
Definition SColor.h:285
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
CMatrix4< f32 > matrix4
Typedef for f32 matrix.
Definition matrix4.h:2241
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.h:58
Definition CParticleTrail.h:38