Replace 3dOverlays for Local Entities - part 2

Replace 3dOverlays for Local Entities (developer's script)
This commit is contained in:
Alezia Kurdis 2023-03-20 23:11:26 -04:00 committed by ksuprynowicz
parent 0f663d1a4d
commit ca577f2802
6 changed files with 121 additions and 102 deletions

View file

@ -3,8 +3,9 @@
// //
// EZrecord.js // EZrecord.js
// //
// Created by David Rowe on 24 Jun 2017. // Created by David Rowe on June 24th, 2017.
// Copyright 2017 High Fidelity, Inc. // Copyright 2017 High Fidelity, Inc.
// Copyright 2023 Overte e.V.
// //
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@ -48,22 +49,23 @@
if (HMD.active) { if (HMD.active) {
// 3D overlay attached to avatar. // 3D overlay attached to avatar.
//V8TODO: change to local entity hmdOverlay = Entities.addEntity({
hmdOverlay = Overlays.addOverlay("text3d", { "type": "Text",
text: recordingText, "text": recordingText,
dimensions: { x: 3 * HMD_FONT_SIZE, y: HMD_FONT_SIZE }, "dimensions": { "x": 3 * HMD_FONT_SIZE, "y": HMD_FONT_SIZE, "z": 0.01 },
parentID: MyAvatar.sessionUUID, "parentID": MyAvatar.sessionUUID,
parentJointIndex: CAMERA_JOINT_INDEX, "parentJointIndex": CAMERA_JOINT_INDEX,
localPosition: { x: 0.95, y: 0.95, z: -2.0 }, "localPosition": { "x": 0.95, "y": 0.95, "z": -2.0 },
color: { red: 255, green: 0, blue: 0 }, "color": { "red": 255, "green": 0, "blue": 0 },
alpha: 0.9, "alpha": 0.9,
lineHeight: HMD_FONT_SIZE, "unlit": true,
backgroundAlpha: 0, "lineHeight": HMD_FONT_SIZE,
ignoreRayIntersection: true, "backgroundAlpha": 0,
isFacingAvatar: true, "ignorePickIntersection": true,
drawInFront: true, "billboardMode": "full",
visible: true "renderLayer": "front",
}); "visible": true
},"local");
} else { } else {
// 2D overlay on desktop. // 2D overlay on desktop.
desktopOverlay = Overlays.addOverlay("text", { desktopOverlay = Overlays.addOverlay("text", {
@ -86,7 +88,7 @@
Overlays.deleteOverlay(desktopOverlay); Overlays.deleteOverlay(desktopOverlay);
} }
if (hmdOverlay) { if (hmdOverlay) {
Overlays.deleteOverlay(hmdOverlay); Entities.deleteEntity(hmdOverlay);
} }
} }

View file

@ -4,13 +4,14 @@
// debugAvatarMixer.js // debugAvatarMixer.js
// scripts/developer/debugging // scripts/developer/debugging
// //
// Created by Brad Hefta-Gaub on 01/09/2017 // Created by Brad Hefta-Gaub on January 9th, 2017.
// Copyright 2017 High Fidelity, Inc. // Copyright 2017 High Fidelity, Inc.
// Copyright 2023 Overte e.V.
// //
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
// //
/* global Toolbars, Script, Users, Overlays, AvatarList, Controller, Camera, getControllerWorldLocation */ /* global Toolbars, Script, Users, Entities, AvatarList, Controller, Camera, getControllerWorldLocation */
(function() { // BEGIN LOCAL_SCOPE (function() { // BEGIN LOCAL_SCOPE
@ -19,12 +20,12 @@ Script.include("/~/system/libraries/controllers.js");
var isShowingOverlays = true; var isShowingOverlays = true;
var debugOverlays = {}; var debugOverlays = {};
//V8TODO: change to local entity var textSizeOverlay = Entities.addEntity({
var textSizeOverlay = Overlays.addOverlay("text3d", { "type": "Text",
position: MyAvatar.position, "position": MyAvatar.position,
lineHeight: 0.1, "lineHeight": 0.1,
visible: false "visible": false
}); }, "local");
function removeOverlays() { function removeOverlays() {
// enumerate the overlays and remove them // enumerate the overlays and remove them
@ -33,11 +34,11 @@ function removeOverlays() {
for (var i = 0; i < overlayKeys.length; ++i) { for (var i = 0; i < overlayKeys.length; ++i) {
var avatarID = overlayKeys[i]; var avatarID = overlayKeys[i];
for (var j = 0; j < debugOverlays[avatarID].length; ++j) { for (var j = 0; j < debugOverlays[avatarID].length; ++j) {
Overlays.deleteOverlay(debugOverlays[avatarID][j]); Entities.deleteEntity(debugOverlays[avatarID][j]);
} }
} }
Overlays.deleteOverlay(textSizeOverlay); Entities.deleteEntity(textSizeOverlay);
debugOverlays = {}; debugOverlays = {};
} }
@ -91,27 +92,28 @@ function updateOverlays() {
//+" SM: " + AvatarManager.getAvatarSimulationRate(avatarID,"skeletonModel").toFixed(2) + "hz \n" //+" SM: " + AvatarManager.getAvatarSimulationRate(avatarID,"skeletonModel").toFixed(2) + "hz \n"
+" JD: " + AvatarManager.getAvatarSimulationRate(avatarID,"jointData").toFixed(2) + "hz \n" +" JD: " + AvatarManager.getAvatarSimulationRate(avatarID,"jointData").toFixed(2) + "hz \n"
var dimensions = Overlays.textSize(textSizeOverlay, text); var dimensions = Entities.textSize(textSizeOverlay, text);
if (avatarID in debugOverlays) { if (avatarID in debugOverlays) {
// keep the overlay above the current position of this avatar // keep the overlay above the current position of this avatar
Overlays.editOverlay(debugOverlays[avatarID][0], { Entities.editEntity(debugOverlays[avatarID][0], {
dimensions: { x: 1.1 * dimensions.width, y: 0.6 * dimensions.height }, "dimensions": { "x": 1.1 * dimensions.width, "y": 0.6 * dimensions.height },
position: overlayPosition, "position": overlayPosition,
text: text "text": text
}); });
} else { } else {
// add the overlay above this avatar // add the overlay above this avatar
var newOverlay = Overlays.addOverlay("text3d", { var newOverlay = Entities.addEntity({
position: overlayPosition, "type": "Text",
dimensions: { x: 1.1 * dimensions.width, y: 0.6 * dimensions.height }, "position": overlayPosition,
lineHeight: 0.1, "dimensions": { "x": 1.1 * dimensions.width, "y": 0.6 * dimensions.height },
text: text, "lineHeight": 0.1,
color: { red: 255, green: 255, blue: 255}, "text": text,
alpha: 1, "color": { "red": 255, "green": 255, "blue": 255},
solid: true, "alpha": 1,
isFacingAvatar: true, "primitiveMode": "solid",
drawInFront: true "billboardMode": "full",
}); "renderLayer": "front"
}, "local");
debugOverlays[avatarID]=[newOverlay]; debugOverlays[avatarID]=[newOverlay];
} }
@ -127,7 +129,7 @@ AvatarList.avatarRemovedEvent.connect(function(avatarID){
// first remove the rendered overlays // first remove the rendered overlays
for (var j = 0; j < debugOverlays[avatarID].length; ++j) { for (var j = 0; j < debugOverlays[avatarID].length; ++j) {
Overlays.deleteOverlay(debugOverlays[avatarID][j]); Entities.deleteEntity(debugOverlays[avatarID][j]);
} }
// delete the saved ID of the overlay from our mod overlays object // delete the saved ID of the overlay from our mod overlays object

View file

@ -2,8 +2,9 @@
// grabInspector.js // grabInspector.js
// examples/debugging/ // examples/debugging/
// //
// Created by Seth Alves on 2015-12-19. // Created by Seth Alves on December 19th, 2015.
// Copyright 2015 High Fidelity, Inc. // Copyright 2015 High Fidelity, Inc.
// Copyright 2023 Overte e.V.
// //
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@ -26,24 +27,27 @@ function updateOverlay(entityID, queryAACube) {
if (entityID in overlays) { if (entityID in overlays) {
var overlay = overlays[entityID]; var overlay = overlays[entityID];
Overlays.editOverlay(overlay, { Entities.editEntity(overlay, {
position: cubeCenter, "position": cubeCenter,
size: queryAACube.scale "size": queryAACube.scale
}); });
} else { } else {
//V8TODO: change to local entity overlays[entityID] = Entities.addEntity({
overlays[entityID] = Overlays.addOverlay("cube", { "type": "Shape",
position: cubeCenter, "shape": "Cube",
size: queryAACube.scale, "position": cubeCenter,
color: { "size": queryAACube.scale,
red: 0, "color": {
green: 0, "red": 0,
blue: 255 "green": 0,
"blue": 255
}, },
alpha: 1, "alpha": 1,
solid: false, "primitiveMode": "lines",
grabbable: false "grab": {
}); "grabbable": false
}
}, "local");
} }
} }
@ -58,7 +62,7 @@ Script.setInterval(function() {
function cleanup() { function cleanup() {
for (var entityID in overlays) { for (var entityID in overlays) {
Overlays.deleteOverlay(overlays[entityID]); Entities.deleteEntity((overlays[entityID]);
} }
} }

View file

@ -1,5 +1,10 @@
//
// raypickTester.js // raypickTester.js
// //
// Created by Humbletim on June 18th, 2018.
// Copyright 2018 High Fidelity, Inc.
// Copyright 2023 Overte e.V.
//
// display intersection details (including material) when hovering over entities/avatars/overlays // display intersection details (including material) when hovering over entities/avatars/overlays
// //
@ -11,17 +16,18 @@ var JOINT_NAME = HMD.active ? HAND_JOINT : 'Mouse';
var UPDATE_MS = 1000/30; var UPDATE_MS = 1000/30;
// create tect3d overlay to display hover results // create tect3d overlay to display hover results
//V8TODO: change to local entity var overlayID = Entities.addEntity({
var overlayID = Overlays.addOverlay('text3d', { "type": "Text",
text: 'hover', "text": "hover",
visible: false, "visible": false,
backgroundAlpha: 0, "backgroundAlpha": 0,
isFacingAvatar: true, "billboardMode": "full",
lineHeight: 0.05, "lineHeight": 0.05,
dimensions: Vec3.HALF, "dimensions": Vec3.HALF,
}); }, "local");
Script.scriptEnding.connect(function() { Script.scriptEnding.connect(function() {
Overlays.deleteOverlay(overlayID); Entities.deleteEntity(overlayID);
}); });
// create raycast picker // create raycast picker
@ -60,10 +66,10 @@ function updateOverlay(overlayID, result) {
['submesh: ' + extraInfo.subMeshIndex, 'part: '+extraInfo.partIndex, 'shape: '+extraInfo.shapeID].join(' | '), ['submesh: ' + extraInfo.subMeshIndex, 'part: '+extraInfo.partIndex, 'shape: '+extraInfo.shapeID].join(' | '),
].filter(Boolean).join('\n'); ].filter(Boolean).join('\n');
Overlays.editOverlay(overlayID, { Entities.editEntity(overlayID, {
text: text, "text": text,
position: position, "position": position,
visible: result.intersects, "visible": result.intersects
}); });
} }

