mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-12 23:39:28 +02:00
103 lines
2.5 KiB
JavaScript
103 lines
2.5 KiB
JavaScript
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();
|