37 Q_PROPERTY(
int endTime READ endTime WRITE setEndTime NOTIFY endTimeChanged)
65 ModelBlendMode modelBlendMode()
const;
68 ModelBlendEmitMode emitMode()
const;
73 void setEndTime(
int endTime);
74 void setModelBlendMode(ModelBlendMode
mode);
76 void setEmitMode(ModelBlendEmitMode emitMode);
88 void itemChange(ItemChange,
const ItemChangeData &)
override;
89 void reset()
override;
90 bool lastParticle()
const;
91 void doSetMaxAmount(
int amount)
override;
92 void componentComplete()
override;
94 void setParticleData(
int particleIndex,
98 float size,
float age);
99 QVector3D particleCenter(
int particleIndex)
const;
100 QVector3D particleEndPosition(
int particleIndex)
const;
101 QVector3D particleEndRotation(
int particleIndex)
const;
102 int randomIndex(
int particleIndex);
113 struct TriangleParticleData
121 int emitterIndex = -1;
124 struct PerEmitterData
126 int particleCount = 0;
127 int emitterIndex = -1;
134 void updateParticles();
135 void handleEndNodeChanged();
136 PerEmitterData &perEmitterData(
int emitterIndex);
138 QVector<TriangleParticleData> m_triangleParticleData;
139 QVector<QVector3D> m_centerData;
140 QHash<QByteArray, QMetaObject::Connection> m_connections;
141 QMap<const QQuick3DParticleEmitter *, PerEmitterData> m_perEmitterData;
142 QVector<int> m_randomParticles;
143 PerEmitterData n_noPerEmitterData;
144 int m_nextEmitterIndex = 0;
153 int m_particleCount = 0;
154 ModelBlendMode m_modelBlendMode = Explode;
156 bool m_dataChanged =
true;
157 ModelBlendEmitMode m_emitMode = Sequential;
159 float m_maxTriangleRadius = 0.f;
void activationNodeChanged()
void modelBlendModeChanged()
void blendFactorChanged()