View file

@ -2,9 +2,10 @@
// sphereLodTest.js // sphereLodTest.js
// examples/tests // examples/tests
// //
// Created by Eric Levin on 1/21/16. // Created by Eric Levin on January 21st, 2016.
// Copyright 2016 High Fidelity, Inc. // Copyright 2016 High Fidelity, Inc.
// Copyright 2023 Overte e.V.
//
// A test script for testing LODing of sphere entities and sphere overlays // A test script for testing LODing of sphere entities and sphere overlays
// //
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
@ -46,21 +47,20 @@ var entitySphere = Entities.addEntity({
}); });
var overlaySpherePosition = Vec3.sum(tablePosition, {x: sphereDimensions.x, y: tableDimensions.y/2 + sphereDimensions.y/2, z: 0}); var overlaySpherePosition = Vec3.sum(tablePosition, {x: sphereDimensions.x, y: tableDimensions.y/2 + sphereDimensions.y/2, z: 0});
//V8TODO: change to local entity var overlaySphere = Entities.addEntity({
var overlaySphere = Overlays.addOverlay("sphere", { "type": "Sphere",
position: overlaySpherePosition, "position": overlaySpherePosition,
size: 0.01, "dimensions": sphereDimensions,
color: { red: 20, green: 200, blue: 0}, "color": { "red": 20, "green": 200, "blue": 0},
alpha: 1.0, "alpha": 1.0
solid: true, }, "local");
});
function cleanup() { function cleanup() {
Entities.deleteEntity(table); Entities.deleteEntity(table);
Entities.deleteEntity(entitySphere); Entities.deleteEntity(entitySphere);
Overlays.deleteOverlay(overlaySphere); Entities.deleteEntity(overlaySphere);
} }

