Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qquick3dparticletargetdirection.cpp
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
7
9
39
50{
51 return m_position;
52}
53
64{
65 return m_positionVariation;
66}
67
69{
70 if (m_position == position)
71 return;
72
73 m_position = position;
75}
76
78{
79 if (m_positionVariation == positionVariation)
80 return;
81
82 m_positionVariation = positionVariation;
84}
85
99{
100 return m_normalized;
101}
102
104{
105 if (m_normalized == normalized)
106 return;
107
108 m_normalized = normalized;
110}
111
124{
125 return m_magnitude;
126}
127
129{
130 if (qFuzzyCompare(m_magnitude, magnitude))
131 return;
132
133 m_magnitude = magnitude;
135}
136
148{
149 return m_magnitudeVariation;
150}
151
153{
154 if (qFuzzyCompare(m_magnitudeVariation, magnitudeVariation))
155 return;
156
157 m_magnitudeVariation = magnitudeVariation;
159}
160
162{
163 QVector3D ret = m_position - d.startPosition;
164 if (!m_system)
165 return ret;
166 auto rand = m_system->rand();
167
168 ret.setX(ret.x() - m_positionVariation.x() + rand->get(d.index, QPRand::TDirPosXV) * m_positionVariation.x() * 2.0f);
169 ret.setY(ret.y() - m_positionVariation.y() + rand->get(d.index, QPRand::TDirPosYV) * m_positionVariation.y() * 2.0f);
170 ret.setZ(ret.z() - m_positionVariation.z() + rand->get(d.index, QPRand::TDirPosZV) * m_positionVariation.z() * 2.0f);
171 if (m_normalized)
172 ret.normalize();
173 ret *= (m_magnitude - m_magnitudeVariation + rand->get(d.index, QPRand::TDirMagV) * m_magnitudeVariation * 2.0f);
174 return ret;
175}
176
\inmodule QtCore
Definition qobject.h:103
void setPositionVariation(const QVector3D &positionVariation)
QVector3D sample(const QQuick3DParticleData &d) override
QQuick3DParticleTargetDirection(QObject *parent=nullptr)
\qmltype TargetDirection3D \inherits Direction3D \inqmlmodule QtQuick3D.Particles3D
void setMagnitudeVariation(float magnitudeVariation)
The QVector3D class represents a vector or vertex in 3D space.
Definition qvectornd.h:171
constexpr float y() const noexcept
Returns the y coordinate of this point.
Definition qvectornd.h:671
constexpr float x() const noexcept
Returns the x coordinate of this point.
Definition qvectornd.h:670
constexpr float z() const noexcept
Returns the z coordinate of this point.
Definition qvectornd.h:672
Combined button and popup list for selecting options.
bool qFuzzyCompare(qfloat16 p1, qfloat16 p2) noexcept
Definition qfloat16.h:333
return ret
GLint GLenum GLboolean normalized
Definition qopenglext.h:752
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
#define Q_EMIT