UNPKG

node-red-contrib-leap-motion

Version:

Node-Red nodes for leap motion

43 lines (38 loc) 1.45 kB
var Leap=require('leapjs'); var RED = require(process.env.NODE_RED_HOME+"/red/red"); module.exports = function (RED) { function Constructor (config) { RED.nodes.createNode(this, config); var node = this; var controller = Leap.loop({enableGestures: true}, function(frame){ if (frame.gestures.length > 0) { for (var i = 0; i < frame.gestures.length; i++) { var gesture = frame.gestures[i]; if(gesture.type == "swipe") { //Classify swipe as either horizontal or vertical var isHorizontal = Math.abs(gesture.direction[0]) > Math.abs(gesture.direction[1]); //Classify as right-left or up-down if(isHorizontal){ if(gesture.direction[0] > 0){ swipeDirection = "right"; node.send({payload:"swipright"}); } else { swipeDirection = "left"; node.send({payload:"swipleft"}); } } else { //vertical if(gesture.direction[1] > 0){ swipeDirection = "up"; node.send({payload:"swipup"}); } else { swipeDirection = "down"; node.send({payload:"swipdown"}); } } } } } }); } RED.nodes.registerType('swips', Constructor) }