Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/modules/openxr/doc_classes/OpenXRInterface.xml
20897 views
1
<?xml version="1.0" encoding="UTF-8" ?>
2
<class name="OpenXRInterface" inherits="XRInterface" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
3
<brief_description>
4
Our OpenXR interface.
5
</brief_description>
6
<description>
7
The OpenXR interface allows Godot to interact with OpenXR runtimes and make it possible to create XR experiences and games.
8
Due to the needs of OpenXR this interface works slightly different than other plugin based XR interfaces. It needs to be initialized when Godot starts. You need to enable OpenXR, settings for this can be found in your games project settings under the XR heading. You do need to mark a viewport for use with XR in order for Godot to know which render result should be output to the headset.
9
</description>
10
<tutorials>
11
<link title="Setting up XR">$DOCS_URL/tutorials/xr/setting_up_xr.html</link>
12
</tutorials>
13
<methods>
14
<method name="get_action_sets" qualifiers="const">
15
<return type="Array" />
16
<description>
17
Returns a list of action sets registered with Godot (loaded from the action map at runtime).
18
</description>
19
</method>
20
<method name="get_available_display_refresh_rates" qualifiers="const">
21
<return type="Array" />
22
<description>
23
Returns a list of display refresh rates supported by the current HMD. Only returned if this feature is supported by the OpenXR runtime and after the interface has been initialized.
24
</description>
25
</method>
26
<method name="get_hand_joint_angular_velocity" qualifiers="const" deprecated="Use [method XRHandTracker.get_hand_joint_angular_velocity] obtained from [method XRServer.get_tracker] instead.">
27
<return type="Vector3" />
28
<param index="0" name="hand" type="int" enum="OpenXRInterface.Hand" />
29
<param index="1" name="joint" type="int" enum="OpenXRInterface.HandJoints" />
30
<description>
31
If handtracking is enabled, returns the angular velocity of a joint ([param joint]) of a hand ([param hand]) as provided by OpenXR. This is relative to [XROrigin3D]!
32
</description>
33
</method>
34
<method name="get_hand_joint_flags" qualifiers="const" deprecated="Use [method XRHandTracker.get_hand_joint_flags] obtained from [method XRServer.get_tracker] instead.">
35
<return type="int" enum="OpenXRInterface.HandJointFlags" is_bitfield="true" />
36
<param index="0" name="hand" type="int" enum="OpenXRInterface.Hand" />
37
<param index="1" name="joint" type="int" enum="OpenXRInterface.HandJoints" />
38
<description>
39
If handtracking is enabled, returns flags that inform us of the validity of the tracking data.
40
</description>
41
</method>
42
<method name="get_hand_joint_linear_velocity" qualifiers="const" deprecated="Use [method XRHandTracker.get_hand_joint_linear_velocity] obtained from [method XRServer.get_tracker] instead.">
43
<return type="Vector3" />
44
<param index="0" name="hand" type="int" enum="OpenXRInterface.Hand" />
45
<param index="1" name="joint" type="int" enum="OpenXRInterface.HandJoints" />
46
<description>
47
If handtracking is enabled, returns the linear velocity of a joint ([param joint]) of a hand ([param hand]) as provided by OpenXR. This is relative to [XROrigin3D] without worldscale applied!
48
</description>
49
</method>
50
<method name="get_hand_joint_position" qualifiers="const" deprecated="Use [method XRHandTracker.get_hand_joint_transform] obtained from [method XRServer.get_tracker] instead.">
51
<return type="Vector3" />
52
<param index="0" name="hand" type="int" enum="OpenXRInterface.Hand" />
53
<param index="1" name="joint" type="int" enum="OpenXRInterface.HandJoints" />
54
<description>
55
If handtracking is enabled, returns the position of a joint ([param joint]) of a hand ([param hand]) as provided by OpenXR. This is relative to [XROrigin3D] without worldscale applied!
56
</description>
57
</method>
58
<method name="get_hand_joint_radius" qualifiers="const" deprecated="Use [method XRHandTracker.get_hand_joint_radius] obtained from [method XRServer.get_tracker] instead.">
59
<return type="float" />
60
<param index="0" name="hand" type="int" enum="OpenXRInterface.Hand" />
61
<param index="1" name="joint" type="int" enum="OpenXRInterface.HandJoints" />
62
<description>
63
If handtracking is enabled, returns the radius of a joint ([param joint]) of a hand ([param hand]) as provided by OpenXR. This is without worldscale applied!
64
</description>
65
</method>
66
<method name="get_hand_joint_rotation" qualifiers="const" deprecated="Use [method XRHandTracker.get_hand_joint_transform] obtained from [method XRServer.get_tracker] instead.">
67
<return type="Quaternion" />
68
<param index="0" name="hand" type="int" enum="OpenXRInterface.Hand" />
69
<param index="1" name="joint" type="int" enum="OpenXRInterface.HandJoints" />
70
<description>
71
If handtracking is enabled, returns the rotation of a joint ([param joint]) of a hand ([param hand]) as provided by OpenXR.
72
</description>
73
</method>
74
<method name="get_hand_tracking_source" qualifiers="const" deprecated="Use [member XRHandTracker.hand_tracking_source] obtained from [method XRServer.get_tracker] instead.">
75
<return type="int" enum="OpenXRInterface.HandTrackedSource" />
76
<param index="0" name="hand" type="int" enum="OpenXRInterface.Hand" />
77
<description>
78
If handtracking is enabled and hand tracking source is supported, gets the source of the hand tracking data for [param hand].
79
</description>
80
</method>
81
<method name="get_motion_range" qualifiers="const">
82
<return type="int" enum="OpenXRInterface.HandMotionRange" />
83
<param index="0" name="hand" type="int" enum="OpenXRInterface.Hand" />
84
<description>
85
If handtracking is enabled and motion range is supported, gets the currently configured motion range for [param hand].
86
</description>
87
</method>
88
<method name="get_session_state">
89
<return type="int" enum="OpenXRInterface.SessionState" />
90
<description>
91
Returns the current state of our OpenXR session.
92
</description>
93
</method>
94
<method name="is_action_set_active" qualifiers="const">
95
<return type="bool" />
96
<param index="0" name="name" type="String" />
97
<description>
98
Returns [code]true[/code] if the given action set is active.
99
</description>
100
</method>
101
<method name="is_eye_gaze_interaction_supported">
102
<return type="bool" />
103
<description>
104
Returns the capabilities of the eye gaze interaction extension.
105
[b]Note:[/b] This only returns a valid value after OpenXR has been initialized.
106
</description>
107
</method>
108
<method name="is_foveation_supported" qualifiers="const">
109
<return type="bool" />
110
<description>
111
Returns [code]true[/code] if OpenXR's foveation extension is supported. The interface must be initialized before this returns a valid value.
112
[b]Note:[/b] When using the Vulkan rendering driver, [member Viewport.vrs_mode] must be set to [constant Viewport.VRS_XR] to support foveation.
113
</description>
114
</method>
115
<method name="is_hand_interaction_supported" qualifiers="const">
116
<return type="bool" />
117
<description>
118
Returns [code]true[/code] if OpenXR's hand interaction profile is supported and enabled.
119
[b]Note:[/b] This only returns a valid value after OpenXR has been initialized.
120
</description>
121
</method>
122
<method name="is_hand_tracking_supported">
123
<return type="bool" />
124
<description>
125
Returns [code]true[/code] if OpenXR's hand tracking is supported and enabled.
126
[b]Note:[/b] This only returns a valid value after OpenXR has been initialized.
127
</description>
128
</method>
129
<method name="is_user_presence_supported" qualifiers="const">
130
<return type="bool" />
131
<description>
132
Returns [code]true[/code] if OpenXR's user presence extension is supported and enabled.
133
[b]Note:[/b] This only returns a valid value after OpenXR has been initialized.
134
</description>
135
</method>
136
<method name="is_user_present" qualifiers="const">
137
<return type="bool" />
138
<description>
139
Returns [code]true[/code] if system has detected the presence of a user in the XR experience.
140
</description>
141
</method>
142
<method name="set_action_set_active">
143
<return type="void" />
144
<param index="0" name="name" type="String" />
145
<param index="1" name="active" type="bool" />
146
<description>
147
Sets the given action set as active or inactive.
148
</description>
149
</method>
150
<method name="set_cpu_level">
151
<return type="void" />
152
<param index="0" name="level" type="int" enum="OpenXRInterface.PerfSettingsLevel" />
153
<description>
154
Sets the CPU performance level of the OpenXR device.
155
</description>
156
</method>
157
<method name="set_gpu_level">
158
<return type="void" />
159
<param index="0" name="level" type="int" enum="OpenXRInterface.PerfSettingsLevel" />
160
<description>
161
Sets the GPU performance level of the OpenXR device.
162
</description>
163
</method>
164
<method name="set_motion_range">
165
<return type="void" />
166
<param index="0" name="hand" type="int" enum="OpenXRInterface.Hand" />
167
<param index="1" name="motion_range" type="int" enum="OpenXRInterface.HandMotionRange" />
168
<description>
169
If handtracking is enabled and motion range is supported, sets the currently configured motion range for [param hand] to [param motion_range].
170
</description>
171
</method>
172
</methods>
173
<members>
174
<member name="display_refresh_rate" type="float" setter="set_display_refresh_rate" getter="get_display_refresh_rate" default="0.0">
175
The display refresh rate for the current HMD. Only functional if this feature is supported by the OpenXR runtime and after the interface has been initialized.
176
</member>
177
<member name="foveation_dynamic" type="bool" setter="set_foveation_dynamic" getter="get_foveation_dynamic" default="false">
178
If [code]true[/code], enables dynamic foveation adjustment. The interface must be initialized before this is accessible. If enabled, foveation will automatically be adjusted between low and [member foveation_level].
179
[b]Note:[/b] Only works on the Compatibility renderer.
180
</member>
181
<member name="foveation_level" type="int" setter="set_foveation_level" getter="get_foveation_level" default="0">
182
The foveation level, from [code]0[/code] (off) to [code]3[/code] (high). The interface must be initialized before this is accessible.
183
[b]Note:[/b] Only works on the Compatibility renderer.
184
</member>
185
<member name="render_target_size_multiplier" type="float" setter="set_render_target_size_multiplier" getter="get_render_target_size_multiplier" default="1.0">
186
The render size multiplier for the current HMD. Must be set before the interface has been initialized.
187
</member>
188
<member name="vrs_min_radius" type="float" setter="set_vrs_min_radius" getter="get_vrs_min_radius" default="20.0">
189
The minimum radius around the focal point where full quality is guaranteed if VRS is used as a percentage of screen size.
190
[b]Note:[/b] Mobile and Forward+ renderers only. Requires [member Viewport.vrs_mode] to be set to [constant Viewport.VRS_XR].
191
</member>
192
<member name="vrs_strength" type="float" setter="set_vrs_strength" getter="get_vrs_strength" default="1.0">
193
The strength used to calculate the VRS density map. The greater this value, the more noticeable VRS is. This improves performance at the cost of quality.
194
[b]Note:[/b] Mobile and Forward+ renderers only. Requires [member Viewport.vrs_mode] to be set to [constant Viewport.VRS_XR].
195
</member>
196
</members>
197
<signals>
198
<signal name="cpu_level_changed">
199
<param index="0" name="sub_domain" type="int" />
200
<param index="1" name="from_level" type="int" />
201
<param index="2" name="to_level" type="int" />
202
<description>
203
Informs the device CPU performance level has changed in the specified subdomain.
204
</description>
205
</signal>
206
<signal name="gpu_level_changed">
207
<param index="0" name="sub_domain" type="int" />
208
<param index="1" name="from_level" type="int" />
209
<param index="2" name="to_level" type="int" />
210
<description>
211
Informs the device GPU performance level has changed in the specified subdomain.
212
</description>
213
</signal>
214
<signal name="instance_exiting">
215
<description>
216
Informs our OpenXR instance is exiting.
217
</description>
218
</signal>
219
<signal name="pose_recentered">
220
<description>
221
Informs the user queued a recenter of the player position.
222
</description>
223
</signal>
224
<signal name="refresh_rate_changed">
225
<param index="0" name="refresh_rate" type="float" />
226
<description>
227
Informs the user the HMD refresh rate has changed.
228
[b]Note:[/b] Only emitted if XR runtime supports the refresh rate extension.
229
</description>
230
</signal>
231
<signal name="session_begun">
232
<description>
233
Informs our OpenXR session has been started.
234
</description>
235
</signal>
236
<signal name="session_focussed">
237
<description>
238
Informs our OpenXR session now has focus, for example output is sent to the HMD and we're receiving XR input.
239
</description>
240
</signal>
241
<signal name="session_loss_pending">
242
<description>
243
Informs our OpenXR session is in the process of being lost.
244
</description>
245
</signal>
246
<signal name="session_stopping">
247
<description>
248
Informs our OpenXR session is stopping.
249
</description>
250
</signal>
251
<signal name="session_synchronized">
252
<description>
253
Informs our OpenXR session has been synchronized.
254
</description>
255
</signal>
256
<signal name="session_visible">
257
<description>
258
Informs our OpenXR session is now visible, for example output is sent to the HMD but we don't receive XR input.
259
</description>
260
</signal>
261
<signal name="user_presence_changed">
262
<param index="0" name="is_user_present" type="bool" />
263
<description>
264
Signal emitted when the user presence value changes.
265
[b]Note:[/b] This signal will not be emitted during application startup and application shutdown. Developers should assume user presence is gained on startup and lost on shutdown.
266
</description>
267
</signal>
268
</signals>
269
<constants>
270
<constant name="SESSION_STATE_UNKNOWN" value="0" enum="SessionState">
271
The state of the session is unknown, we haven't tried setting up OpenXR yet.
272
</constant>
273
<constant name="SESSION_STATE_IDLE" value="1" enum="SessionState">
274
The initial state after the OpenXR session is created or after the session is destroyed.
275
</constant>
276
<constant name="SESSION_STATE_READY" value="2" enum="SessionState">
277
OpenXR is ready to begin our session. [signal session_begun] is emitted when we change to this state.
278
</constant>
279
<constant name="SESSION_STATE_SYNCHRONIZED" value="3" enum="SessionState">
280
The application has synched its frame loop with the runtime but we're not rendering anything. [signal session_synchronized] is emitted when we change to this state.
281
</constant>
282
<constant name="SESSION_STATE_VISIBLE" value="4" enum="SessionState">
283
The application has synched its frame loop with the runtime and we're rendering output to the user, however we receive no user input. [signal session_visible] is emitted when we change to this state.
284
[b]Note:[/b] This is the current state just before we get the focused state, whenever the user opens a system menu, switches to another application, or takes off their headset.
285
</constant>
286
<constant name="SESSION_STATE_FOCUSED" value="5" enum="SessionState">
287
The application has synched its frame loop with the runtime, we're rendering output to the user and we're receiving XR input. [signal session_focussed] is emitted when we change to this state.
288
[b]Note:[/b] This is the state OpenXR will be in when the user can fully interact with your game.
289
</constant>
290
<constant name="SESSION_STATE_STOPPING" value="6" enum="SessionState">
291
Our session is being stopped. [signal session_stopping] is emitted when we change to this state.
292
</constant>
293
<constant name="SESSION_STATE_LOSS_PENDING" value="7" enum="SessionState">
294
The session is about to be lost. [signal session_loss_pending] is emitted when we change to this state.
295
</constant>
296
<constant name="SESSION_STATE_EXITING" value="8" enum="SessionState">
297
The OpenXR instance is about to be destroyed and we're exiting. [signal instance_exiting] is emitted when we change to this state.
298
</constant>
299
<constant name="HAND_LEFT" value="0" enum="Hand">
300
Left hand.
301
</constant>
302
<constant name="HAND_RIGHT" value="1" enum="Hand">
303
Right hand.
304
</constant>
305
<constant name="HAND_MAX" value="2" enum="Hand">
306
Maximum value for the hand enum.
307
</constant>
308
<constant name="HAND_MOTION_RANGE_UNOBSTRUCTED" value="0" enum="HandMotionRange">
309
Full hand range, if user closes their hands, we make a full fist.
310
</constant>
311
<constant name="HAND_MOTION_RANGE_CONFORM_TO_CONTROLLER" value="1" enum="HandMotionRange">
312
Conform to controller, if user closes their hands, the tracked data conforms to the shape of the controller.
313
</constant>
314
<constant name="HAND_MOTION_RANGE_MAX" value="2" enum="HandMotionRange">
315
Maximum value for the motion range enum.
316
</constant>
317
<constant name="HAND_TRACKED_SOURCE_UNKNOWN" value="0" enum="HandTrackedSource">
318
The source of hand tracking data is unknown (the extension is likely unsupported).
319
</constant>
320
<constant name="HAND_TRACKED_SOURCE_UNOBSTRUCTED" value="1" enum="HandTrackedSource">
321
The source of hand tracking is unobstructed, this means that an accurate method of hand tracking is used, e.g. optical hand tracking, data gloves, etc.
322
</constant>
323
<constant name="HAND_TRACKED_SOURCE_CONTROLLER" value="2" enum="HandTrackedSource">
324
The source of hand tracking is a controller, bone positions are inferred from controller inputs.
325
</constant>
326
<constant name="HAND_TRACKED_SOURCE_MAX" value="3" enum="HandTrackedSource">
327
Represents the size of the [enum HandTrackedSource] enum.
328
</constant>
329
<constant name="HAND_JOINT_PALM" value="0" enum="HandJoints">
330
Palm joint.
331
</constant>
332
<constant name="HAND_JOINT_WRIST" value="1" enum="HandJoints">
333
Wrist joint.
334
</constant>
335
<constant name="HAND_JOINT_THUMB_METACARPAL" value="2" enum="HandJoints">
336
Thumb metacarpal joint.
337
</constant>
338
<constant name="HAND_JOINT_THUMB_PROXIMAL" value="3" enum="HandJoints">
339
Thumb proximal joint.
340
</constant>
341
<constant name="HAND_JOINT_THUMB_DISTAL" value="4" enum="HandJoints">
342
Thumb distal joint.
343
</constant>
344
<constant name="HAND_JOINT_THUMB_TIP" value="5" enum="HandJoints">
345
Thumb tip joint.
346
</constant>
347
<constant name="HAND_JOINT_INDEX_METACARPAL" value="6" enum="HandJoints">
348
Index finger metacarpal joint.
349
</constant>
350
<constant name="HAND_JOINT_INDEX_PROXIMAL" value="7" enum="HandJoints">
351
Index finger phalanx proximal joint.
352
</constant>
353
<constant name="HAND_JOINT_INDEX_INTERMEDIATE" value="8" enum="HandJoints">
354
Index finger phalanx intermediate joint.
355
</constant>
356
<constant name="HAND_JOINT_INDEX_DISTAL" value="9" enum="HandJoints">
357
Index finger phalanx distal joint.
358
</constant>
359
<constant name="HAND_JOINT_INDEX_TIP" value="10" enum="HandJoints">
360
Index finger tip joint.
361
</constant>
362
<constant name="HAND_JOINT_MIDDLE_METACARPAL" value="11" enum="HandJoints">
363
Middle finger metacarpal joint.
364
</constant>
365
<constant name="HAND_JOINT_MIDDLE_PROXIMAL" value="12" enum="HandJoints">
366
Middle finger phalanx proximal joint.
367
</constant>
368
<constant name="HAND_JOINT_MIDDLE_INTERMEDIATE" value="13" enum="HandJoints">
369
Middle finger phalanx intermediate joint.
370
</constant>
371
<constant name="HAND_JOINT_MIDDLE_DISTAL" value="14" enum="HandJoints">
372
Middle finger phalanx distal joint.
373
</constant>
374
<constant name="HAND_JOINT_MIDDLE_TIP" value="15" enum="HandJoints">
375
Middle finger tip joint.
376
</constant>
377
<constant name="HAND_JOINT_RING_METACARPAL" value="16" enum="HandJoints">
378
Ring finger metacarpal joint.
379
</constant>
380
<constant name="HAND_JOINT_RING_PROXIMAL" value="17" enum="HandJoints">
381
Ring finger phalanx proximal joint.
382
</constant>
383
<constant name="HAND_JOINT_RING_INTERMEDIATE" value="18" enum="HandJoints">
384
Ring finger phalanx intermediate joint.
385
</constant>
386
<constant name="HAND_JOINT_RING_DISTAL" value="19" enum="HandJoints">
387
Ring finger phalanx distal joint.
388
</constant>
389
<constant name="HAND_JOINT_RING_TIP" value="20" enum="HandJoints">
390
Ring finger tip joint.
391
</constant>
392
<constant name="HAND_JOINT_LITTLE_METACARPAL" value="21" enum="HandJoints">
393
Pinky finger metacarpal joint.
394
</constant>
395
<constant name="HAND_JOINT_LITTLE_PROXIMAL" value="22" enum="HandJoints">
396
Pinky finger phalanx proximal joint.
397
</constant>
398
<constant name="HAND_JOINT_LITTLE_INTERMEDIATE" value="23" enum="HandJoints">
399
Pinky finger phalanx intermediate joint.
400
</constant>
401
<constant name="HAND_JOINT_LITTLE_DISTAL" value="24" enum="HandJoints">
402
Pinky finger phalanx distal joint.
403
</constant>
404
<constant name="HAND_JOINT_LITTLE_TIP" value="25" enum="HandJoints">
405
Pinky finger tip joint.
406
</constant>
407
<constant name="HAND_JOINT_MAX" value="26" enum="HandJoints">
408
Represents the size of the [enum HandJoints] enum.
409
</constant>
410
<constant name="PERF_SETTINGS_LEVEL_POWER_SAVINGS" value="0" enum="PerfSettingsLevel">
411
The application has entered a non-XR section (head-locked / static screen), during which power savings are to be prioritized.
412
</constant>
413
<constant name="PERF_SETTINGS_LEVEL_SUSTAINED_LOW" value="1" enum="PerfSettingsLevel">
414
The application has entered a low and stable complexity section, during which reducing power is more important than occasional late rendering frames.
415
</constant>
416
<constant name="PERF_SETTINGS_LEVEL_SUSTAINED_HIGH" value="2" enum="PerfSettingsLevel">
417
The application has entered a high or dynamic complexity section, during which the XR Runtime strives for consistent XR compositing and frame rendering within a thermally sustainable range.
418
</constant>
419
<constant name="PERF_SETTINGS_LEVEL_BOOST" value="3" enum="PerfSettingsLevel">
420
The application has entered a section with very high complexity, during which the XR Runtime is allowed to step up beyond the thermally sustainable range.
421
</constant>
422
<constant name="PERF_SETTINGS_SUB_DOMAIN_COMPOSITING" value="0" enum="PerfSettingsSubDomain">
423
The compositing performance within the runtime has reached a new level.
424
</constant>
425
<constant name="PERF_SETTINGS_SUB_DOMAIN_RENDERING" value="1" enum="PerfSettingsSubDomain">
426
The application rendering performance has reached a new level.
427
</constant>
428
<constant name="PERF_SETTINGS_SUB_DOMAIN_THERMAL" value="2" enum="PerfSettingsSubDomain">
429
The temperature of the device has reached a new level.
430
</constant>
431
<constant name="PERF_SETTINGS_NOTIF_LEVEL_NORMAL" value="0" enum="PerfSettingsNotificationLevel">
432
The sub-domain has reached a level where no further actions other than currently applied are necessary.
433
</constant>
434
<constant name="PERF_SETTINGS_NOTIF_LEVEL_WARNING" value="1" enum="PerfSettingsNotificationLevel">
435
The sub-domain has reached an early warning level where the application should start proactive mitigation actions.
436
</constant>
437
<constant name="PERF_SETTINGS_NOTIF_LEVEL_IMPAIRED" value="2" enum="PerfSettingsNotificationLevel">
438
The sub-domain has reached a critical level where the application should start drastic mitigation actions.
439
</constant>
440
<constant name="HAND_JOINT_NONE" value="0" enum="HandJointFlags" is_bitfield="true">
441
No flags are set.
442
</constant>
443
<constant name="HAND_JOINT_ORIENTATION_VALID" value="1" enum="HandJointFlags" is_bitfield="true">
444
If set, the orientation data is valid, otherwise, the orientation data is unreliable and should not be used.
445
</constant>
446
<constant name="HAND_JOINT_ORIENTATION_TRACKED" value="2" enum="HandJointFlags" is_bitfield="true">
447
If set, the orientation data comes from tracking data, otherwise, the orientation data contains predicted data.
448
</constant>
449
<constant name="HAND_JOINT_POSITION_VALID" value="4" enum="HandJointFlags" is_bitfield="true">
450
If set, the positional data is valid, otherwise, the positional data is unreliable and should not be used.
451
</constant>
452
<constant name="HAND_JOINT_POSITION_TRACKED" value="8" enum="HandJointFlags" is_bitfield="true">
453
If set, the positional data comes from tracking data, otherwise, the positional data contains predicted data.
454
</constant>
455
<constant name="HAND_JOINT_LINEAR_VELOCITY_VALID" value="16" enum="HandJointFlags" is_bitfield="true">
456
If set, our linear velocity data is valid, otherwise, the linear velocity data is unreliable and should not be used.
457
</constant>
458
<constant name="HAND_JOINT_ANGULAR_VELOCITY_VALID" value="32" enum="HandJointFlags" is_bitfield="true">
459
If set, our angular velocity data is valid, otherwise, the angular velocity data is unreliable and should not be used.
460
</constant>
461
</constants>
462
</class>
463
464