UNPKG

leapjs

Version:

JavaScript client for the Leap Motion Controller

69 lines (67 loc) 2.37 kB
require("./_header") /** * Leap is the global namespace of the Leap API. * @namespace Leap */ module.exports = { Controller: require("./controller"), Frame: require("./frame"), Gesture: require("./gesture"), Hand: require("./hand"), Pointable: require("./pointable"), InteractionBox: require("./interaction_box"), CircularBuffer: require("./circular_buffer"), UI: require("./ui"), glMatrix: require("gl-matrix"), mat3: require("gl-matrix").mat3, vec3: require("gl-matrix").vec3, loopController: undefined, version: require('./version.js'), /** * The Leap.loop() function passes a frame of Leap data to your * callback function and then calls window.requestAnimationFrame() after * executing your callback function. * * Leap.loop() sets up the Leap controller and WebSocket connection for you. * You do not need to create your own controller when using this method. * * Your callback function is called on an interval determined by the client * browser. Typically, this is on an interval of 60 frames/second. The most * recent frame of Leap data is passed to your callback function. If the Leap * is producing frames at a slower rate than the browser frame rate, the same * frame of Leap data can be passed to your function in successive animation * updates. * * As an alternative, you can create your own Controller object and use a * {@link Controller#onFrame onFrame} callback to process the data at * the frame rate of the Leap device. See {@link Controller} for an * example. * * @method Leap.loop * @param {function} callback A function called when the browser is ready to * draw to the screen. The most recent {@link Frame} object is passed to * your callback function. * * ```javascript * Leap.loop( function( frame ) { * // ... your code here * }) * ``` */ loop: function(opts, callback) { if (callback === undefined) { callback = opts; opts = {}; } opts.useAllPlugins || (opts.useAllPlugins = true) if (!this.loopController) this.loopController = new this.Controller(opts); this.loopController.loop(callback); return this.loopController; }, /* * Convenience method for Leap.Controller.plugin */ plugin: function(name, options){ this.Controller.plugin(name, options) } }