(Deprecated) openvr_controller_setup

Deprecated. See “Implementation of a custom device interaction”, “Print the current finger position on the touchpad”, “Define and use virtual buttons on the touchpad of a VR controller” instead.

snippets/openvr_controller_setup.py
 1# © 2024 Autodesk, Inc. All rights reserved.
 2
 3# Deprecated. See vr/customInteraction.py, vr/printTouchparPosition.py, vr/virtualControllerButtons.py instead.
 4def trigger0Pressed():
 5    controller0.setPickingAxis(0)
 6    controller0.showPickingAxis(true)
 7
 8def trigger0Released():
 9    pickedNode = controller0.pickNode()
10    selectNode(pickedNode)
11    controller0.showPickingAxis(false)
12
13def grip0Pressed():
14    selectNode(getSelectedNode(), false)
15
16def grip0Released():
17    print("grip0Released")
18
19def touchpad0Pressed():
20    print("touchpad0Pressed")
21
22def touchpad0Released():
23    print("touchpad0Released")
24
25def touchpad0PositionChanged(position):
26    print("touchpad0PositionChanged")
27
28def controller0Moved():
29    if controller0.isTouchpadPressed():
30        leftNode = findNode("MatrixLeft")
31        leftNode.setTransformMatrix( controller0.getWorldMatrix(), false)
32
33def trigger1Pressed():
34    controller1.setPickingAxis(1)
35    controller1.showPickingAxis(true)
36
37
38def trigger1Released():
39    pickedNode = controller1.pickNode()
40    selectNode(pickedNode)
41    controller1.showPickingAxis(false)
42
43def grip1Pressed():
44    selectNode(getSelectedNode(), false)
45
46
47def grip1Released():
48    print("grip1Released")
49
50def touchpad1Pressed():
51    print("touchpad1Pressed")
52
53
54def touchpad1Released():
55    print("touchpad1Released")
56
57def touchpad1PositionChanged(position):
58    print("touchpad1PositionChanged")
59
60def controller1Moved():
61    if controller1.isTouchpadPressed():
62        rightNode = findNode("MatrixRight")
63        rightNode.setTransformMatrix( controller1.getWorldMatrix(), false)
64
65##
66## Create two controller and connect their signals to functions as needed
67##
68
69controller0 = vrOpenVRController("Controller0")
70controller0.connectSignal("controllerMoved", controller0Moved)
71controller0.connectSignal("triggerPressed", trigger0Pressed)
72controller0.connectSignal("triggerReleased", trigger0Released)
73controller0.connectSignal("gripPressed", grip0Pressed)
74
75
76controller1 = vrOpenVRController("Controller1")
77controller1.connectSignal("controllerMoved", controller1Moved)
78controller1.connectSignal("triggerPressed", trigger1Pressed)
79controller1.connectSignal("triggerReleased", trigger1Released)
80controller1.connectSignal("gripPressed", grip1Pressed)
81
82
83##
84## Optional connect more signals
85##
86#controller0.connectSignal("gripReleased", grip0Released)
87#controller0.connectSignal("touchpadPressed", touchpad0Pressed)
88#controller0.connectSignal("touchpadReleased", touchpad0Released)
89#controller0.connectSignal("touchpadPositionChanged", touchpad0PositionChanged)
90#controller1.connectSignal("gripReleased", grip1Released)
91#controller1.connectSignal("touchpadPressed", touchpad1Pressed)
92#controller1.connectSignal("touchpadReleased", touchpad1Released)
93#controller1.connectSignal("touchpadPositionChanged", touchpad1PositionChanged)
94
95##
96## In case the scene origin is not located at 0,0,0 you may set a reference origin instead
97##
98setOpenVRTrackingOrigin( Pnt3f(0.0, 0.0, 0.0))