View file

@ -1,4 +1,9 @@
// webSpawnTool.js //
// webOverlayTool.js
//
// Created by Bradley Austin Davis on March 16th, 2018.
// Copyright 2018 High Fidelity, Inc.
// Copyright 2023 Overte e.V.
// //
// Stress tests the rendering of web surfaces over time // Stress tests the rendering of web surfaces over time
// //
@ -24,24 +29,24 @@ SPAWNER = function (properties) {
function makeObject(properties) { function makeObject(properties) {
//V8TODO: change to local entity var overlay = Entities.addEntity({
var overlay = Overlays.addOverlay("web3d", { "type": "Web",
name: "Web", "name": "Web",
url: "https://www.reddit.com/r/random", "sourceUrl": "https://www.reddit.com/r/random",
localPosition: randomPositionXZ( { x: 0, y: 0, z: -1 }, 1), "localPosition": randomPositionXZ( { "x": 0, "y": 0, "z": -1 }, 1),
localRotation: Quat.angleAxis(180, Vec3.Y_AXIS), "localRotation": Quat.angleAxis(180, Vec3.Y_AXIS),
dimensions: {x: .8, y: .45, z: 0.1}, "dimensions": {"x": 0.8, "y": 0.45, "z": 0.1},
color: { red: 255, green: 255, blue: 255 }, "color": { "red": 255, "green": 255, "blue": 255 },
alpha: 1.0, "alpha": 1.0,
showKeyboardFocusHighlight: false, "showKeyboardFocusHighlight": false,
visible: true "visible": true
}); }, "local");
var now = Date.now(); var now = Date.now();
return { return {
destroy: function () { destroy: function () {
Overlays.deleteOverlay(overlay) Entities.deleteEntity(overlay);
}, },
getAge: function () { getAge: function () {
return (Date.now() - now) / 1000.0; return (Date.now() - now) / 1000.0;