[Bf-extensions-cvs] [b71eb23a] xr-actions-D9124: VR: Support axis input actions
Peter Kim
noreply at git.blender.org
Sun Nov 15 15:52:00 CET 2020
Commit: b71eb23af1a606c55e9256ac87057097a3248e8b
Author: Peter Kim
Date: Sat Nov 14 15:54:34 2020 +0900
Branches: xr-actions-D9124
https://developer.blender.org/rBAb71eb23af1a606c55e9256ac87057097a3248e8b
VR: Support axis input actions
===================================================================
M viewport_vr_preview.py
===================================================================
diff --git a/viewport_vr_preview.py b/viewport_vr_preview.py
index c0bf2863..2dc695c4 100644
--- a/viewport_vr_preview.py
+++ b/viewport_vr_preview.py
@@ -73,7 +73,7 @@ def vr_load_action_properties(context: bpy.context):
for action_set in bpy.context.scene.vr_action_sets:
for action in action_set.actions:
- if (action.type != 'BUTTON') or not action.op:
+ if (action.type != 'BUTTON' and action.type != 'AXIS') or not action.op:
continue
kmi_addon = km_addon.keymap_items.from_xr(action_set.name, action.name)
@@ -405,31 +405,12 @@ def vr_create_actions(context: bpy.context):
return
actions = action_set.actions
- type = 'BUTTON'
- op_flag = 'PRESS'
interaction_path0 = ""
interaction_path1 = ""
for action in actions:
- if action.type == 'BUTTON':
- type = 'BUTTON'
- if action.op_flag == 'PRESS':
- op_flag = 'PRESS'
- elif action.op_flag == 'RELEASE':
- op_flag = 'RELEASE'
- elif action.op_flag == 'MODAL':
- op_flag = 'MODAL'
- else:
- continue
- elif action.type == 'POSE':
- type = 'POSE'
- elif action.type == 'HAPTIC':
- type = 'HAPTIC'
- else:
- continue
-
- ok = wm.xr_session_state.create_action(context, action_set.name, action.name, type,
- action.user_path0, action.user_path1, action.threshold, action.op, op_flag)
+ ok = wm.xr_session_state.create_action(context, action_set.name, action.name, action.type,
+ action.user_path0, action.user_path1, action.threshold, action.op, action.op_flag)
if not ok:
return
@@ -487,7 +468,7 @@ class VRAction(PropertyGroup):
if km:
kmi = km.keymap_items.from_xr(action_set_name, action_name)
- if (self.type != 'BUTTON') or not self.op:
+ if (self.type != 'BUTTON' and self.type != 'AXIS') or not self.op:
if kmi:
# Remove any existing key map item.
km.keymap_items.remove(kmi)
@@ -566,7 +547,8 @@ class VRAction(PropertyGroup):
name="Action Type",
items=[
('BUTTON', "Button", "Button input"),
- ('POSE', "Pose", "Pose input"),
+ ('AXIS', "Axis", "2D axis input"),
+ ('POSE', "Pose", "3D pose input"),
('HAPTIC', "Haptic", "Haptic output"),
],
default='BUTTON',
@@ -923,7 +905,7 @@ class VIEW3D_PT_vr_actions(Panel):
col1.prop(action_selected, "user_path1", text="User Path 1")
col1.prop(action_selected, "component_path1", text="Component Path 1")
- if action_selected.type == 'BUTTON':
+ if action_selected.type == 'BUTTON' or action_selected.type == 'AXIS':
col1.prop(action_selected, "threshold", text="Threshold")
col1.prop(action_selected, "op", text="Operator")
col1.prop(action_selected, "op_flag", text="Operator Flag")
@@ -1353,7 +1335,7 @@ class VIEW3D_OT_vr_action_sets_load_from_prefs(Operator):
# Update key map.
if scene_km and prefs_km:
for action in action_set.actions:
- if (action.type != 'BUTTON') or not action.op:
+ if (action.type != 'BUTTON' and action.type != 'AXIS') or not action.op:
continue
prefs_kmi = prefs_km.keymap_items.from_xr(action_set.name, action.name)
if prefs_kmi:
@@ -1400,7 +1382,7 @@ class VIEW3D_OT_vr_action_set_save_to_prefs(Operator):
prefs_km = vr_get_keymap(context, True)
if scene_km and prefs_km:
for action in scene_action_set.actions:
- if (action.type != 'BUTTON') or not action.op:
+ if (action.type != 'BUTTON' and action.type != 'AXIS') or not action.op:
continue
scene_kmi = scene_km.keymap_items.from_xr(scene_action_set.name, action.name)
if scene_kmi:
@@ -1926,7 +1908,7 @@ class PREFERENCES_PT_vr_actions(Panel):
col1.prop(action_selected, "user_path1", text="User Path 1")
col1.prop(action_selected, "component_path1", text="Component Path 1")
- if action_selected.type == 'BUTTON':
+ if action_selected.type == 'BUTTON' or action_selected.type == 'AXIS':
col1.prop(action_selected, "threshold", text="Threshold")
col1.prop(action_selected, "op", text="Operator")
col1.prop(action_selected, "op_flag", text="Operator Flag")
More information about the Bf-extensions-cvs
mailing list