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