[Bf-extensions-cvs] [6174a60a] xr-actions-D9124: VR: Cleanup after actionmap refactoring

Peter Kim noreply at git.blender.org
Sun Mar 14 11:16:06 CET 2021


Commit: 6174a60aedab885f033660bb59f0045cc9e4cdba
Author: Peter Kim
Date:   Sun Mar 14 19:08:43 2021 +0900
Branches: xr-actions-D9124
https://developer.blender.org/rBA6174a60aedab885f033660bb59f0045cc9e4cdba

VR: Cleanup after actionmap refactoring

Aside from general cleanup, changed that default action sets are no
longer automatically loaded (user must press the "Load Default VR
Action Maps" button from the actionmaps menu). This guards against
unintentional scene changes if the user is not aware that actions are
enabled.

===================================================================

M	viewport_vr_preview/__init__.py
M	viewport_vr_preview/configs/default.py
M	viewport_vr_preview/defaults.py
M	viewport_vr_preview/io.py
M	viewport_vr_preview/main.py

===================================================================

diff --git a/viewport_vr_preview/__init__.py b/viewport_vr_preview/__init__.py
index ad7fd173..5d398813 100644
--- a/viewport_vr_preview/__init__.py
+++ b/viewport_vr_preview/__init__.py
@@ -66,18 +66,19 @@ classes = (
     main.VIEW3D_OT_cursor_to_vr_landmark,
     main.VIEW3D_OT_update_vr_landmark,
 
-    main.VIEW3D_UL_vr_action_sets,
-    main.VIEW3D_MT_vr_action_set_menu,
+    main.VIEW3D_UL_vr_actionmaps,
+    main.VIEW3D_MT_vr_actionmap_menu,
     main.VIEW3D_UL_vr_actions,
     main.VIEW3D_MT_vr_action_menu,
 
-    main.VIEW3D_OT_vr_action_set_add,
-    main.VIEW3D_OT_vr_action_set_remove,
-    main.VIEW3D_OT_vr_action_set_activate,
-    main.VIEW3D_OT_vr_action_sets_import,
-    main.VIEW3D_OT_vr_action_sets_export,
-    main.VIEW3D_OT_vr_action_set_copy,
-    main.VIEW3D_OT_vr_action_sets_clear,
+    main.VIEW3D_OT_vr_actionmap_add,
+    main.VIEW3D_OT_vr_actionmap_remove,
+    main.VIEW3D_OT_vr_actionmap_activate,
+    main.VIEW3D_OT_vr_actionmaps_defaults_load,
+    main.VIEW3D_OT_vr_actionmaps_import,
+    main.VIEW3D_OT_vr_actionmaps_export,
+    main.VIEW3D_OT_vr_actionmap_copy,
+    main.VIEW3D_OT_vr_actionmaps_clear,
     main.VIEW3D_OT_vr_action_add,
     main.VIEW3D_OT_vr_action_remove,
     main.VIEW3D_OT_vr_action_copy,
@@ -137,7 +138,8 @@ def register():
     )
 
     bpy.app.handlers.load_post.append(main.vr_ensure_default_landmark)
-    bpy.app.handlers.load_post.append(defaults.vr_load_default_actionmaps)
+    bpy.app.handlers.load_post.append(defaults.vr_init_default_actionconfig)
+    bpy.app.handlers.load_post.append(main.vr_activate_user_actionconfig)
     bpy.app.handlers.xr_session_start_pre.append(main.vr_create_actions)
 
 
@@ -160,5 +162,6 @@ def unregister():
     del bpy.types.View3DShading.vr_show_landmarks
 
     bpy.app.handlers.load_post.remove(main.vr_ensure_default_landmark)
-    bpy.app.handlers.load_post.remove(defaults.vr_load_default_actionmaps)
+    bpy.app.handlers.load_post.remove(defaults.vr_init_default_actionconfig)
+    bpy.app.handlers.load_post.remove(main.vr_activate_user_actionconfig)
     bpy.app.handlers.xr_session_start_pre.remove(main.vr_create_actions)
diff --git a/viewport_vr_preview/configs/default.py b/viewport_vr_preview/configs/default.py
index 03c3fe86..04267488 100644
--- a/viewport_vr_preview/configs/default.py
+++ b/viewport_vr_preview/configs/default.py
@@ -1,6 +1,6 @@
 actionconfig_version = (2, 93, 10)
 actionconfig_data = \
-[("default_oculus",
+[("blender_oculus",
   {"profile": '/interaction_profiles/oculus/touch_controller'},
   {"items":
    [("controller_pose", {"type": 'POSE', "user_path0": '/user/hand/left', "component_path0": '/input/grip/pose', "user_path1": '/user/hand/right', "component_path1": '/input/grip/pose', "pose_is_controller": 'True', "pose_location": '(0.0, 0.0, 0.0)', "pose_rotation": '(-0.8726646304130554, 0.0, 0.0)'}, None),
@@ -11,7 +11,7 @@ actionconfig_data = \
     ],
    },
   ),
- ("default_wmr",
+ ("blender_wmr",
   {"profile": '/interaction_profiles/microsoft/motion_controller'},
   {"items":
    [("controller_pose", {"type": 'POSE', "user_path0": '/user/hand/left', "component_path0": '/input/grip/pose', "user_path1": '/user/hand/right', "component_path1": '/input/grip/pose', "pose_is_controller": 'True', "pose_location": '(0.0, 0.0, 0.0)', "pose_rotation": '(-0.7853981852531433, 0.0, 0.0)'}, None),
@@ -22,7 +22,7 @@ actionconfig_data = \
     ],
    },
   ),
- ("default_vive",
+ ("blender_vive",
   {"profile": '/interaction_profiles/htc/vive_controller'},
   {"items":
    [("controller_pose", {"type": 'POSE', "user_path0": '/user/hand/left', "component_path0": '/input/grip/pose', "user_path1": '/user/hand/right', "component_path1": '/input/grip/pose', "pose_is_controller": 'True', "pose_location": '(0.0, 0.0, 0.0)', "pose_rotation": '(0.0, 0.0, 0.0)'}, None),
@@ -33,7 +33,7 @@ actionconfig_data = \
     ],
    },
   ),
- ("default_index",
+ ("blender_index",
   {"profile": '/interaction_profiles/valve/index_controller'},
   {"items":
    [("controller_pose", {"type": 'POSE', "user_path0": '/user/hand/left', "component_path0": '/input/grip/pose', "user_path1": '/user/hand/right', "component_path1": '/input/grip/pose', "pose_is_controller": 'True', "pose_location": '(0.0, 0.0, 0.0)', "pose_rotation": '(0.0, 0.0, 0.0)'}, None),
diff --git a/viewport_vr_preview/defaults.py b/viewport_vr_preview/defaults.py
index ecb37f7a..0367bf9f 100644
--- a/viewport_vr_preview/defaults.py
+++ b/viewport_vr_preview/defaults.py
@@ -26,12 +26,29 @@ else:
 
 import bpy
 from bpy.app.handlers import persistent
-import math
 from enum import Enum
+import math
+
+
+# Default actionmaps.
+class VRDefaultActionmaps(Enum):
+    OCULUS = "blender_oculus"
+    WMR = "blender_wmr"
+    VIVE = "blender_vive"
+    INDEX = "blender_index"
+
+
+# Default actions.
+class VRDefaultActions(Enum):
+    CONTROLLER_POSE = "controller_pose"
+    RAYCAST_SELECT = "raycast_select"
+    GRAB = "grab"
+    UNDO = "undo"
+    REDO = "redo"
 
 
 def vr_defaults_actionmap_add(ac, name, profile):
-    am = ac.actionmaps.new(name)    
+    am = ac.actionmaps.new(name, True)    
     if am:
         am.profile = profile
 
@@ -48,7 +65,7 @@ def vr_defaults_actionmap_item_add(am,
                                    op,
                                    op_flag):
 
-    ami = am.actionmap_items.new(name)
+    ami = am.actionmap_items.new(name, True)
     if ami:        
         ami.type = 'BUTTON'
         ami.user_path0 = user_path0
@@ -71,7 +88,7 @@ def vr_defaults_pose_actionmap_item_add(am,
                                         is_controller,
                                         location,
                                         rotation):
-    ami = am.actionmap_items.new(name)
+    ami = am.actionmap_items.new(name, True)
     if ami:             
         ami.type = 'POSE'
         ami.user_path0 = user_path0
@@ -94,7 +111,7 @@ def vr_defaults_haptic_actionmap_item_add(am,
                                           duration,
                                           frequency,
                                           amplitude):
-    ami = am.actionmap_items.new(name)
+    ami = am.actionmap_items.new(name, True)
     if ami:        
         ami.type = 'HAPTIC'
         ami.user_path0 = user_path0
@@ -108,31 +125,15 @@ def vr_defaults_haptic_actionmap_item_add(am,
     return ami
 
 
-# Default actionmaps.
-class VRDefaultActionmapNames(Enum):
-    OCULUS = "default_oculus"
-    WMR = "default_wmr"
-    VIVE = "default_vive"
-    INDEX = "default_index"
-
-# Default actionmap items.
-class VRDefaultActionmapItemNames(Enum):
-    CONTROLLER_POSE = "controller_pose"
-    RAYCAST_SELECT = "raycast_select"
-    GRAB = "grab"
-    UNDO = "undo"
-    REDO = "redo"
-
-
 def vr_defaults_create_oculus(ac):
     am = vr_defaults_actionmap_add(ac,
-                                   VRDefaultActionmapNames.OCULUS.value,
+                                   VRDefaultActionmaps.OCULUS.value,
                                    "/interaction_profiles/oculus/touch_controller")
     if not am:
         return
 
     vr_defaults_pose_actionmap_item_add(am,
-                                        VRDefaultActionmapItemNames.CONTROLLER_POSE.value,
+                                        VRDefaultActions.CONTROLLER_POSE.value,
                                         "/user/hand/left",
                                         "/input/grip/pose",
                                         "/user/hand/right",
@@ -141,7 +142,7 @@ def vr_defaults_create_oculus(ac):
                                         (0, 0, 0),
                                         (math.radians(-50), 0, 0)) 
     vr_defaults_actionmap_item_add(am,
-                                   VRDefaultActionmapItemNames.RAYCAST_SELECT.value,
+                                   VRDefaultActions.RAYCAST_SELECT.value,
                                    "/user/hand/left",
                                    "/input/trigger/value",
                                    "/user/hand/right",
@@ -150,7 +151,7 @@ def vr_defaults_create_oculus(ac):
                                    "wm.xr_select_raycast",
                                    'MODAL')      
     vr_defaults_actionmap_item_add(am,
-                                   VRDefaultActionmapItemNames.GRAB.value,
+                                   VRDefaultActions.GRAB.value,
                                    "/user/hand/left",
                                    "/input/squeeze/value",
                                    "/user/hand/right",
@@ -159,7 +160,7 @@ def vr_defaults_create_oculus(ac):
                                    "wm.xr_grab",
                                    'MODAL')
     vr_defaults_actionmap_item_add(am,
-                                   VRDefaultActionmapItemNames.UNDO.value,
+                                   VRDefaultActions.UNDO.value,
                                    "/user/hand/left",
                                    "/input/x/click",
                                    "",
@@ -168,7 +169,7 @@ def vr_defaults_create_oculus(ac):
                                    "ed.undo",
                                    'PRESS')        
     vr_defaults_actionmap_item_add(am,
-                                   VRDefaultActionmapItemNames.REDO.value,
+                                   VRDefaultActions.REDO.value,
                                    "/user/hand/right",
                                    "/input/a/click",
                                    "",
@@ -180,13 +181,13 @@ def vr_defaults_create_oculus(ac):
 
 def vr_defaults_create_wmr(ac):
     am = vr_defaults_actionmap_add(ac,
-                                   VRDefaultActionmapNames.WMR.value,
+                                   VRDefaultActionmaps.WMR.value,
                                    "/interaction_profiles/microsoft/motion_controller")
     if not am:
         return
 
     vr_defaults_pose_actionmap_item_add(am,
-                                        VRDefaultActionmapItemNames.CONTROLLER_POSE.value,
+                                        VRDefaultActions.CONTROLLER_POSE.value,
                                         "/user/hand/left",
                                   

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list