Blender V5.0
DNA_xr_types.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "DNA_view3d_types.h"
12
13/* -------------------------------------------------------------------- */
14
46
51
57
64
73
80
85
97
102typedef enum eXrAxisFlag {
103 XR_AXIS0_POS = (1 << 0),
104 XR_AXIS0_NEG = (1 << 1),
105 XR_AXIS1_POS = (1 << 2),
106 XR_AXIS1_NEG = (1 << 3),
108
109typedef enum eXrPoseFlag {
110 /* Pose represents controller grip/aim. */
111 XR_POSE_GRIP = (1 << 0),
112 XR_POSE_AIM = (1 << 1),
114
122#define XR_MAX_USER_PATH_LENGTH 64
123#define XR_MAX_COMPONENT_PATH_LENGTH 192
124
125/* -------------------------------------------------------------------- */
126
127typedef struct XrComponentPath {
129 char path[/*XR_MAX_COMPONENT_PATH_LENGTH*/ 192];
131
132typedef struct XrActionMapBinding {
134
136 char name[/*MAX_NAME*/ 64];
137
139 char profile[256];
141 ListBase component_paths; /* XrComponentPath */
142
145 short axis_flag; /* eXrAxisFlag */
146 char _pad[2];
147
152
153/* -------------------------------------------------------------------- */
154
155typedef struct XrUserPath {
157 char path[/*XR_MAX_USER_PATH_LENGTH*/ 64];
159
160typedef struct XrActionMapItem {
162
164 char name[/*MAX_NAME*/ 64];
166 char type;
167 char _pad[7];
168
170 ListBase user_paths; /* XrUserPath */
171
173 char op[/*OP_MAX_TYPENAME*/ 64];
178
179 short op_flag; /* eXrOpFlag */
180 short action_flag; /* eXrActionFlag */
181 short haptic_flag; /* eXrHapticFlag */
182
184 short pose_flag; /* eXrPoseFlag */
185
187 char haptic_name[/*MAX_NAME*/ 64];
191
193 char _pad3[2];
194 ListBase bindings; /* XrActionMapBinding */
196
197/* -------------------------------------------------------------------- */
198
199typedef struct XrActionMap {
201
203 char name[/*MAX_NAME*/ 64];
204
205 ListBase items; /* XrActionMapItem */
206 short selitem;
207 char _pad[6];
209
210/* -------------------------------------------------------------------- */
eXrOpFlag
@ XR_OP_MODAL
@ XR_OP_RELEASE
@ XR_OP_PRESS
eXrPoseFlag
@ XR_POSE_GRIP
@ XR_POSE_AIM
eXrAxisFlag
@ XR_AXIS0_POS
@ XR_AXIS1_NEG
@ XR_AXIS1_POS
@ XR_AXIS0_NEG
eXrSessionFlag
@ XR_SESSION_USE_ABSOLUTE_TRACKING
@ XR_SESSION_USE_POSITION_TRACKING
eXrSessionControllerDrawStyle
@ XR_CONTROLLER_DRAW_LIGHT_RAY
@ XR_CONTROLLER_DRAW_LIGHT
@ XR_CONTROLLER_DRAW_DARK_RAY
@ XR_CONTROLLER_DRAW_DARK
eXrActionType
@ XR_FLOAT_INPUT
@ XR_BOOLEAN_INPUT
@ XR_VECTOR2F_INPUT
@ XR_POSE_INPUT
@ XR_VIBRATION_OUTPUT
eXRSessionBasePoseType
@ XR_BASE_POSE_CUSTOM
@ XR_BASE_POSE_SCENE_CAMERA
@ XR_BASE_POSE_OBJECT
eXrActionFlag
@ XR_ACTION_BIMANUAL
eXrHapticFlag
@ XR_HAPTIC_PRESS
@ XR_HAPTIC_RELEASE
@ XR_HAPTIC_MATCHUSERPATHS
@ XR_HAPTIC_REPEAT
struct XrActionMapBinding * next
struct XrActionMapBinding * prev
struct XrActionMapItem * prev
struct XrActionMapItem * next
IDProperty * op_properties
char haptic_name[64]
ListBase user_paths
struct PointerRNA * op_properties_ptr
ListBase items
char name[64]
struct XrActionMap * next
struct XrActionMap * prev
struct XrComponentPath * next
struct XrComponentPath * prev
float base_pose_location[3]
Object * base_pose_object
int object_type_exclude_viewport
struct View3DShading shading
struct XrUserPath * next
char path[64]
struct XrUserPath * prev