mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-06 18:42:57 +02:00
74 lines
2 KiB
JavaScript
74 lines
2 KiB
JavaScript
//
|
|
// overlayUtils.js
|
|
// examples/libraries
|
|
//
|
|
// Copyright 2015 High Fidelity, Inc.
|
|
//
|
|
|
|
|
|
//
|
|
// DEPRECATION WARNING: Will be deprecated soon in favor of FloatingUIPanel.
|
|
//
|
|
// OverlayGroup provides a way to create composite overlays and control their
|
|
// position relative to a settable rootPosition and rootRotation.
|
|
//
|
|
OverlayGroup = function(opts) {
|
|
var that = {};
|
|
|
|
var overlays = {};
|
|
|
|
var rootPosition = opts.position || { x: 0, y: 0, z: 0 };
|
|
var rootRotation = opts.rotation || Quat.IDENTITY;
|
|
var visible = opts.visible == true;
|
|
|
|
function updateOverlays() {
|
|
for (overlayID in overlays) {
|
|
var overlay = overlays[overlayID];
|
|
var newPosition = Vec3.multiplyQbyV(rootRotation, overlay.position);
|
|
newPosition = Vec3.sum(rootPosition, newPosition);
|
|
Overlays.editOverlay(overlayID, {
|
|
visible: visible,
|
|
position: newPosition,
|
|
rotation: Quat.multiply(rootRotation, overlay.rotation),
|
|
});
|
|
};
|
|
}
|
|
|
|
that.createOverlay = function(type, properties) {
|
|
properties.position = properties.position || { x: 0, y: 0, z: 0 };
|
|
properties.rotation = properties.rotation || Quat.IDENTITY;
|
|
|
|
var overlay = Overlays.addOverlay(type, properties);
|
|
|
|
overlays[overlay] = {
|
|
position: properties.position,
|
|
rotation: properties.rotation,
|
|
};
|
|
|
|
updateOverlays();
|
|
|
|
return overlay;
|
|
}
|
|
|
|
that.setProperties = function(properties) {
|
|
if (properties.position !== undefined) {
|
|
rootPosition = properties.position;
|
|
}
|
|
if (properties.rotation !== undefined) {
|
|
rootRotation = properties.rotation;
|
|
}
|
|
if (properties.visible !== undefined) {
|
|
visible = properties.visible;
|
|
}
|
|
updateOverlays();
|
|
};
|
|
|
|
that.destroy = function() {
|
|
for (var overlay in overlays) {
|
|
Overlays.deleteOverlay(overlay);
|
|
}
|
|
overlays = {};
|
|
}
|
|
|
|
return that;
|
|
};
|