(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)