(Deprecated) Touch objects in pointing pose¶
Deprecated class vrOpenVRController. See vrDeviceService, vrdVRDevice, vrdDeviceInteraction instead.
deprecated_VR_examples/VR-hands-pointing-openvr.vpb¶
1lastHitNodes = {}
2
3def controllerMoved(controller, hitViz):
4 hitViz.setActive(False)
5 if controller.isHandPoseActive(Pose_Pointing):
6 hit = controller.pickNodeWithFinger(Finger_Index)
7 hitNode = hit[0]
8 hitPoint = hit[1]
9 if hitNode.isValid():
10 hitViz.setTranslation(hitPoint.x(), hitPoint.y(), hitPoint.z())
11 hitViz.setActive(True)
12 global lastHitNodes
13 if not controller in lastHitNodes or lastHitNodes[controller].getID() != hitNode.getID():
14 hitNormal = hit[2]
15 hitUV = hit[3]
16 button = 1
17 callAllPickingPressed(hitNode, hitPoint, hitNormal, hitUV, button)
18 callAllPickingReleased(hitNode, hitPoint, hitNormal, hitUV, button)
19 lastHitNodes[controller] = hitNode
20
21
22def handPoseStopped(poseId, controller):
23 if poseId == Pose_Pointing:
24 global lastHitNodes
25 if controller in lastHitNodes:
26 del lastHitNodes[controller]
27
28# Deprecated class vrOpenVRController. See vrDeviceService, vrdVRDevice, vrdDeviceInteraction instead.
29controller0 = vrOpenVRController("Controller0")
30controller1 = vrOpenVRController("Controller1")
31controller0.setVisualizationMode(Visualization_Hand)
32controller1.setVisualizationMode(Visualization_Hand)
33
34hitViz0 = findNode("HitViz0")
35hitViz1 = findNode("HitViz1")
36
37controller0.connectSignal("controllerMoved", controllerMoved, controller0, hitViz0)
38controller0.connectSignal("handPoseStopped", handPoseStopped, controller0)
39
40controller1.connectSignal("controllerMoved", controllerMoved, controller1, hitViz1)
41controller1.connectSignal("handPoseStopped", handPoseStopped, controller1)