![]() |
CRM64Pro GDK v0.19.0
A free cross-platform game development kit built on top of SDL 3.0
|
Particle emitter object class. More...
Particle emitter object class.
ParticleEmitter controls the full state of a particle effect: emission, simulation, rendering and storage. Objects are owned by ParticleMgr and must be obtained through ParticleMgr::get().
Public Member Functions | |
| bool | info (Sint32 iMode=0) override |
| Request ParticleEmitter information. | |
| const string & | getName () const override |
| Get the emitter name. | |
| Sint32 | getID () const override |
| Get the emitter handle. | |
| bool | play () |
| Start or resume particle emission. | |
| bool | pause () |
| Pause particle updates without clearing live particles. | |
| bool | stop () |
| Stop particle updates and emission. | |
| bool | reset () |
| Clear particles and restart the emitter. | |
| bool | clear () |
| Remove all live particles. | |
| Sint32 | burst (Sint32 iCount) |
| Emit a fixed number of particles immediately. | |
| eGeneralStatus | status () const |
| Get current emitter status. | |
| bool | setVisible (bool bVisible) |
| Set emitter visibility. | |
| bool | isVisible () const |
| Check emitter visibility. | |
| bool | setVisual (eParticleVisual eVisual, Sint32 idRes=0, Sint32 iAnim=-1) |
| Set particle visual type and optional image/sprite resource. | |
| bool | setBlendMode (SDL_BlendMode bmValue) |
| Set particle blend mode. | |
| bool | setGlowRender (bool bEnabled, float fIntensity=1.0f) |
| Enable additive glow rendering for supported particle visuals. | |
| bool | setSpriteAnimation (eParticleSpriteAnimation eMode) |
| Set Sprite particle frame selection mode. | |
| bool | setBoundsEnabled (bool bEnabled) |
| Enable or disable cached emitter bounds. | |
| bool | setShape (eParticleEmitterShape eShape, float fWidth=0.0f, float fHeight=0.0f) |
| Set emitter spawn shape. | |
| bool | setEmissionRate (float fParticlesPerSec) |
| Set continuous emission rate. | |
| bool | setEmissionDistance (float fDistance) |
| Set movement-distance emission spacing. | |
| bool | setMaxParticles (Sint32 iMaxParticles) |
| Set maximum live particle count. | |
| bool | setDuration (float fSeconds) |
| Set emission duration in seconds; negative means unlimited. | |
| bool | setLoop (bool bLoop) |
| Enable or disable duration looping. | |
| bool | setLifeSpan (float fMinSec, float fMaxSec) |
| Set particle lifetime range in seconds. | |
| bool | setDirection (float fAngleDeg, float fSpreadDeg) |
| Set emission direction and angular spread in degrees. | |
| bool | setDirectionMode (eParticleDirectionMode eMode) |
| Set initial velocity direction mode. | |
| bool | setSpeed (float fMinSpeed, float fMaxSpeed) |
| Set particle speed range. | |
| bool | setVelocityLimit (float fMaxSpeed) |
| Set the maximum particle velocity magnitude. | |
| bool | setVelocityInheritance (float fAmount) |
| Set inherited emitter movement velocity. | |
| bool | setPhysics (float fGravityX, float fGravityY, float fDamping=0.0f) |
| Set gravity and damping. | |
| bool | setAttraction (float fStrength, float fRadius=0.0f, float fFalloff=0.0f) |
| Set attraction toward emitter center. | |
| bool | setOrbit (float fStrength, float fRadius=0.0f, float fFalloff=0.0f) |
| Set orbit force around emitter center. | |
| bool | setCollision (SceneLayerTile *pTileLayer, eParticleCollisionMode eMode=PCM_BOUNCE, float fBounciness=0.5f) |
| Set tile-layer collision behavior and runtime layer binding. | |
| bool | setCollisionMode (eParticleCollisionMode eMode, float fBounciness=0.5f) |
| Set persistent collision behavior. | |
| bool | setCollisionLayer (SceneLayerTile *pTileLayer) |
| Bind the runtime collision tile layer. | |
| bool | setColorKeys (const vector< ParticleColorKey > &vKeys) |
| Set color ramp keys. | |
| bool | setTintPalette (const vector< SDL_Color > &vColors) |
| Set random tint palette. | |
| const vector< SDL_Color > & | getTintPalette () const |
| Get random tint palette. | |
| bool | setScaleRamp (float fStartScale, float fEndScale) |
| Set scale interpolation from birth to death. | |
| bool | setScaleKeys (const vector< ParticleScaleKey > &vKeys) |
| Set scale ramp keys. | |
| bool | setRotation (float fStartAngle, float fSpinVelocity) |
| Set initial angle and spin velocity. | |
| bool | setStretch (float fAmount, bool bAlignToVelocity=true) |
| Set stretch amount. | |
| bool | setTurbulence (float fStrength) |
| Set random velocity perturbation strength. | |
| bool | setSimulationScale (float fScale) |
| Set emitter simulation speed. | |
| bool | setWarmUp (float fSeconds) |
| Set fresh-start simulation warm-up time. | |
| bool | setLocalSpace (bool bLocalSpace) |
| Select world-space or emitter-local particle movement. | |
| bool | setDrawOrder (eParticleDrawOrder eOrder) |
| Set particle rendering order. | |
| bool | setBursts (const vector< ParticleBurst > &vBursts) |
| Set timed particle bursts. | |
| bool | setSubEmitters (const vector< ParticleSubEmitter > &vSubEmitters) |
| Set particle-triggered sub-emitters. | |
| bool | applyPreset (eParticleEffectPreset ePreset) |
| Apply a built-in particle preset. | |
| bool | setPosition (float fX, float fY) |
| Set emitter world position. | |
| bool | teleport (float fX, float fY) |
| Move the emitter without producing distance emission or inherited movement velocity. | |
| bool | setSeed (Uint32 iSeed) |
| Set deterministic random seed. | |
| float | getX () const |
| Get emitter X position. | |
| float | getY () const |
| Get emitter Y position. | |
| Sint32 | getLiveCount () const |
| Get current live particle count. | |
| float | getEmissionRate () const |
| Get continuous emission rate. | |
| Sint32 | getMaxParticles () const |
| Get maximum live particle count. | |
| bool | getVisual (eParticleVisual *eVisual, Sint32 *idRes, Sint32 *iAnim) const |
| Get particle visual configuration. | |
| SDL_BlendMode | getBlendMode () const |
| Get particle blend mode. | |
| bool | getGlowRender (float *fIntensity=nullptr) const |
| Get additive glow rendering configuration. | |
| eParticleSpriteAnimation | getSpriteAnimation () const |
| Get Sprite particle frame selection mode. | |
| bool | getBoundsEnabled () const |
| Check if cached emitter bounds are enabled. | |
| bool | getBounds (SDL_FRect *pBounds) const |
| Get cached emitter bounds. | |
| bool | getShape (eParticleEmitterShape *eShape, float *fWidth, float *fHeight) const |
| Get emitter spawn shape. | |
| float | getEmissionDistance () const |
| Get movement-distance emission spacing. | |
| float | getDuration () const |
| Get emission duration. | |
| bool | getLoop () const |
| Get duration looping mode. | |
| bool | getLifeSpan (float *fMinSec, float *fMaxSec) const |
| Get particle lifetime range. | |
| bool | getDirection (float *fAngleDeg, float *fSpreadDeg) const |
| Get emission direction and spread. | |
| eParticleDirectionMode | getDirectionMode () const |
| Get initial velocity direction mode. | |
| bool | getSpeed (float *fMinSpeed, float *fMaxSpeed) const |
| Get particle speed range. | |
| float | getVelocityLimit () const |
| Get maximum particle velocity magnitude. | |
| float | getVelocityInheritance () const |
| Get inherited emitter movement velocity. | |
| bool | getPhysics (float *fGravityX, float *fGravityY, float *fDamping) const |
| Get gravity and damping configuration. | |
| bool | getAttraction (float *fStrength, float *fRadius, float *fFalloff) const |
| Get attraction configuration. | |
| bool | getOrbit (float *fStrength, float *fRadius, float *fFalloff) const |
| Get orbit configuration. | |
| bool | getCollision (SceneLayerTile **ppTileLayer, eParticleCollisionMode *eMode, float *fBounciness) const |
| Get collision configuration. | |
| SceneLayerTile * | getCollisionLayer () const |
| Get the runtime collision tile layer. | |
| const vector< ParticleColorKey > & | getColorKeys () const |
| Get color ramp keys. | |
| const vector< ParticleScaleKey > & | getScaleKeys () const |
| Get scale ramp keys. | |
| bool | getRotation (float *fStartAngle, float *fSpinVelocity) const |
| Get initial angle and spin velocity. | |
| bool | getStretch (float *fAmount, bool *bAlignToVelocity) const |
| Get stretch configuration. | |
| float | getTurbulence () const |
| Get random velocity perturbation strength. | |
| float | getSimulationScale () const |
| Get emitter simulation speed. | |
| float | getWarmUp () const |
| Get fresh-start simulation warm-up time. | |
| bool | getLocalSpace () const |
| Get local-space simulation mode. | |
| eParticleDrawOrder | getDrawOrder () const |
| Get particle rendering order. | |
| const vector< ParticleBurst > & | getBursts () const |
| Get timed particle bursts. | |
| const vector< ParticleSubEmitter > & | getSubEmitters () const |
| Get particle-triggered sub-emitters. | |
| eParticleEffectPreset | getPreset () const |
| Get applied built-in particle preset. | |
| Uint32 | getSeed () const |
| Get deterministic random seed. | |
| bool | update (float fDeltaTime) |
| Advance emitter simulation. | |
| Sint32 | render (Sint32 idRes=0) |
| Render live particles. | |
| Sint32 | save (const string &sCDCFile, const string &sResourceName="") |
| Save emitter to a CDC file. | |
| Sint32 | save (Sint32 idCDC, const string &sResourceName="") |
| Save emitter to an opened CDC archive. | |
|
override |
Request ParticleEmitter information.
Writes information to the default log.
| iMode | Reserved for future use. Pass 0. |
|
override |
Get the emitter name.
|
override |
Get the emitter handle.
| bool CRM64Pro::ParticleEmitter::play | ( | ) |
Start or resume particle emission.
| bool CRM64Pro::ParticleEmitter::pause | ( | ) |
Pause particle updates without clearing live particles.
| bool CRM64Pro::ParticleEmitter::stop | ( | ) |
| bool CRM64Pro::ParticleEmitter::reset | ( | ) |
Clear particles and restart the emitter.
| bool CRM64Pro::ParticleEmitter::clear | ( | ) |
Remove all live particles.
| Sint32 CRM64Pro::ParticleEmitter::burst | ( | Sint32 | iCount | ) |
Emit a fixed number of particles immediately.
| iCount | Number of particles to emit. Must be greater than 0. |
| eGeneralStatus CRM64Pro::ParticleEmitter::status | ( | ) | const |
Get current emitter status.
| bool CRM64Pro::ParticleEmitter::setVisible | ( | bool | bVisible | ) |
Set emitter visibility.
| bVisible | true to render the emitter, false to skip rendering while still allowing updates. |
| bool CRM64Pro::ParticleEmitter::isVisible | ( | ) | const |
Check emitter visibility.
| bool CRM64Pro::ParticleEmitter::setVisual | ( | eParticleVisual | eVisual, |
| Sint32 | idRes = 0, | ||
| Sint32 | iAnim = -1 ) |
Set particle visual type and optional image/sprite resource.
| eVisual | Visual rendering mode. Check ::eParticleVisual for further information. |
| idRes | Optional Image or Sprite id used by ::PV_IMAGE and ::PV_SPRITE. Use 0 for primitive visual modes. |
| iAnim | Sprite animation index used by sprite visual modes. Use -1 to keep the Sprite current animation. Default is -1. |
| bool CRM64Pro::ParticleEmitter::setBlendMode | ( | SDL_BlendMode | bmValue | ) |
Set particle blend mode.
| bmValue | SDL blend mode used when rendering particles. |
| bool CRM64Pro::ParticleEmitter::setGlowRender | ( | bool | bEnabled, |
| float | fIntensity = 1.0f ) |
Enable additive glow rendering for supported particle visuals.
| bEnabled | true to render supported visuals through GFX glow helpers, false to use the standard particle renderer. |
| fIntensity | Glow brightness multiplier clamped to [0.0, 1.0]. Default is 1.0. |
| bool CRM64Pro::ParticleEmitter::setSpriteAnimation | ( | eParticleSpriteAnimation | eMode | ) |
Set Sprite particle frame selection mode.
| eMode | ::PSA_SHARED keeps the current shared-Sprite-frame behavior. ::PSA_RANDOM_OFFSET assigns one random frame offset per particle at spawn. |
| bool CRM64Pro::ParticleEmitter::setBoundsEnabled | ( | bool | bEnabled | ) |
Enable or disable cached emitter bounds.
| bEnabled | true to compute bounds during update, false to skip bounds work. |
| bool CRM64Pro::ParticleEmitter::setShape | ( | eParticleEmitterShape | eShape, |
| float | fWidth = 0.0f, | ||
| float | fHeight = 0.0f ) |
Set emitter spawn shape.
| eShape | Emitter shape. Check ::eParticleEmitterShape for further information. |
| fWidth | Shape width in pixels in the range [0, 1000000]. Default is 0. |
| fHeight | Shape height in pixels in the range [0, 1000000]. Used by rectangle and ellipse emitters; ignored by circle and ring emitters. Default is 0. |
| bool CRM64Pro::ParticleEmitter::setEmissionRate | ( | float | fParticlesPerSec | ) |
Set continuous emission rate.
| fParticlesPerSec | Number of particles emitted per second in the range [0, 1000000]. Use 0 to disable continuous emission. |
| bool CRM64Pro::ParticleEmitter::setEmissionDistance | ( | float | fDistance | ) |
Set movement-distance emission spacing.
| fDistance | Distance in pixels between emissions. Use 0 to disable distance emission. |
| bool CRM64Pro::ParticleEmitter::setMaxParticles | ( | Sint32 | iMaxParticles | ) |
Set maximum live particle count.
| iMaxParticles | Maximum live particle count in the range [1, 65536]. |
| bool CRM64Pro::ParticleEmitter::setDuration | ( | float | fSeconds | ) |
Set emission duration in seconds; negative means unlimited.
| fSeconds | Emission duration in seconds in the range [0, 86400]. Positive values smaller than 1/4096 second are rejected. Use a negative value for unlimited duration. |
| bool CRM64Pro::ParticleEmitter::setLoop | ( | bool | bLoop | ) |
Enable or disable duration looping.
| bLoop | true to restart duration-limited emission automatically, false to stop at the end. |
| bool CRM64Pro::ParticleEmitter::setLifeSpan | ( | float | fMinSec, |
| float | fMaxSec ) |
Set particle lifetime range in seconds.
| fMinSec | Minimum particle lifetime in seconds. Must be greater than 0. |
| fMaxSec | Maximum particle lifetime in seconds. Must be greater than or equal to fMinSec and no greater than 86400. |
| bool CRM64Pro::ParticleEmitter::setDirection | ( | float | fAngleDeg, |
| float | fSpreadDeg ) |
Set emission direction and angular spread in degrees.
| fAngleDeg | Center direction in degrees. |
| fSpreadDeg | Random angular spread in degrees around fAngleDeg. Must be greater than or equal to 0. |
| bool CRM64Pro::ParticleEmitter::setDirectionMode | ( | eParticleDirectionMode | eMode | ) |
Set initial velocity direction mode.
| eMode | Fixed configured direction or radial direction from the emitter center. |
| bool CRM64Pro::ParticleEmitter::setSpeed | ( | float | fMinSpeed, |
| float | fMaxSpeed ) |
Set particle speed range.
| fMinSpeed | Minimum start speed in pixels per second. Must be greater than or equal to 0. |
| fMaxSpeed | Maximum start speed in pixels per second. Must be greater than or equal to fMinSpeed. |
| bool CRM64Pro::ParticleEmitter::setVelocityLimit | ( | float | fMaxSpeed | ) |
Set the maximum particle velocity magnitude.
| fMaxSpeed | Maximum speed in pixels per second. Use 0 to disable velocity limiting. |
| bool CRM64Pro::ParticleEmitter::setVelocityInheritance | ( | float | fAmount | ) |
Set inherited emitter movement velocity.
| fAmount | Emitter velocity multiplier added to new particles. Must be greater than or equal to 0. Default is 0. |
| bool CRM64Pro::ParticleEmitter::setPhysics | ( | float | fGravityX, |
| float | fGravityY, | ||
| float | fDamping = 0.0f ) |
Set gravity and damping.
| fGravityX | Horizontal acceleration in pixels per second squared. |
| fGravityY | Vertical acceleration in pixels per second squared. |
| fDamping | Velocity damping factor. Must be greater than or equal to 0. Default is 0. |
| bool CRM64Pro::ParticleEmitter::setAttraction | ( | float | fStrength, |
| float | fRadius = 0.0f, | ||
| float | fFalloff = 0.0f ) |
Set attraction toward emitter center.
| fStrength | Attraction strength. Positive values pull particles toward the emitter center; negative values repel. |
| fRadius | Effective radius in pixels. Use 0 for unlimited radius. Default is 0. |
| fFalloff | Falloff exponent. Use 0 for no falloff. Default is 0. |
| bool CRM64Pro::ParticleEmitter::setOrbit | ( | float | fStrength, |
| float | fRadius = 0.0f, | ||
| float | fFalloff = 0.0f ) |
Set orbit force around emitter center.
| fStrength | Orbit strength. Positive and negative values rotate in opposite directions. |
| fRadius | Effective radius in pixels. Use 0 for unlimited radius. Default is 0. |
| fFalloff | Falloff exponent. Use 0 for no falloff. Default is 0. |
| bool CRM64Pro::ParticleEmitter::setCollision | ( | SceneLayerTile * | pTileLayer, |
| eParticleCollisionMode | eMode = PCM_BOUNCE, | ||
| float | fBounciness = 0.5f ) |
Set tile-layer collision behavior and runtime layer binding.
| pTileLayer | Borrowed Scene tile-layer pointer used for collision checks, or nullptr to leave collision configured but inactive. CRM64Pro does not take ownership. The pointer must remain valid until it is replaced, unbound with setCollisionLayer(nullptr), or this emitter is closed. |
| eMode | Collision behavior. Check ::eParticleCollisionMode for further information. Default is ::PCM_BOUNCE. |
| fBounciness | Velocity multiplier used by ::PCM_BOUNCE. Must be greater than or equal to 0. Default is 0.5. |
| bool CRM64Pro::ParticleEmitter::setCollisionMode | ( | eParticleCollisionMode | eMode, |
| float | fBounciness = 0.5f ) |
Set persistent collision behavior.
| eMode | Collision behavior persisted in CDC data. Use ::PCM_NONE to disable collision. |
| fBounciness | Velocity multiplier used by ::PCM_BOUNCE. Must be greater than or equal to 0. Default is 0.5. |
| bool CRM64Pro::ParticleEmitter::setCollisionLayer | ( | SceneLayerTile * | pTileLayer | ) |
Bind the runtime collision tile layer.
| pTileLayer | Borrowed Scene tile-layer pointer used for collision checks, or nullptr to unbind it. CRM64Pro does not take ownership. The pointer must remain valid until it is replaced, unbound, or this emitter is closed. |
| bool CRM64Pro::ParticleEmitter::setColorKeys | ( | const vector< ParticleColorKey > & | vKeys | ) |
Set color ramp keys.
| vKeys | Color keys used to interpolate particle color over lifetime. Pass an empty vector to restore the default white ramp. |
| bool CRM64Pro::ParticleEmitter::setTintPalette | ( | const vector< SDL_Color > & | vColors | ) |
Set random tint palette.
| vColors | Tint colors used for per-particle random color variation. Pass an empty vector to restore the single white default. |
| const vector< SDL_Color > & CRM64Pro::ParticleEmitter::getTintPalette | ( | ) | const |
Get random tint palette.
| bool CRM64Pro::ParticleEmitter::setScaleRamp | ( | float | fStartScale, |
| float | fEndScale ) |
Set scale interpolation from birth to death.
| fStartScale | Particle scale at birth in the range [0, 10000]. Zero-scale particles are not rendered. |
| fEndScale | Particle scale at death in the range [0, 10000]. Zero-scale particles are not rendered. |
| bool CRM64Pro::ParticleEmitter::setScaleKeys | ( | const vector< ParticleScaleKey > & | vKeys | ) |
Set scale ramp keys.
| vKeys | Scale keys interpolated over particle lifetime. Pass an empty vector to restore the default scale ramp. |
| bool CRM64Pro::ParticleEmitter::setRotation | ( | float | fStartAngle, |
| float | fSpinVelocity ) |
Set initial angle and spin velocity.
| fStartAngle | Initial render angle in degrees. |
| fSpinVelocity | Angular velocity in degrees per second. |
| bool CRM64Pro::ParticleEmitter::setStretch | ( | float | fAmount, |
| bool | bAlignToVelocity = true ) |
Set stretch amount.
With bAlignToVelocity enabled, rectangle, line, image and sprite visuals align to the true velocity angle.
| fAmount | Stretch multiplier. Must be greater than or equal to 0. |
| bAlignToVelocity | true to align supported visuals to the particle velocity angle. Default is true. |
| bool CRM64Pro::ParticleEmitter::setTurbulence | ( | float | fStrength | ) |
Set random velocity perturbation strength.
| fStrength | Random turbulence strength in pixels per second. Must be greater than or equal to 0. |
| bool CRM64Pro::ParticleEmitter::setSimulationScale | ( | float | fScale | ) |
Set emitter simulation speed.
| fScale | Simulation time multiplier. Must be greater than or equal to 0. Use 0 to freeze simulation without changing status. |
| bool CRM64Pro::ParticleEmitter::setWarmUp | ( | float | fSeconds | ) |
| bool CRM64Pro::ParticleEmitter::setLocalSpace | ( | bool | bLocalSpace | ) |
Select world-space or emitter-local particle movement.
| bLocalSpace | true to move existing particles with the emitter, false to leave them in world space. |
| bool CRM64Pro::ParticleEmitter::setDrawOrder | ( | eParticleDrawOrder | eOrder | ) |
Set particle rendering order.
| eOrder | Storage order or normalized-age sorting mode. |
| bool CRM64Pro::ParticleEmitter::setBursts | ( | const vector< ParticleBurst > & | vBursts | ) |
Set timed particle bursts.
| vBursts | Timed bursts fired when the emitter timeline crosses each entry. Pass an empty vector to disable timed bursts. |
| bool CRM64Pro::ParticleEmitter::setSubEmitters | ( | const vector< ParticleSubEmitter > & | vSubEmitters | ) |
Set particle-triggered sub-emitters.
| vSubEmitters | Sub-emitter definitions. Pass an empty vector to disable sub-emission. |
| bool CRM64Pro::ParticleEmitter::applyPreset | ( | eParticleEffectPreset | ePreset | ) |
Apply a built-in particle preset.
| ePreset | Preset identifier. Check ::eParticleEffectPreset for further information. |
| bool CRM64Pro::ParticleEmitter::setPosition | ( | float | fX, |
| float | fY ) |
Set emitter world position.
| fX | Horizontal position in pixels in the range [-1000000000, 1000000000]. |
| fY | Vertical position in pixels in the range [-1000000000, 1000000000]. |
| bool CRM64Pro::ParticleEmitter::teleport | ( | float | fX, |
| float | fY ) |
Move the emitter without producing distance emission or inherited movement velocity.
| fX | Horizontal destination in pixels. |
| fY | Vertical destination in pixels. |
| bool CRM64Pro::ParticleEmitter::setSeed | ( | Uint32 | iSeed | ) |
Set deterministic random seed.
| iSeed | Seed value used by the emitter random generator. |
| float CRM64Pro::ParticleEmitter::getX | ( | ) | const |
Get emitter X position.
| float CRM64Pro::ParticleEmitter::getY | ( | ) | const |
Get emitter Y position.
| Sint32 CRM64Pro::ParticleEmitter::getLiveCount | ( | ) | const |
Get current live particle count.
| float CRM64Pro::ParticleEmitter::getEmissionRate | ( | ) | const |
Get continuous emission rate.
| Sint32 CRM64Pro::ParticleEmitter::getMaxParticles | ( | ) | const |
Get maximum live particle count.
| bool CRM64Pro::ParticleEmitter::getVisual | ( | eParticleVisual * | eVisual, |
| Sint32 * | idRes, | ||
| Sint32 * | iAnim ) const |
| SDL_BlendMode CRM64Pro::ParticleEmitter::getBlendMode | ( | ) | const |
Get particle blend mode.
| bool CRM64Pro::ParticleEmitter::getGlowRender | ( | float * | fIntensity = nullptr | ) | const |
Get additive glow rendering configuration.
| fIntensity | Optional output glow brightness multiplier. |
| eParticleSpriteAnimation CRM64Pro::ParticleEmitter::getSpriteAnimation | ( | ) | const |
| bool CRM64Pro::ParticleEmitter::getBoundsEnabled | ( | ) | const |
Check if cached emitter bounds are enabled.
| bool CRM64Pro::ParticleEmitter::getBounds | ( | SDL_FRect * | pBounds | ) | const |
Get cached emitter bounds.
| pBounds | Output world-space AABB covering live renderable particles. |
| bool CRM64Pro::ParticleEmitter::getShape | ( | eParticleEmitterShape * | eShape, |
| float * | fWidth, | ||
| float * | fHeight ) const |
Get emitter spawn shape.
| eShape | Output emitter shape. |
| fWidth | Output shape width in pixels. |
| fHeight | Output shape height in pixels. |
| float CRM64Pro::ParticleEmitter::getEmissionDistance | ( | ) | const |
Get movement-distance emission spacing.
| float CRM64Pro::ParticleEmitter::getDuration | ( | ) | const |
Get emission duration.
| bool CRM64Pro::ParticleEmitter::getLoop | ( | ) | const |
Get duration looping mode.
| bool CRM64Pro::ParticleEmitter::getLifeSpan | ( | float * | fMinSec, |
| float * | fMaxSec ) const |
Get particle lifetime range.
| fMinSec | Output minimum particle lifetime in seconds. |
| fMaxSec | Output maximum particle lifetime in seconds. |
| bool CRM64Pro::ParticleEmitter::getDirection | ( | float * | fAngleDeg, |
| float * | fSpreadDeg ) const |
Get emission direction and spread.
| fAngleDeg | Output center direction in degrees. |
| fSpreadDeg | Output angular spread in degrees. |
| eParticleDirectionMode CRM64Pro::ParticleEmitter::getDirectionMode | ( | ) | const |
Get initial velocity direction mode.
| bool CRM64Pro::ParticleEmitter::getSpeed | ( | float * | fMinSpeed, |
| float * | fMaxSpeed ) const |
Get particle speed range.
| fMinSpeed | Output minimum start speed in pixels per second. |
| fMaxSpeed | Output maximum start speed in pixels per second. |
| float CRM64Pro::ParticleEmitter::getVelocityLimit | ( | ) | const |
Get maximum particle velocity magnitude.
| float CRM64Pro::ParticleEmitter::getVelocityInheritance | ( | ) | const |
Get inherited emitter movement velocity.
| bool CRM64Pro::ParticleEmitter::getPhysics | ( | float * | fGravityX, |
| float * | fGravityY, | ||
| float * | fDamping ) const |
Get gravity and damping configuration.
| fGravityX | Output horizontal acceleration. |
| fGravityY | Output vertical acceleration. |
| fDamping | Output velocity damping factor. |
| bool CRM64Pro::ParticleEmitter::getAttraction | ( | float * | fStrength, |
| float * | fRadius, | ||
| float * | fFalloff ) const |
Get attraction configuration.
| fStrength | Output attraction strength. |
| fRadius | Output effective radius in pixels. |
| fFalloff | Output falloff exponent. |
| bool CRM64Pro::ParticleEmitter::getOrbit | ( | float * | fStrength, |
| float * | fRadius, | ||
| float * | fFalloff ) const |
Get orbit configuration.
| fStrength | Output orbit strength. |
| fRadius | Output effective radius in pixels. |
| fFalloff | Output falloff exponent. |
| bool CRM64Pro::ParticleEmitter::getCollision | ( | SceneLayerTile ** | ppTileLayer, |
| eParticleCollisionMode * | eMode, | ||
| float * | fBounciness ) const |
Get collision configuration.
| ppTileLayer | Optional output that receives the borrowed collision tile-layer pointer. CRM64Pro retains ownership; the caller must not delete it. The pointer remains valid until it is replaced, unbound, or the layer or emitter is closed. |
| eMode | Output collision behavior. |
| fBounciness | Output bounce velocity multiplier. |
| SceneLayerTile * CRM64Pro::ParticleEmitter::getCollisionLayer | ( | ) | const |
Get the runtime collision tile layer.
| const vector< ParticleColorKey > & CRM64Pro::ParticleEmitter::getColorKeys | ( | ) | const |
Get color ramp keys.
| const vector< ParticleScaleKey > & CRM64Pro::ParticleEmitter::getScaleKeys | ( | ) | const |
Get scale ramp keys.
| bool CRM64Pro::ParticleEmitter::getRotation | ( | float * | fStartAngle, |
| float * | fSpinVelocity ) const |
Get initial angle and spin velocity.
| fStartAngle | Output initial render angle in degrees. |
| fSpinVelocity | Output angular velocity in degrees per second. |
| bool CRM64Pro::ParticleEmitter::getStretch | ( | float * | fAmount, |
| bool * | bAlignToVelocity ) const |
Get stretch configuration.
| fAmount | Output stretch multiplier. |
| bAlignToVelocity | Output velocity-alignment mode. |
| float CRM64Pro::ParticleEmitter::getTurbulence | ( | ) | const |
Get random velocity perturbation strength.
| float CRM64Pro::ParticleEmitter::getSimulationScale | ( | ) | const |
Get emitter simulation speed.
| float CRM64Pro::ParticleEmitter::getWarmUp | ( | ) | const |
Get fresh-start simulation warm-up time.
| bool CRM64Pro::ParticleEmitter::getLocalSpace | ( | ) | const |
Get local-space simulation mode.
| eParticleDrawOrder CRM64Pro::ParticleEmitter::getDrawOrder | ( | ) | const |
Get particle rendering order.
| const vector< ParticleBurst > & CRM64Pro::ParticleEmitter::getBursts | ( | ) | const |
Get timed particle bursts.
| const vector< ParticleSubEmitter > & CRM64Pro::ParticleEmitter::getSubEmitters | ( | ) | const |
Get particle-triggered sub-emitters.
| eParticleEffectPreset CRM64Pro::ParticleEmitter::getPreset | ( | ) | const |
Get applied built-in particle preset.
| Uint32 CRM64Pro::ParticleEmitter::getSeed | ( | ) | const |
Get deterministic random seed.
| bool CRM64Pro::ParticleEmitter::update | ( | float | fDeltaTime | ) |
Advance emitter simulation.
| fDeltaTime | Elapsed time in seconds in the range [0, 1]. The scaled delta must also be no greater than 1. |
| Sint32 CRM64Pro::ParticleEmitter::render | ( | Sint32 | idRes = 0 | ) |
Render live particles.
| idRes | Render target id. Use 0 for the default screen target. |
| Sint32 CRM64Pro::ParticleEmitter::save | ( | const string & | sCDCFile, |
| const string & | sResourceName = "" ) |
Save emitter to a CDC file.
| sCDCFile | string containing the [directory]+filename. |
| sResourceName | Optional resource name inside the CDC archive. When empty, the emitter name is used. |
| Sint32 CRM64Pro::ParticleEmitter::save | ( | Sint32 | idCDC, |
| const string & | sResourceName = "" ) |
Save emitter to an opened CDC archive.
| idCDC | CDC id. |
| sResourceName | Optional resource name inside the CDC archive. When empty, the emitter name is used. |