Needs a lot of cleanup. Data has been de-duplicated, and where identical copies existed, one of them has been replaced with a symlink. Some files have been excluded, such as binaries, installers and debug dumps. Some of that may still be present.
88 lines
3.6 KiB
JavaScript
88 lines
3.6 KiB
JavaScript
var position = Vec3.sum(MyAvatar.position, { x: 0, y: -1, z: 0});
|
|
|
|
var scalingFactor = 0.01;
|
|
|
|
var sphereNaturalExtentsMin = { x: -1230, y: -1223, z: -1210 };
|
|
var sphereNaturalExtentsMax = { x: 1230, y: 1229, z: 1223 };
|
|
var panelsNaturalExtentsMin = { x: -1181, y: -326, z: 56 };
|
|
var panelsNaturalExtentsMax = { x: 1181, y: 576, z: 1183 };
|
|
|
|
var sphereNaturalDimensions = Vec3.subtract(sphereNaturalExtentsMax, sphereNaturalExtentsMin);
|
|
var panelsNaturalDimensions = Vec3.subtract(panelsNaturalExtentsMax, panelsNaturalExtentsMin);
|
|
Vec3.print("sphereNaturalDimensions:", sphereNaturalDimensions);
|
|
Vec3.print("panelsNaturalDimensions:", panelsNaturalDimensions);
|
|
|
|
var sphereNaturalCenter = Vec3.sum(sphereNaturalExtentsMin, Vec3.multiply(sphereNaturalDimensions, 0.5));
|
|
var panelsNaturalCenter = Vec3.sum(panelsNaturalExtentsMin, Vec3.multiply(panelsNaturalDimensions, 0.5));
|
|
Vec3.print("sphereNaturalCenter:", sphereNaturalCenter);
|
|
Vec3.print("panelsNaturalCenter:", panelsNaturalCenter);
|
|
|
|
var sphereDimensions = Vec3.multiply(sphereNaturalDimensions, scalingFactor);
|
|
var panelsDimensions = Vec3.multiply(panelsNaturalDimensions, scalingFactor);
|
|
Vec3.print("sphereDimensions:", sphereDimensions);
|
|
Vec3.print("panelsDimensions:", panelsDimensions);
|
|
|
|
var sphereCenter = Vec3.multiply(sphereNaturalCenter, scalingFactor);
|
|
var panelsCenter = Vec3.multiply(panelsNaturalCenter, scalingFactor);
|
|
Vec3.print("sphereCenter:", sphereCenter);
|
|
Vec3.print("panelsCenter:", panelsCenter);
|
|
|
|
var centerShift = Vec3.subtract(panelsCenter, sphereCenter);
|
|
Vec3.print("centerShift:", centerShift);
|
|
|
|
var spherePosition = position;
|
|
Vec3.print("spherePosition:", spherePosition);
|
|
var panelsPosition = Vec3.sum(spherePosition, centerShift);
|
|
Vec3.print("panelsPosition:", panelsPosition);
|
|
|
|
|
|
var screensOverlay = Overlays.addOverlay("model", {
|
|
position: panelsPosition,
|
|
dimensions: panelsDimensions,
|
|
url: "https://s3.amazonaws.com/hifi-public/models/sets/Lobby/LobbyConcepts/Lobby5_IsolatedPanelsFreezeTransforms.fbx"
|
|
});
|
|
|
|
|
|
var structureOverlay = Overlays.addOverlay("model", {
|
|
position: spherePosition,
|
|
dimensions: sphereDimensions,
|
|
url: "https://s3.amazonaws.com/hifi-public/models/sets/Lobby/LobbyConcepts/Lobby5_OrbShellOnly.fbx",
|
|
ignoreRayIntersection: true, // we don't want to ray pick against any of this
|
|
});
|
|
|
|
var statusText = Overlays.addOverlay("text", {
|
|
x: 200,
|
|
y: 100,
|
|
width: 200,
|
|
height: 20,
|
|
backgroundColor: { red: 0, green: 0, blue: 0},
|
|
alpha: 1.0,
|
|
backgroundAlpha: 1.0,
|
|
color: { red: 255, green: 255, blue: 255},
|
|
topMargin: 4,
|
|
leftMargin: 4,
|
|
text: "",
|
|
});
|
|
|
|
|
|
Controller.mouseMoveEvent.connect(function(event){
|
|
var pickRay = Camera.computePickRay(event.x, event.y);
|
|
var result = Overlays.findRayIntersection(pickRay);
|
|
|
|
if (result.intersects) {
|
|
if (result.overlayID == screensOverlay) {
|
|
Overlays.editOverlay(statusText, { text: "You are pointing at: " + result.extraInfo });
|
|
} else {
|
|
Overlays.editOverlay(statusText, { text: "You are not pointing at a panel..." });
|
|
}
|
|
} else {
|
|
Overlays.editOverlay(statusText, { text: "You are not pointing at a panel..." });
|
|
}
|
|
});
|
|
|
|
|
|
Script.scriptEnding.connect(function(){
|
|
Overlays.deleteOverlay(screensOverlay);
|
|
Overlays.deleteOverlay(structureOverlay);
|
|
Overlays.deleteOverlay(statusText);
|
|
});
|