@needle-tools/engine 4.10.0-next.4f9d92a → 4.10.0-next.55c0bf9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.needle.json +1 -1
- package/dist/{needle-engine.bundle-BeZ_xmJa.js → needle-engine.bundle-CUo74dPe.js} +5431 -5613
- package/dist/{needle-engine.bundle-D4dO0t5I.umd.cjs → needle-engine.bundle-Cf5H9Zy9.umd.cjs} +137 -148
- package/dist/{needle-engine.bundle-C3bpSNYu.min.js → needle-engine.bundle-DlAVTipB.min.js} +153 -164
- package/dist/needle-engine.js +257 -258
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/lib/engine/codegen/register_types.js +0 -2
- package/lib/engine/codegen/register_types.js.map +1 -1
- package/lib/engine/engine_camera.d.ts +1 -7
- package/lib/engine/engine_camera.fit.d.ts +1 -1
- package/lib/engine/engine_camera.fit.js +30 -3
- package/lib/engine/engine_camera.fit.js.map +1 -1
- package/lib/engine/engine_camera.js +6 -46
- package/lib/engine/engine_camera.js.map +1 -1
- package/lib/engine/engine_context.d.ts +0 -6
- package/lib/engine/engine_context.js +9 -48
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_lightmaps.js +1 -1
- package/lib/engine/extensions/NEEDLE_lightmaps.js.map +1 -1
- package/lib/engine/webcomponents/logo-element.d.ts +1 -1
- package/lib/engine/webcomponents/logo-element.js +5 -29
- package/lib/engine/webcomponents/logo-element.js.map +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu.js +3 -4
- package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.loading.d.ts +1 -0
- package/lib/engine/webcomponents/needle-engine.loading.js +36 -3
- package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
- package/lib/engine-components/OrbitControls.d.ts +1 -4
- package/lib/engine-components/OrbitControls.js +6 -30
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/Renderer.js +1 -6
- package/lib/engine-components/Renderer.js.map +1 -1
- package/lib/engine-components/codegen/components.d.ts +0 -1
- package/lib/engine-components/codegen/components.js +0 -1
- package/lib/engine-components/codegen/components.js.map +1 -1
- package/lib/engine-components/timeline/PlayableDirector.d.ts +0 -7
- package/lib/engine-components/timeline/PlayableDirector.js +0 -7
- package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
- package/lib/engine-components/timeline/TimelineModels.d.ts +1 -9
- package/lib/engine-components/timeline/TimelineTracks.js +2 -4
- package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
- package/lib/engine-components/utils/LookAt.js +1 -5
- package/lib/engine-components/utils/LookAt.js.map +1 -1
- package/lib/engine-components/web/Clickthrough.js +2 -10
- package/lib/engine-components/web/Clickthrough.js.map +1 -1
- package/lib/engine-components/web/ScrollFollow.d.ts +0 -22
- package/lib/engine-components/web/ScrollFollow.js +13 -124
- package/lib/engine-components/web/ScrollFollow.js.map +1 -1
- package/lib/engine-components/web/index.d.ts +0 -1
- package/lib/engine-components/web/index.js +0 -1
- package/lib/engine-components/web/index.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/codegen/register_types.ts +0 -2
- package/src/engine/engine_camera.fit.ts +32 -2
- package/src/engine/engine_camera.ts +8 -62
- package/src/engine/engine_context.ts +10 -50
- package/src/engine/extensions/NEEDLE_lightmaps.ts +1 -1
- package/src/engine/webcomponents/logo-element.ts +4 -29
- package/src/engine/webcomponents/needle menu/needle-menu.ts +3 -4
- package/src/engine/webcomponents/needle-engine.loading.ts +32 -32
- package/src/engine-components/OrbitControls.ts +1 -40
- package/src/engine-components/Renderer.ts +1 -6
- package/src/engine-components/codegen/components.ts +0 -1
- package/src/engine-components/timeline/PlayableDirector.ts +0 -9
- package/src/engine-components/timeline/TimelineModels.ts +1 -9
- package/src/engine-components/timeline/TimelineTracks.ts +2 -4
- package/src/engine-components/utils/LookAt.ts +1 -5
- package/src/engine-components/web/Clickthrough.ts +2 -11
- package/src/engine-components/web/ScrollFollow.ts +15 -149
- package/src/engine-components/web/index.ts +1 -2
- package/lib/engine-components/web/ViewBox.d.ts +0 -16
- package/lib/engine-components/web/ViewBox.js +0 -186
- package/lib/engine-components/web/ViewBox.js.map +0 -1
- package/src/engine-components/web/ViewBox.ts +0 -202
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollFollow.js","sourceRoot":"","sources":["../../../src/engine-components/web/ScrollFollow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScrollFollow.js","sourceRoot":"","sources":["../../../src/engine-components/web/ScrollFollow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine-components/web/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine-components/web/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "4.10.0-next.
|
|
3
|
+
"version": "4.10.0-next.55c0bf9",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.",
|
|
5
5
|
"main": "dist/needle-engine.min.js",
|
|
6
6
|
"exports": {
|
|
@@ -142,7 +142,6 @@ import { ClickThrough } from "../../engine-components/web/Clickthrough.js";
|
|
|
142
142
|
import { CursorFollow } from "../../engine-components/web/CursorFollow.js";
|
|
143
143
|
import { HoverAnimation } from "../../engine-components/web/HoverAnimation.js";
|
|
144
144
|
import { ScrollFollow } from "../../engine-components/web/ScrollFollow.js";
|
|
145
|
-
import { ViewBox } from "../../engine-components/web/ViewBox.js";
|
|
146
145
|
import { Avatar } from "../../engine-components/webxr/Avatar.js";
|
|
147
146
|
import { XRControllerFollow } from "../../engine-components/webxr/controllers/XRControllerFollow.js";
|
|
148
147
|
import { XRControllerModel } from "../../engine-components/webxr/controllers/XRControllerModel.js";
|
|
@@ -301,7 +300,6 @@ TypeStore.add("ClickThrough", ClickThrough);
|
|
|
301
300
|
TypeStore.add("CursorFollow", CursorFollow);
|
|
302
301
|
TypeStore.add("HoverAnimation", HoverAnimation);
|
|
303
302
|
TypeStore.add("ScrollFollow", ScrollFollow);
|
|
304
|
-
TypeStore.add("ViewBox", ViewBox);
|
|
305
303
|
TypeStore.add("Avatar", Avatar);
|
|
306
304
|
TypeStore.add("XRControllerFollow", XRControllerFollow);
|
|
307
305
|
TypeStore.add("XRControllerModel", XRControllerModel);
|
|
@@ -87,7 +87,7 @@ export type FitCameraReturnType = {
|
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
|
|
90
|
-
export function fitCamera(options?: FitCameraOptions): null | FitCameraReturnType {
|
|
90
|
+
export function fitCamera(objectsOrOptions?: Object3D | Array<Object3D> | FitCameraOptions, options?: FitCameraOptions): null | FitCameraReturnType {
|
|
91
91
|
|
|
92
92
|
if (NeedleXRSession.active) {
|
|
93
93
|
// camera fitting in XR is not supported
|
|
@@ -102,6 +102,37 @@ export function fitCamera(options?: FitCameraOptions): null | FitCameraReturnTyp
|
|
|
102
102
|
}
|
|
103
103
|
const camera = options?.camera || context.mainCamera;
|
|
104
104
|
|
|
105
|
+
let objects: Object3D | Array<Object3D> | undefined = undefined;
|
|
106
|
+
// If the user passed in an array as first argument
|
|
107
|
+
if (Array.isArray(objectsOrOptions)) {
|
|
108
|
+
objects = objectsOrOptions;
|
|
109
|
+
}
|
|
110
|
+
// If the user passed in an object as first argument
|
|
111
|
+
else if (objectsOrOptions && "type" in objectsOrOptions) {
|
|
112
|
+
objects = objectsOrOptions;
|
|
113
|
+
}
|
|
114
|
+
// If the user passed in an object as first argument and options as second argument
|
|
115
|
+
else if (objectsOrOptions && typeof objectsOrOptions === "object") {
|
|
116
|
+
if (!(objectsOrOptions instanceof Object3D) && !Array.isArray(objectsOrOptions)) {
|
|
117
|
+
options = objectsOrOptions;
|
|
118
|
+
objects = options.objects;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Ensure objects are setup correctly
|
|
122
|
+
if (objects && !Array.isArray(objects)) {
|
|
123
|
+
objects = [objects];
|
|
124
|
+
}
|
|
125
|
+
if (!Array.isArray(objects) || objects && objects.length <= 0) {
|
|
126
|
+
objects = context.scene.children;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Make sure there's anything to fit to
|
|
130
|
+
if (!Array.isArray(objects) || objects.length <= 0) {
|
|
131
|
+
console.warn("No objects to fit camera to...");
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
|
|
105
136
|
// const controls = this._controls as ThreeOrbitControls | null;
|
|
106
137
|
|
|
107
138
|
if (!camera) {
|
|
@@ -124,7 +155,6 @@ export function fitCamera(options?: FitCameraOptions): null | FitCameraReturnTyp
|
|
|
124
155
|
const size = new Vector3();
|
|
125
156
|
const center = new Vector3();
|
|
126
157
|
const aspect = camera instanceof PerspectiveCamera ? camera.aspect : 1;
|
|
127
|
-
const objects = options.objects || context.scene;
|
|
128
158
|
// TODO would be much better to calculate the bounds in camera space instead of world space -
|
|
129
159
|
// we would get proper view-dependant fit.
|
|
130
160
|
// Right now it's independent from where the camera is actually looking from,
|
|
@@ -52,23 +52,15 @@ export type FocusRectSettings = {
|
|
|
52
52
|
/** Lower values will result in faster alignment with the rect (value ~= seconds to reach target)
|
|
53
53
|
* Minimum value is 0.
|
|
54
54
|
*/
|
|
55
|
-
damping: number
|
|
56
|
-
|
|
57
|
-
/** X offset in camera coordinates. Used by ViewBox component */
|
|
58
|
-
offsetX: number,
|
|
59
|
-
/** Y offset in camera coordinates. Used by ViewBox component */
|
|
60
|
-
offsetY: number,
|
|
61
|
-
/** Zoom factor. Used by ViewBox component */
|
|
62
|
-
zoom: number,
|
|
55
|
+
damping: number
|
|
63
56
|
}
|
|
64
57
|
export type FocusRect = DOMRect | Element | { x: number, y: number, width: number, height: number };
|
|
65
58
|
|
|
66
59
|
let rendererRect: DOMRect | undefined = undefined;
|
|
67
60
|
const overlapRect = { x: 0, y: 0, width: 0, height: 0 };
|
|
68
|
-
const _testTime = 1;
|
|
69
61
|
|
|
70
62
|
/** Used internally by the Needle Engine context via 'setFocusRect(<rect>)' */
|
|
71
|
-
export function updateCameraFocusRect(focusRect: FocusRect,
|
|
63
|
+
export function updateCameraFocusRect(focusRect: FocusRect, dt: number, camera: PerspectiveCamera, renderer: WebGLRenderer) {
|
|
72
64
|
|
|
73
65
|
if (focusRect instanceof Element) {
|
|
74
66
|
focusRect = focusRect.getBoundingClientRect();
|
|
@@ -84,62 +76,16 @@ export function updateCameraFocusRect(focusRect: FocusRect, settings: FocusRectS
|
|
|
84
76
|
rect.x -= rendererRect.x;
|
|
85
77
|
rect.y -= rendererRect.y;
|
|
86
78
|
|
|
87
|
-
const
|
|
88
|
-
const
|
|
79
|
+
const targetX = rect.width / -2 - (rect.x - (rendererRect.width / 2));
|
|
80
|
+
const targetY = rect.height / -2 - (rect.y - (rendererRect.height / 2));
|
|
89
81
|
|
|
90
|
-
const view = camera.view
|
|
82
|
+
const view = camera.view;
|
|
91
83
|
|
|
92
|
-
// Apply zoom
|
|
93
|
-
const zoom = settings.zoom;
|
|
94
84
|
let offsetX = view?.offsetX || 0;
|
|
95
85
|
let offsetY = view?.offsetY || 0;
|
|
86
|
+
offsetX = Mathf.lerp(offsetX, targetX, dt);
|
|
87
|
+
offsetY = Mathf.lerp(offsetY, targetY, dt);
|
|
96
88
|
|
|
97
|
-
|
|
98
|
-
let height = rendererRect.height;
|
|
99
|
-
width /= zoom;
|
|
100
|
-
height /= zoom;
|
|
101
|
-
offsetX = width * (zoom - 1) * .5;
|
|
102
|
-
offsetY = height * (zoom - 1) * .5;
|
|
103
|
-
|
|
104
|
-
const focusRectCenterX = rect.x + rect.width * .5;
|
|
105
|
-
const focusRectCenterY = rect.y + rect.height * .5;
|
|
106
|
-
const rendererCenterX = rendererRect.width * .5;
|
|
107
|
-
const rendererCenterY = rendererRect.height * .5;
|
|
108
|
-
|
|
109
|
-
const diffx = focusRectCenterX - rendererCenterX;
|
|
110
|
-
const diffy = focusRectCenterY - rendererCenterY;
|
|
111
|
-
offsetX -= diffx / zoom;
|
|
112
|
-
offsetY -= diffy / zoom;
|
|
113
|
-
if (settings.offsetX !== undefined) {
|
|
114
|
-
offsetX += settings.offsetX * (rendererRect.width * .5);
|
|
115
|
-
}
|
|
116
|
-
if (settings.offsetY !== undefined) {
|
|
117
|
-
offsetY -= settings.offsetY * (rendererRect.height * .5);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
const currentOffsetX = view?.offsetX || offsetX;
|
|
122
|
-
const currentOffsetY = view?.offsetY || offsetY;
|
|
123
|
-
offsetX = Mathf.lerp(currentOffsetX, offsetX, dt);
|
|
124
|
-
offsetY = Mathf.lerp(currentOffsetY, offsetY, dt);
|
|
125
|
-
const currentWidth = view?.width || sourceWidth;
|
|
126
|
-
const currentHeight = view?.height || sourceHeight;
|
|
127
|
-
width = Mathf.lerp(currentWidth, width, dt);
|
|
128
|
-
height = Mathf.lerp(currentHeight, height, dt);
|
|
129
|
-
|
|
130
|
-
camera.setViewOffset(sourceWidth, sourceHeight, offsetX, offsetY, width, height);
|
|
89
|
+
camera.setViewOffset(rendererRect.width, rendererRect.height, offsetX, offsetY, rendererRect.width, rendererRect.height);
|
|
131
90
|
camera.updateProjectionMatrix();
|
|
132
|
-
|
|
133
|
-
if (settings.damping > 0) {
|
|
134
|
-
settings.damping *= (1.0 - dt);
|
|
135
|
-
if (settings.damping < 0.01) settings.damping = 0;
|
|
136
|
-
settings.damping = Math.max(0, settings.damping);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
function fit(width1: number, height1: number, width2: number, height2: number) {
|
|
142
|
-
const scaleX = width2 / width1;
|
|
143
|
-
const scaleY = height2 / height1;
|
|
144
|
-
return Math.max(scaleX, scaleY);
|
|
145
91
|
}
|
|
@@ -1382,61 +1382,21 @@ export class Context implements IContext {
|
|
|
1382
1382
|
* @param settings Optional settings for the focus rect. These will override the `focusRectSettings` property
|
|
1383
1383
|
*/
|
|
1384
1384
|
public setCameraFocusRect(rect: FocusRect | null, settings?: Partial<FocusRectSettings>) {
|
|
1385
|
-
const oldRect = this._focusRect;
|
|
1386
1385
|
this._focusRect = rect;
|
|
1387
1386
|
if (settings) {
|
|
1388
1387
|
Object.assign(this.focusRectSettings, settings);
|
|
1389
1388
|
}
|
|
1390
|
-
if (settings?.damping === undefined) {
|
|
1391
|
-
// if the new rect is on screen then set damping
|
|
1392
|
-
if (oldRect) {
|
|
1393
|
-
let domRect = oldRect as DOMRect;
|
|
1394
|
-
if (oldRect instanceof HTMLElement) {
|
|
1395
|
-
domRect = oldRect.getBoundingClientRect();
|
|
1396
|
-
}
|
|
1397
|
-
if (domRect && "top" in domRect) {
|
|
1398
|
-
const allowedDistance = 100;
|
|
1399
|
-
const isVisible = domRect.bottom >= -allowedDistance && domRect.right >= -allowedDistance && domRect.top <= window.innerHeight + allowedDistance && domRect.left <= window.innerWidth + allowedDistance;
|
|
1400
|
-
if (isVisible) this.focusRectSettings.damping = .2;
|
|
1401
|
-
}
|
|
1402
|
-
}
|
|
1403
|
-
}
|
|
1404
|
-
|
|
1405
1389
|
}
|
|
1406
1390
|
get focusRect() { return this._focusRect; }
|
|
1407
|
-
get focusRectSize(): null | { x: number, y: number, width: number, height: number } {
|
|
1408
|
-
const rect = this._focusRect;
|
|
1409
|
-
if (rect && (rect instanceof DOMRect || ("width" in rect && "height" in rect && "x" in rect && "y" in rect))) {
|
|
1410
|
-
return { x: rect.x, y: rect.y, width: rect.width, height: rect.height };
|
|
1411
|
-
}
|
|
1412
|
-
else if (rect instanceof HTMLElement) {
|
|
1413
|
-
const r = rect.getBoundingClientRect();
|
|
1414
|
-
return { x: r.x, y: r.y, width: r.width, height: r.height };
|
|
1415
|
-
}
|
|
1416
|
-
return null;
|
|
1417
|
-
}
|
|
1418
1391
|
/** Settings when a focus rect is set. Use `setCameraFocusRect(...)` to do so.
|
|
1419
1392
|
* This can be used to offset the renderer center e.g. to a specific DOM element.
|
|
1420
1393
|
*/
|
|
1421
1394
|
readonly focusRectSettings: FocusRectSettings = {
|
|
1422
1395
|
/** Controls how fast the rect is centered. Smaller values mean the rect is centered faster.
|
|
1423
1396
|
* A minimum value of 0 means the rect is centered instantly.
|
|
1424
|
-
* @default
|
|
1397
|
+
* @default .05
|
|
1425
1398
|
*/
|
|
1426
|
-
damping:
|
|
1427
|
-
|
|
1428
|
-
/**
|
|
1429
|
-
* Zoom factor when a focus rect is set.
|
|
1430
|
-
*/
|
|
1431
|
-
zoom: 1,
|
|
1432
|
-
/**
|
|
1433
|
-
* Additional offset in pixels from the center of the rect
|
|
1434
|
-
*/
|
|
1435
|
-
offsetX: 0,
|
|
1436
|
-
/**
|
|
1437
|
-
* Additional offset in pixels from the center of the rect
|
|
1438
|
-
*/
|
|
1439
|
-
offsetY: 0,
|
|
1399
|
+
damping: .05
|
|
1440
1400
|
};
|
|
1441
1401
|
private _focusRect: FocusRect | null = null;
|
|
1442
1402
|
|
|
@@ -1568,6 +1528,14 @@ export class Context implements IContext {
|
|
|
1568
1528
|
|
|
1569
1529
|
if (this.isVisibleToUser || this.runInBackground) {
|
|
1570
1530
|
|
|
1531
|
+
if (this._focusRect) {
|
|
1532
|
+
if (this.mainCamera instanceof PerspectiveCamera) {
|
|
1533
|
+
const settings = this.focusRectSettings;
|
|
1534
|
+
const dt = settings.damping > 0 ? this.time.deltaTime / settings.damping : 1;
|
|
1535
|
+
updateCameraFocusRect(this._focusRect, dt, this.mainCamera, this.renderer);
|
|
1536
|
+
}
|
|
1537
|
+
}
|
|
1538
|
+
|
|
1571
1539
|
this._currentFrameEvent = FrameEvent.OnBeforeRender;
|
|
1572
1540
|
|
|
1573
1541
|
// should we move these callbacks in the regular three onBeforeRender events?
|
|
@@ -1584,14 +1552,6 @@ export class Context implements IContext {
|
|
|
1584
1552
|
this.executeCoroutines(FrameEvent.OnBeforeRender);
|
|
1585
1553
|
invokeLifecycleFunctions(this, FrameEvent.OnBeforeRender);
|
|
1586
1554
|
|
|
1587
|
-
if (this._focusRect) {
|
|
1588
|
-
if (this.mainCamera instanceof PerspectiveCamera) {
|
|
1589
|
-
const settings = this.focusRectSettings;
|
|
1590
|
-
const dt = settings.damping > 0 ? this.time.deltaTime / settings.damping : 1;
|
|
1591
|
-
updateCameraFocusRect(this._focusRect, this.focusRectSettings, dt, this.mainCamera, this.renderer);
|
|
1592
|
-
}
|
|
1593
|
-
}
|
|
1594
|
-
|
|
1595
1555
|
if (this._needsUpdateSize)
|
|
1596
1556
|
this.updateSize();
|
|
1597
1557
|
|
|
@@ -107,7 +107,7 @@ export class NEEDLE_lightmaps implements GLTFLoaderPlugin {
|
|
|
107
107
|
|
|
108
108
|
private resolveTexture(entry: LightmapInfo, res: any) {
|
|
109
109
|
const tex: Texture = res as unknown as Texture;
|
|
110
|
-
if (debug) console.log("
|
|
110
|
+
if (debug) console.log("Lightmap loaded:", tex);
|
|
111
111
|
if (tex?.isTexture) {
|
|
112
112
|
if (!this.registry)
|
|
113
113
|
console.log(LightmapType[entry.type], entry.pointer, tex);
|
|
@@ -32,22 +32,10 @@ export class NeedleLogoElement extends HTMLElement {
|
|
|
32
32
|
cursor: pointer;
|
|
33
33
|
}
|
|
34
34
|
img {
|
|
35
|
+
width: 95px;
|
|
35
36
|
height: 100%;
|
|
36
37
|
align-self: end;
|
|
37
38
|
margin-left: 0.6rem;
|
|
38
|
-
transition: transform 0.2s;
|
|
39
|
-
}
|
|
40
|
-
img.with-text {
|
|
41
|
-
width: 11.5ch;
|
|
42
|
-
&:hover {
|
|
43
|
-
transform: scale(1.02);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
img.compact {
|
|
47
|
-
width: 1.7em;
|
|
48
|
-
&:hover {
|
|
49
|
-
transform: scale(1.1);
|
|
50
|
-
}
|
|
51
39
|
}
|
|
52
40
|
span {
|
|
53
41
|
font-size: 1rem;
|
|
@@ -55,14 +43,12 @@ export class NeedleLogoElement extends HTMLElement {
|
|
|
55
43
|
}
|
|
56
44
|
</style>
|
|
57
45
|
<div class="wrapper">
|
|
58
|
-
<img class="logo
|
|
46
|
+
<img class="logo" src=${needleLogoSVG} />
|
|
59
47
|
</div>
|
|
60
48
|
`;
|
|
61
49
|
this._root.appendChild(template.content.cloneNode(true));
|
|
62
50
|
this.wrapper = this._root.querySelector(".wrapper") as HTMLDivElement;
|
|
63
51
|
this._root.appendChild(this.wrapper);
|
|
64
|
-
this.logoElement = this._root.querySelector("img.logo") as HTMLImageElement;
|
|
65
|
-
|
|
66
52
|
// this.wrapper.classList.add("wrapper");
|
|
67
53
|
|
|
68
54
|
// this.wrapper.appendChild(this.logoElement);
|
|
@@ -81,24 +67,13 @@ export class NeedleLogoElement extends HTMLElement {
|
|
|
81
67
|
|
|
82
68
|
private readonly _root: ShadowRoot;
|
|
83
69
|
private readonly wrapper: HTMLDivElement;
|
|
84
|
-
private readonly logoElement: HTMLImageElement;
|
|
70
|
+
private readonly logoElement: HTMLImageElement = document.createElement("img");
|
|
71
|
+
private readonly textElement: HTMLSpanElement = document.createElement("span");
|
|
85
72
|
|
|
86
73
|
setLogoVisible(val: boolean) {
|
|
87
74
|
this.logoElement.style.display = val ? "block" : "none";
|
|
88
75
|
}
|
|
89
76
|
|
|
90
|
-
setType(type: "full" | "compact") {
|
|
91
|
-
if (type === "full") {
|
|
92
|
-
this.logoElement.src = needleLogoSVG;
|
|
93
|
-
this.logoElement.classList.remove("with-text");
|
|
94
|
-
this.logoElement.classList.remove("compact");
|
|
95
|
-
} else {
|
|
96
|
-
this.logoElement.src = needleLogoOnlySVG;
|
|
97
|
-
this.logoElement.classList.add("with-text");
|
|
98
|
-
this.logoElement.classList.add("compact");
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
77
|
}
|
|
103
78
|
if (!customElements.get(elementName))
|
|
104
79
|
customElements.define(elementName, NeedleLogoElement);
|
|
@@ -459,7 +459,7 @@ export class NeedleMenuElement extends HTMLElement {
|
|
|
459
459
|
|
|
460
460
|
.logo {
|
|
461
461
|
cursor: pointer;
|
|
462
|
-
padding-left: 0.
|
|
462
|
+
padding-left: 0.6rem;
|
|
463
463
|
padding-bottom: .02rem;
|
|
464
464
|
margin-right: 0.5rem;
|
|
465
465
|
}
|
|
@@ -664,8 +664,8 @@ export class NeedleMenuElement extends HTMLElement {
|
|
|
664
664
|
<slot name="end"></slot>
|
|
665
665
|
</div>
|
|
666
666
|
</div>
|
|
667
|
-
<div style="user-select:none
|
|
668
|
-
<span class="madewith notranslate"
|
|
667
|
+
<div style="user-select:none" class="logo">
|
|
668
|
+
<span class="madewith notranslate">powered by</span>
|
|
669
669
|
</div>
|
|
670
670
|
</div>
|
|
671
671
|
<button class="compact-menu-button">
|
|
@@ -698,7 +698,6 @@ export class NeedleMenuElement extends HTMLElement {
|
|
|
698
698
|
this.wrapper.classList.add("wrapper");
|
|
699
699
|
|
|
700
700
|
const logo = NeedleLogoElement.create();
|
|
701
|
-
logo.setType("compact");
|
|
702
701
|
logo.style.minHeight = "1rem";
|
|
703
702
|
this.logoContainer.append(logo);
|
|
704
703
|
this.logoContainer.addEventListener("click", () => {
|
|
@@ -374,40 +374,40 @@ export class EngineLoadingView implements ILoadingViewHandler {
|
|
|
374
374
|
// }
|
|
375
375
|
// }
|
|
376
376
|
|
|
377
|
-
|
|
377
|
+
this.handleRuntimeLicense(this._loadingElement);
|
|
378
378
|
|
|
379
379
|
return this._loadingElement;
|
|
380
380
|
}
|
|
381
381
|
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
382
|
+
private async handleRuntimeLicense(loadingElement: HTMLElement) {
|
|
383
|
+
// First check if we have a commercial license
|
|
384
|
+
let commercialLicense = hasCommercialLicense();
|
|
385
|
+
// if it's the case then we don't need to perform a runtime check
|
|
386
|
+
if (commercialLicense) return;
|
|
387
|
+
|
|
388
|
+
// If we don't have a commercial license, then we need to display our message
|
|
389
|
+
if (debugLicense) console.log("Loading UI has commercial license?", commercialLicense);
|
|
390
|
+
const nonCommercialContainer = document.createElement("div");
|
|
391
|
+
nonCommercialContainer.style.paddingTop = ".6em";
|
|
392
|
+
nonCommercialContainer.style.fontSize = ".8em";
|
|
393
|
+
nonCommercialContainer.style.textTransform = "uppercase";
|
|
394
|
+
nonCommercialContainer.innerText = "NEEDLE ENGINE NON COMMERCIAL VERSION\nCLICK HERE TO GET A LICENSE";
|
|
395
|
+
nonCommercialContainer.style.cursor = "pointer";
|
|
396
|
+
nonCommercialContainer.style.userSelect = "none";
|
|
397
|
+
nonCommercialContainer.style.textAlign = "center";
|
|
398
|
+
nonCommercialContainer.style.pointerEvents = "all";
|
|
399
|
+
nonCommercialContainer.addEventListener("click", () => window.open("https://needle.tools/pricing", "_self"));
|
|
400
|
+
nonCommercialContainer.style.opacity = "0";
|
|
401
|
+
loadingElement.appendChild(nonCommercialContainer);
|
|
402
|
+
|
|
403
|
+
// Use the runtime license check
|
|
404
|
+
if (!isDevEnvironment() && runtimeLicenseCheckPromise) {
|
|
405
|
+
if (debugLicense) console.log("Waiting for runtime license check");
|
|
406
|
+
await runtimeLicenseCheckPromise;
|
|
407
|
+
commercialLicense = hasCommercialLicense();
|
|
408
|
+
}
|
|
409
|
+
if (commercialLicense) return;
|
|
410
|
+
nonCommercialContainer.style.transition = "opacity .5s ease-in-out";
|
|
411
|
+
nonCommercialContainer.style.opacity = "1";
|
|
412
|
+
}
|
|
413
413
|
}
|
|
@@ -993,50 +993,11 @@ export class OrbitControls extends Behaviour implements ICameraController {
|
|
|
993
993
|
|
|
994
994
|
// Adapted from https://discourse.threejs.org/t/camera-zoom-to-fit-object/936/24
|
|
995
995
|
// Slower but better implementation that takes bones and exact vertex positions into account: https://github.com/google/model-viewer/blob/04e900c5027de8c5306fe1fe9627707f42811b05/packages/model-viewer/src/three-components/ModelScene.ts#L321
|
|
996
|
-
|
|
997
996
|
/**
|
|
998
997
|
* Fits the camera to show the objects provided (defaults to the scene if no objects are passed in)
|
|
999
|
-
* @param options The options for fitting the camera. Use to provide objects to fit to, fit direction and size and other settings.
|
|
1000
998
|
*/
|
|
1001
|
-
fitCamera(options?: OrbitFitCameraOptions)
|
|
1002
|
-
/** @deprecated Use fitCamera(options) */
|
|
1003
|
-
fitCamera(objects?: Object3D | Array<Object3D>, options?: Omit<OrbitFitCameraOptions, "objects">);
|
|
1004
|
-
fitCamera(objectsOrOptions?: Object3D | Array<Object3D> | OrbitFitCameraOptions, options?: OrbitFitCameraOptions): void {
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
let objects: Object3D | Array<Object3D> | undefined = undefined;
|
|
1008
|
-
// If the user passed in an array as first argument
|
|
1009
|
-
if (Array.isArray(objectsOrOptions)) {
|
|
1010
|
-
objects = objectsOrOptions;
|
|
1011
|
-
}
|
|
1012
|
-
// If the user passed in an object as first argument
|
|
1013
|
-
else if (objectsOrOptions && "type" in objectsOrOptions) {
|
|
1014
|
-
objects = objectsOrOptions;
|
|
1015
|
-
}
|
|
1016
|
-
// If the user passed in an object as first argument and options as second argument
|
|
1017
|
-
else if (objectsOrOptions && typeof objectsOrOptions === "object") {
|
|
1018
|
-
if (!(objectsOrOptions instanceof Object3D) && !Array.isArray(objectsOrOptions)) {
|
|
1019
|
-
options = objectsOrOptions;
|
|
1020
|
-
objects = options.objects;
|
|
1021
|
-
}
|
|
1022
|
-
}
|
|
1023
|
-
// Ensure objects are setup correctly
|
|
1024
|
-
if (objects && !Array.isArray(objects)) {
|
|
1025
|
-
objects = [objects];
|
|
1026
|
-
}
|
|
1027
|
-
if (!Array.isArray(objects) || objects && objects.length <= 0) {
|
|
1028
|
-
objects = this.context.scene.children;
|
|
1029
|
-
}
|
|
1030
|
-
|
|
1031
|
-
// Make sure there's anything to fit to
|
|
1032
|
-
if (!Array.isArray(objects) || objects.length <= 0) {
|
|
1033
|
-
console.warn("No objects to fit camera to...");
|
|
1034
|
-
return;
|
|
1035
|
-
}
|
|
1036
|
-
|
|
1037
|
-
|
|
999
|
+
fitCamera(options?: OrbitFitCameraOptions): void {
|
|
1038
1000
|
const res = fitCamera({
|
|
1039
|
-
objects: [...objects],
|
|
1040
1001
|
...options,
|
|
1041
1002
|
autoApply: false,
|
|
1042
1003
|
context: this.context,
|
|
@@ -358,11 +358,8 @@ export class Renderer extends Behaviour implements IRenderer {
|
|
|
358
358
|
//@ts-ignore
|
|
359
359
|
get sharedMaterials(): SharedMaterialArray {
|
|
360
360
|
|
|
361
|
-
// @ts-ignore (original materials will be set during deserialization)
|
|
362
|
-
if(this._originalMaterials === undefined) return null;
|
|
363
|
-
|
|
364
361
|
// @ts-ignore during deserialization code might access this property *before* the setter and then create an empty array
|
|
365
|
-
if (this.
|
|
362
|
+
if (!this.__didAwake) return null;
|
|
366
363
|
|
|
367
364
|
if (!this._sharedMaterials || !this._sharedMaterials.is(this)) {
|
|
368
365
|
if (!this._originalMaterials) this._originalMaterials = [];
|
|
@@ -728,8 +725,6 @@ export class Renderer extends Behaviour implements IRenderer {
|
|
|
728
725
|
// If the material has a envMap and is NOT using a reflection probe we set the envMap to the scene environment
|
|
729
726
|
if (mat && "envMap" in mat && "envMapIntensity" in mat && !ReflectionProbe.isUsingReflectionProbe(mat)) {
|
|
730
727
|
mat.envMap = this.context.scene.environment;
|
|
731
|
-
mat.envMapIntensity = this.context.scene.environmentIntensity;
|
|
732
|
-
mat.envMapRotation = this.context.scene.environmentRotation;
|
|
733
728
|
}
|
|
734
729
|
}
|
|
735
730
|
}
|
|
@@ -208,7 +208,6 @@ export { ClickThrough } from "../web/Clickthrough.js";
|
|
|
208
208
|
export { CursorFollow } from "../web/CursorFollow.js";
|
|
209
209
|
export { HoverAnimation } from "../web/HoverAnimation.js";
|
|
210
210
|
export { ScrollFollow } from "../web/ScrollFollow.js";
|
|
211
|
-
export { ViewBox } from "../web/ViewBox.js";
|
|
212
211
|
export { Avatar } from "../webxr/Avatar.js";
|
|
213
212
|
export { XRControllerFollow } from "../webxr/controllers/XRControllerFollow.js";
|
|
214
213
|
export { XRControllerModel } from "../webxr/controllers/XRControllerModel.js";
|
|
@@ -66,19 +66,10 @@ export class PlayableDirector extends Behaviour {
|
|
|
66
66
|
this.createTrackFunctions[type] = fn;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
/**
|
|
70
|
-
* The timeline asset that is played by this director.
|
|
71
|
-
*/
|
|
72
69
|
playableAsset?: Models.TimelineAssetModel;
|
|
73
|
-
|
|
74
70
|
/** Set to true to start playing the timeline when the scene starts */
|
|
75
71
|
@serializable()
|
|
76
72
|
playOnAwake?: boolean;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Determines how the timeline behaves when it reaches the end of its duration.
|
|
80
|
-
* @default DirectorWrapMode.Loop
|
|
81
|
-
*/
|
|
82
73
|
@serializable()
|
|
83
74
|
extrapolationMode: DirectorWrapMode = DirectorWrapMode.Loop;
|
|
84
75
|
|
|
@@ -92,12 +92,4 @@ export declare class SignalMarkerModel extends MarkerModel {
|
|
|
92
92
|
asset: string;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
* Marker with a name, used for scroll-driven timelines. It is used together with elements in your HTML to define what time in the timeline should be active when the element is in the scroll view.
|
|
97
|
-
*
|
|
98
|
-
* @example Mark html elements to define scroll positions
|
|
99
|
-
* ```html
|
|
100
|
-
* <div data-timeline-marker>...</div>
|
|
101
|
-
* ```
|
|
102
|
-
*/
|
|
103
|
-
export type ScrollMarkerModel = MarkerModel & { name: string };
|
|
95
|
+
export type ScrollMarkerModel = MarkerModel & { selector: string };
|