26 Q_PROPERTY(QVector3D positionVariation READ positionVariation WRITE setPositionVariation NOTIFY positionVariationChanged)
27 Q_PROPERTY(QQuick3DParticleAbstractShape *shape READ shape WRITE setShape NOTIFY shapeChanged)
28 Q_PROPERTY(
int duration READ duration WRITE setDuration NOTIFY durationChanged)
29 Q_PROPERTY(
int durationVariation READ durationVariation WRITE setDurationVariation NOTIFY durationVariationChanged)
30 Q_PROPERTY(
bool hideAtEnd READ hideAtEnd WRITE setHideAtEnd NOTIFY hideAtEndChanged)
31 Q_PROPERTY(
bool useCachedPositions READ useCachedPositions WRITE setUseCachedPositions NOTIFY useCachedPositionsChanged)
32 Q_PROPERTY(
int positionsAmount READ positionsAmount WRITE setPositionsAmount NOTIFY positionsAmountChanged)
33 QML_NAMED_ELEMENT(Attractor3D)
34 QML_ADDED_IN_VERSION(6, 2)
37 QQuick3DParticleAttractor(QQuick3DNode *parent =
nullptr);
39 QVector3D positionVariation()
const;
40 QQuick3DParticleAbstractShape *shape()
const;
42 int durationVariation()
const;
43 bool hideAtEnd()
const;
44 bool useCachedPositions()
const;
45 int positionsAmount()
const;
48 void setPositionVariation(
const QVector3D &positionVariation);
49 void setShape(QQuick3DParticleAbstractShape *shape);
50 void setDuration(
int duration);
51 void setDurationVariation(
int durationVariation);
52 void setHideAtEnd(
bool hideAtEnd);
53 void setUseCachedPositions(
bool useCachedPositions);
54 void setPositionsAmount(
int positionsAmount);
57 void positionVariationChanged();
59 void durationChanged();
60 void durationVariationChanged();
61 void hideAtEndChanged();
62 void useCachedPositionsChanged();
63 void positionsAmountChanged();
66 void prepareToAffect() override;
67 void affectParticle(
const QQuick3DParticleData &sd, QQuick3DParticleDataCurrent *d,
float time) override;
70 void updateShapePositions();
72 QQuick3DParticleAbstractShape *m_shape =
nullptr;
73 QList<QVector3D> m_shapePositionList;
74 QVector3D m_centerPos;
75 QMatrix4x4 m_particleTransform;
76 bool m_shapeDirty =
false;
78 int m_durationVariation = 0;
79 QVector3D m_positionVariation;
80 bool m_hideAtEnd =
false;
81 bool m_useCachedPositions =
true;
82 int m_positionsAmount = 0;
QT_BEGIN_NAMESPACE const float MIN_DURATION
\qmltype Attractor3D \inherits Affector3D \inqmlmodule QtQuick3D.Particles3D