Particle system that controls emission and the various properties or particles over their lifetime. More...
| Header: | #include <Kuesa/Particles> |
| Since: | Kuesa 1.3 |
This class was introduced in Kuesa 1.3.
| enum class | AlignMode { FaceCamera, Velocity } |
|
|
| Kuesa::Particles::AlignMode | alignMode() const |
| QVector3D | emitterPosition() const |
| QVector3D | emitterPositionRandom() const |
| QVector3D | emitterVelocity() const |
| QVector3D | emitterVelocityRandom() const |
| QVector4D | finalColor() const |
| QVector2D | finalSize() const |
| float | frameTime() const |
| QVector3D | gravity() const |
| float | initialAngle() const |
| float | initialAngleRandom() const |
| QVector4D | initialColor() const |
| QVector2D | initialSize() const |
| int | maxParticlesEmittedPerFrame() const |
| int | particleCount() const |
| float | particleLifespan() const |
| float | particleLifespanRandom() const |
| float | rotationRate() const |
| float | rotationRateRandom() const |
| Qt3DRender::QAbstractTexture * | spriteTexture() const |
| void | setAlignMode(Kuesa::Particles::AlignMode alignMode) |
| void | setEmitterPosition(const QVector3D &emitterPosition) |
| void | setEmitterPositionRandom(const QVector3D &emitterPositionRandom) |
| void | setEmitterVelocity(const QVector3D &emitterVelocity) |
| void | setEmitterVelocityRandom(const QVector3D &emitterVelocityRandom) |
| void | setFinalColor(const QVector4D &finalColor) |
| void | setFinalSize(const QVector2D &finalSize) |
| void | setFrameTime(float frameTime) |
| void | setGravity(const QVector3D &gravity) |
| void | setInitialAngle(float initialAngle) |
| void | setInitialAngleRandom(float initialAngleRandom) |
| void | setInitialColor(const QVector4D &initialColor) |
| void | setInitialSize(const QVector2D &initialSize) |
| void | setMaxParticlesEmittedPerFrame(int maxParticlesEmittedPerFrame) |
| void | setParticleCount(int particleCount) |
| void | setParticleLifespan(float lifespan) |
| void | setParticleLifespanRandom(float lifespanRandom) |
| void | setRotationRate(float rotationRate) |
| void | setRotationRateRandom(float rotationRateRandom) |
| void | setSpriteTexture(Qt3DRender::QAbstractTexture *spriteTexture) |
| void | alignModeChanged(Kuesa::Particles::AlignMode alignMode) |
| void | emitterPositionChanged(const QVector3D &emitterPosition) |
| void | emitterPositionRandomChanged(const QVector3D &emitterPositionRandom) |
| void | emitterVelocityChanged(const QVector3D &emitterVelocity) |
| void | emitterVelocityRandomChanged(const QVector3D &emitterVelocityRandom) |
| void | finalColorChanged(const QVector4D &finalColor) |
| void | finalSizeChanged(const QVector2D &finalSize) |
| void | frameTimeChanged(float frameTime) |
| void | gravityChanged(const QVector3D &gravity) |
| void | initialAngleChanged(float initialAngle) |
| void | initialAngleRandomChanged(float initialAngleRandom) |
| void | initialColorChanged(const QVector4D &initialColor) |
| void | initialSizeChanged(const QVector2D &initialSize) |
| void | maxParticlesEmittedPerFrameChanged(int maxParticlesEmittedPerFrame) |
| void | particleCountChanged(int particleCount) |
| void | particleLifespanChanged(float particleLifespan) |
| void | particleLifespanRandomChanged(float particleLifespanRandom) |
| void | rotationRateChanged(float rotationRate) |
| void | rotationRateRandomChanged(float rotationRateRandom) |
| void | spriteTextureChanged(const Qt3DRender::QAbstractTexture *spriteTexture) |
#include <Qt3DExtras/Qt3DWindow> #include <ForwardRenderer> #include <SceneEntity> #include <Particles> Qt3DExtras::Qt3DWindow win; Kuesa::SceneEntity *root = new Kuesa::SceneEntity(); Kuesa::ForwardRenderer *frameGraph = new Kuesa::ForwardRenderer(); frameGraph->setParticlesEnabled(true) Kuesa::Particles *particles = new Kuesa::Particles(root); particles->setParticleCount(128); particles->setMaxParticlesEmittedPerFrame(4); particles->setGravity(QVector3D(0.0f, -1.0f, 0.0f)); ... win->setRootEntity(root); win->setActiveFrameGraph(forwardRenderer); ...
This enum type describes the available particle alignment modes.
| Constant | Value | Description |
|---|---|---|
Kuesa::Particles::AlignMode::FaceCamera | 0 | The particle faces the camera at all times. |
Kuesa::Particles::AlignMode::Velocity | 1 | The particle's local Y axis is aligned to its direction. |
Holds the alignment mode for the particles.
If the Velocity alignment mode is used, the initialAngle and rotationRate properties are ignored.
This property was introduced in Kuesa 1.3.
Access functions:
| Kuesa::Particles::AlignMode | alignMode() const |
| void | setAlignMode(Kuesa::Particles::AlignMode alignMode) |
Notifier signal:
| void | alignModeChanged(Kuesa::Particles::AlignMode alignMode) |
Holds the world position of the particle emitter.
This property was introduced in Kuesa 1.3.
Access functions:
| QVector3D | emitterPosition() const |
| void | setEmitterPosition(const QVector3D &emitterPosition) |
Notifier signal:
| void | emitterPositionChanged(const QVector3D &emitterPosition) |
Holds the randomness factor applied to the world position.
This property was introduced in Kuesa 1.3.
Access functions:
| QVector3D | emitterPositionRandom() const |
| void | setEmitterPositionRandom(const QVector3D &emitterPositionRandom) |
Notifier signal:
| void | emitterPositionRandomChanged(const QVector3D &emitterPositionRandom) |
Holds the velocity applied to the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| QVector3D | emitterVelocity() const |
| void | setEmitterVelocity(const QVector3D &emitterVelocity) |
Notifier signal:
| void | emitterVelocityChanged(const QVector3D &emitterVelocity) |
Holds the velocity randomness factor applied to the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| QVector3D | emitterVelocityRandom() const |
| void | setEmitterVelocityRandom(const QVector3D &emitterVelocityRandom) |
Notifier signal:
| void | emitterVelocityRandomChanged(const QVector3D &emitterVelocityRandom) |
Holds the final color of the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| QVector4D | finalColor() const |
| void | setFinalColor(const QVector4D &finalColor) |
Notifier signal:
| void | finalColorChanged(const QVector4D &finalColor) |
Holds the final size of the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| QVector2D | finalSize() const |
| void | setFinalSize(const QVector2D &finalSize) |
Notifier signal:
| void | finalSizeChanged(const QVector2D &finalSize) |
Holds the speed at which updates need to be made in milliseconds.
This property was introduced in Kuesa 1.3.
Access functions:
| float | frameTime() const |
| void | setFrameTime(float frameTime) |
Notifier signal:
| void | frameTimeChanged(float frameTime) |
Holds the gravity value to apply to the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| QVector3D | gravity() const |
| void | setGravity(const QVector3D &gravity) |
Notifier signal:
| void | gravityChanged(const QVector3D &gravity) |
Holds the initial rotation angle in radians of the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| float | initialAngle() const |
| void | setInitialAngle(float initialAngle) |
Notifier signal:
| void | initialAngleChanged(float initialAngle) |
Holds the initial rotation randomness factor applied to the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| float | initialAngleRandom() const |
| void | setInitialAngleRandom(float initialAngleRandom) |
Notifier signal:
| void | initialAngleRandomChanged(float initialAngleRandom) |
Holds the initial color of the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| QVector4D | initialColor() const |
| void | setInitialColor(const QVector4D &initialColor) |
Notifier signal:
| void | initialColorChanged(const QVector4D &initialColor) |
Holds the initial size of the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| QVector2D | initialSize() const |
| void | setInitialSize(const QVector2D &initialSize) |
Notifier signal:
| void | initialSizeChanged(const QVector2D &initialSize) |
Holds the maximum number of new particles that can be created each frame.
This property was introduced in Kuesa 1.3.
Access functions:
| int | maxParticlesEmittedPerFrame() const |
| void | setMaxParticlesEmittedPerFrame(int maxParticlesEmittedPerFrame) |
Notifier signal:
| void | maxParticlesEmittedPerFrameChanged(int maxParticlesEmittedPerFrame) |
Holds the maximum number of particles the system can handle. Currently the maximum value is 2048.
This property was introduced in Kuesa 1.3.
Access functions:
| int | particleCount() const |
| void | setParticleCount(int particleCount) |
Notifier signal:
| void | particleCountChanged(int particleCount) |
Holds the lifetime of the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| float | particleLifespan() const |
| void | setParticleLifespan(float lifespan) |
Notifier signal:
| void | particleLifespanChanged(float particleLifespan) |
Holds the lifetime randomness factor applied to the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| float | particleLifespanRandom() const |
| void | setParticleLifespanRandom(float lifespanRandom) |
Notifier signal:
| void | particleLifespanRandomChanged(float particleLifespanRandom) |
Holds the rotation speed applied to the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| float | rotationRate() const |
| void | setRotationRate(float rotationRate) |
Notifier signal:
| void | rotationRateChanged(float rotationRate) |
Holds the rotation speed randomness factor applied to the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| float | rotationRateRandom() const |
| void | setRotationRateRandom(float rotationRateRandom) |
Notifier signal:
| void | rotationRateRandomChanged(float rotationRateRandom) |
Holds the 2D sprite texture to apply to the particles.
This property was introduced in Kuesa 1.3.
Access functions:
| Qt3DRender::QAbstractTexture * | spriteTexture() const |
| void | setSpriteTexture(Qt3DRender::QAbstractTexture *spriteTexture) |
Notifier signal:
| void | spriteTextureChanged(const Qt3DRender::QAbstractTexture *spriteTexture) |