Andrew Meadowsarchive remaining JS scriptsc0b446c10 years agoHistory
103 lines · 2.5 KB · JavaScript
RawDownload
Script.include("../../libraries/utils.js");  PickerTest = function() {    // Switch every 5 seconds between normal IPD and 0 IPD (in seconds)    this.UPDATE_INTERVAL = 10.0;    this.lastUpdateInterval = 0;     this.ballId = Overlays.addOverlay("sphere", {        position: { x: 0, y: 0, z: 0 },        color: { red: 0, green: 255, blue: 0 },        size: 0.1,        solid: true,        alpha: 1.0,        visible: true,    });     this.ballId2 = Overlays.addOverlay("sphere", {        position: { x: 0, y: 0, z: 0 },        color: { red: 255, green: 0, blue: 0 },        size: 0.05,        solid: true,        alpha: 1.0,        visible: true,    });     var that = this;    Script.scriptEnding.connect(function() {        that.onCleanup();    });     Script.update.connect(function(deltaTime) {        that.lastUpdateInterval += deltaTime;        if (that.lastUpdateInterval >= that.UPDATE_INTERVAL) {            that.onUpdate(that.lastUpdateInterval);            that.lastUpdateInterval = 0;        }    });        Controller.mousePressEvent.connect(function(event) {        that.onMousePress(event);    });        Controller.mouseMoveEvent.connect(function(event) {        that.onMouseMove(event);    });        Controller.mouseReleaseEvent.connect(function(event) {        that.onMouseRelease(event);    });}; PickerTest.prototype.onCleanup = function() {    Overlays.deleteOverlay(this.ballId)    Overlays.deleteOverlay(this.ballId2)} PickerTest.prototype.updateOverlays = function() {    var pickRay = Camera.computePickRay(this.x, this.y);    var origin = pickRay.origin;    var direction = pickRay.direction;    var position = Vec3.sum(origin, direction)    Overlays.editOverlay(this.ballId, {        position: position    });     Overlays.editOverlay(this.ballId2, {        position: origin    });} PickerTest.prototype.onUpdate = function(deltaTime) {    if (this.clicked) {        this.updateOverlays();    }} PickerTest.prototype.onMousePress = function(event) {    if (event.button !== "LEFT") {        return    }    this.clicked = true;    this.x = event.x;    this.y = event.y;    this.updateOverlays();} PickerTest.prototype.onMouseRelease = function(event) {    if (event.button !== "LEFT") {        return    }    this.clicked = false;} PickerTest.prototype.onMouseMove = function(event) {    if (this.clicked) {        this.x = event.x;        this.y = event.y;        this.updateOverlays();    }} var PickerTest = new PickerTest();