10#if defined(Q_OS_VISIONOS)
11# include "visionos/qquick3dxrinputmanager_visionos_p.h"
13# include "openxr/qopenxrinputmanager_p.h"
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
59 if (
auto *skin = QQuick3DModel::skin()) {
60 auto jointListProp = skin->joints();
61 int count = jointListProp.count(&jointListProp);
62 const auto positions = m_handTracker->jointPositions();
63 const auto rotations = m_handTracker->jointRotations();
64 for (
int i = 0; i < count; ++i) {
65 auto *joint = jointListProp.at(&jointListProp, i);
66 joint->setPosition(positions.at(i));
67 joint->setRotation(rotations.at(i));
70 static bool warned =
false;
72 qWarning() <<
"No skin available for hand model";
81 qWarning() <<
"XrHandModel does not support changing hand";
85 if (m_hand == RightHand)
87 else if (m_hand == LeftHand)
105 QQuick3DModel::componentComplete();
109
110
111
112
113
114
115
116
117
118
119
120
121
122
131 if (m_hand == newHand)
Hand hand() const
\qmlproperty enumeration XrHandModel::hand
void setHand(Hand newHand)
void componentComplete() override
Invoked after the root component that caused this instantiation has completed construction.
Combined button and popup list for selecting options.