var hand; var position; var velocity; var direction; var actObj="o2"; Leap.loop({enableGestures: true}, function(frame){ if(frame.valid && frame.gestures.length > 0){ frame.gestures.forEach(function(gesture){ var clockwise = false; var pointableID = gesture.pointableIds[0]; var direction = frame.pointable(pointableID).direction; if((direction)&&(gesture.normal)) { var dotProduct = Leap.vec3.dot(direction, gesture.normal); } //hand hand = frame.hands[0]; if(hand) { position = hand.palmPosition; velocity = hand.palmVelocity; direction = hand.direction; } switch (gesture.type){ case "circle": console.log("Circle Gesture"); //mRotation(o4); if (dotProduct > 0){ console.log("r"); RotationR2Server(actObj); }else{ console.log("l"); RotationL2Server(actObj); } break; case "keyTap": console.log("Key Tap Gesture"); AddCube2Server(); //mAddCube(); break; case "screenTap": console.log("Screen Tap Gesture"); ZoomIn2Server(); break; case "swipe": console.log("Swipe Gesture"); //o4.rotation.x +=0.1; break; } }); if(frame.hands.length>1) { console.log("twohands"); } /*if(frame.hands.length > 0) {//axis rotation var previousFrame = controller.frame(1); var axis = hand.rotationAxis(previousFrame); console.log("Axis of Rotation: (" + axis[0] + ", " + axis[1] + ", " + axis[2] + ")"); }*/ } if(frame.hands.length > 0) { if(HandAction(frame.hands[0])=="open"){ // ZoomIn2Server(); }else if(HandAction(frame.hands[0])=="close"){ ZoomOut2Server(); } } }); function HandAction(hand){ console.log(hand.grabStrength); if(hand.grabStrength > 0.99) return "close"; else if (hand.grabStrength < 0.01) return "open"; return"not detected"; }