Andrew Meadowsarchive remaining JS scriptsc0b446c10 years agoHistory
102 lines · 2.4 KB · JavaScript
RawDownload
////  handPosesDebug.js//  examples////  Copyright 2015 High Fidelity, Inc.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html//   function makeSphere(color) {    var SPHERE_SIZE = 0.05;    var sphere = Overlays.addOverlay("sphere", {        position: { x: 0, y: 0, z: 0 },        size: SPHERE_SIZE,        color: color,        alpha: 1.0,        solid: true,        visible: true,    });     return sphere;}  var NUM_HANDS = 2;var NUM_SPHERES_PER_HAND = 2;var LEFT_HAND = 0;var RIGHT_HAND = 1; var COLORS = [ { red: 255, green: 0, blue: 0 }, { red: 0, green: 0, blue: 255 } ];  function index(handNum, indexNum) {    return handNum * NUM_HANDS + indexNum;} var app = {};  function setup() {    app.spheres = new Array();     for (var h = 0; h < NUM_HANDS; h++) {        for (var s = 0; s < NUM_SPHERES_PER_HAND; s++) {            var i = index(h, s);            app.spheres[i] = makeSphere(COLORS[h]);            print("Added Sphere num " + i + " = " + JSON.stringify(app.spheres[i]));        }    }} function updateHand(handNum, deltaTime) {    var pose;    var handName = "right";    if (handNum == LEFT_HAND) {        pose = MyAvatar.getLeftHandPose();        handName = "left";    } else {        pose = MyAvatar.getRightHandPose();        handName = "right";    }     if (pose.valid) {        //print(handName + " hand moving" +  JSON.stringify(pose));        Overlays.editOverlay(app.spheres[index(handNum, 0)], {            position: pose.translation,            visible: true,        });        var vpos = Vec3.sum(Vec3.multiply(10 * deltaTime, pose.velocity), pose.translation);        Overlays.editOverlay(app.spheres[index(handNum, 1)], {            position: vpos,            visible: true,        });    } else {        Overlays.editOverlay(app.spheres[index(handNum, 0)], {            visible: false        });         Overlays.editOverlay(app.spheres[index(handNum, 1)], {            visible: false        });    }} function update(deltaTime) {    updateHand(LEFT_HAND, deltaTime);    updateHand(RIGHT_HAND, deltaTime);} function scriptEnding() {    print("Removing spheres = " + JSON.stringify(app.spheres));    for (var i = 0; i < app.spheres.length; i++) {        Overlays.deleteOverlay(app.spheres[i]);    }} setup();Script.update.connect(update);Script.scriptEnding.connect(scriptEnding);