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();
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();