8#if defined(Q_OS_VISIONOS)
17 : q_ptr(&handTrackerInput)
40 emit q->isActiveChanged();
51 emit q->poseSpaceChanged();
56 return m_posePosition;
61 return m_poseRotation;
66 return m_jointPositions;
73 m_jointPositions = newJointPositions;
74 emit q->jointPositionsChanged();
75 m_jointRotations = newJointRotations;
76 emit q->jointRotationsChanged();
77 emit q->jointDataUpdated();
82 if (pokeIndex >= 0 && pokeIndex < m_jointPositions.
size())
88 return m_jointRotations;
93 return m_pokePosition;
100 if (m_pokePosition == newPokePosition)
102 m_pokePosition = newPokePosition;
103 emit q->pokePositionChanged();
135 return d->isActive();
153 return d->poseSpace();
176 return d->posePosition();
187 return d->jointPositions();
193 return d->poseRotation();
204 return d->jointRotations();
210 d->setJointPositionsAndRotations(newJointPositions, newJointRotations);
216 return d->pokePosition();
222 d->setPokePosition(newPokePosition);
275void QQuick3DXrHandModel::updatePose()
279 int count = jointListProp.count(&jointListProp);
283 auto *joint = jointListProp.
at(&jointListProp,
i);
285 joint->setRotation(rotations.at(
i));
288 static bool warned =
false;
290 qWarning() <<
"No skin available for hand model";
296void QQuick3DXrHandModel::setupModel()
298 if (!m_handTracker) {
302 qWarning() <<
"XrHandModel does not support changing hand tracker";
314 m_initialized =
true;
332 return m_handTracker;
337 if (m_handTracker == newHandTracker)
339 m_handTracker = newHandTracker;
qsizetype size() const noexcept
const_reference at(qsizetype i) const noexcept
virtual void componentComplete()=0
Invoked after the root component that caused this instantiation has completed construction.
The QQuaternion class represents a quaternion consisting of a vector and scalar.
QQuick3DSkin * skin
\qmlproperty Skin Model::skin
void setVisible(bool visible)
QQmlListProperty< QQuick3DNode > joints
\qmlproperty List<QtQuick3D::Node> Skin::joints
QQuick3DXrHandTrackerInput * handTracker
void componentComplete() override
Invoked after the root component that caused this instantiation has completed construction.
void handTrackerChanged()
void setHandTracker(QQuick3DXrHandTrackerInput *newHandTracker)
QQuick3DXrHandModel(QQuick3DNode *parent=nullptr)
\qmlsignal XrHandTrackerInput::isActiveChanged() Emitted when the isActive property changes.
The QVector3D class represents a vector or vertex in 3D space.
Combined button and popup list for selecting options.
static const QCssKnownValue positions[NumKnownPositionModes - 1]
GLenum GLenum GLsizei count
GLdouble GLdouble GLdouble GLdouble q
connect(quitButton, &QPushButton::clicked, &app, &QCoreApplication::quit, Qt::QueuedConnection)