@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.
Files changed (75) hide show
  1. package/components.needle.json +1 -1
  2. package/dist/{needle-engine.bundle-BeZ_xmJa.js → needle-engine.bundle-CUo74dPe.js} +5431 -5613
  3. package/dist/{needle-engine.bundle-D4dO0t5I.umd.cjs → needle-engine.bundle-Cf5H9Zy9.umd.cjs} +137 -148
  4. package/dist/{needle-engine.bundle-C3bpSNYu.min.js → needle-engine.bundle-DlAVTipB.min.js} +153 -164
  5. package/dist/needle-engine.js +257 -258
  6. package/dist/needle-engine.min.js +1 -1
  7. package/dist/needle-engine.umd.cjs +1 -1
  8. package/lib/engine/codegen/register_types.js +0 -2
  9. package/lib/engine/codegen/register_types.js.map +1 -1
  10. package/lib/engine/engine_camera.d.ts +1 -7
  11. package/lib/engine/engine_camera.fit.d.ts +1 -1
  12. package/lib/engine/engine_camera.fit.js +30 -3
  13. package/lib/engine/engine_camera.fit.js.map +1 -1
  14. package/lib/engine/engine_camera.js +6 -46
  15. package/lib/engine/engine_camera.js.map +1 -1
  16. package/lib/engine/engine_context.d.ts +0 -6
  17. package/lib/engine/engine_context.js +9 -48
  18. package/lib/engine/engine_context.js.map +1 -1
  19. package/lib/engine/extensions/NEEDLE_lightmaps.js +1 -1
  20. package/lib/engine/extensions/NEEDLE_lightmaps.js.map +1 -1
  21. package/lib/engine/webcomponents/logo-element.d.ts +1 -1
  22. package/lib/engine/webcomponents/logo-element.js +5 -29
  23. package/lib/engine/webcomponents/logo-element.js.map +1 -1
  24. package/lib/engine/webcomponents/needle menu/needle-menu.js +3 -4
  25. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  26. package/lib/engine/webcomponents/needle-engine.loading.d.ts +1 -0
  27. package/lib/engine/webcomponents/needle-engine.loading.js +36 -3
  28. package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
  29. package/lib/engine-components/OrbitControls.d.ts +1 -4
  30. package/lib/engine-components/OrbitControls.js +6 -30
  31. package/lib/engine-components/OrbitControls.js.map +1 -1
  32. package/lib/engine-components/Renderer.js +1 -6
  33. package/lib/engine-components/Renderer.js.map +1 -1
  34. package/lib/engine-components/codegen/components.d.ts +0 -1
  35. package/lib/engine-components/codegen/components.js +0 -1
  36. package/lib/engine-components/codegen/components.js.map +1 -1
  37. package/lib/engine-components/timeline/PlayableDirector.d.ts +0 -7
  38. package/lib/engine-components/timeline/PlayableDirector.js +0 -7
  39. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  40. package/lib/engine-components/timeline/TimelineModels.d.ts +1 -9
  41. package/lib/engine-components/timeline/TimelineTracks.js +2 -4
  42. package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
  43. package/lib/engine-components/utils/LookAt.js +1 -5
  44. package/lib/engine-components/utils/LookAt.js.map +1 -1
  45. package/lib/engine-components/web/Clickthrough.js +2 -10
  46. package/lib/engine-components/web/Clickthrough.js.map +1 -1
  47. package/lib/engine-components/web/ScrollFollow.d.ts +0 -22
  48. package/lib/engine-components/web/ScrollFollow.js +13 -124
  49. package/lib/engine-components/web/ScrollFollow.js.map +1 -1
  50. package/lib/engine-components/web/index.d.ts +0 -1
  51. package/lib/engine-components/web/index.js +0 -1
  52. package/lib/engine-components/web/index.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/engine/codegen/register_types.ts +0 -2
  55. package/src/engine/engine_camera.fit.ts +32 -2
  56. package/src/engine/engine_camera.ts +8 -62
  57. package/src/engine/engine_context.ts +10 -50
  58. package/src/engine/extensions/NEEDLE_lightmaps.ts +1 -1
  59. package/src/engine/webcomponents/logo-element.ts +4 -29
  60. package/src/engine/webcomponents/needle menu/needle-menu.ts +3 -4
  61. package/src/engine/webcomponents/needle-engine.loading.ts +32 -32
  62. package/src/engine-components/OrbitControls.ts +1 -40
  63. package/src/engine-components/Renderer.ts +1 -6
  64. package/src/engine-components/codegen/components.ts +0 -1
  65. package/src/engine-components/timeline/PlayableDirector.ts +0 -9
  66. package/src/engine-components/timeline/TimelineModels.ts +1 -9
  67. package/src/engine-components/timeline/TimelineTracks.ts +2 -4
  68. package/src/engine-components/utils/LookAt.ts +1 -5
  69. package/src/engine-components/web/Clickthrough.ts +2 -11
  70. package/src/engine-components/web/ScrollFollow.ts +15 -149
  71. package/src/engine-components/web/index.ts +1 -2
  72. package/lib/engine-components/web/ViewBox.d.ts +0 -16
  73. package/lib/engine-components/web/ViewBox.js +0 -186
  74. package/lib/engine-components/web/ViewBox.js.map +0 -1
  75. 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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"}
@@ -2,4 +2,3 @@ export * from "./Clickthrough.js";
2
2
  export * from "./CursorFollow.js";
3
3
  export * from "./HoverAnimation.js";
4
4
  export * from "./ScrollFollow.js";
5
- export * from "./ViewBox.js";
@@ -2,5 +2,4 @@ export * from "./Clickthrough.js";
2
2
  export * from "./CursorFollow.js";
3
3
  export * from "./HoverAnimation.js";
4
4
  export * from "./ScrollFollow.js";
5
- export * from "./ViewBox.js";
6
5
  //# sourceMappingURL=index.js.map
@@ -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;AAClC,cAAc,cAAc,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.4f9d92a",
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, settings: FocusRectSettings, dt: number, camera: PerspectiveCamera, renderer: WebGLRenderer) {
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 sourceWidth = rendererRect.width;
88
- const sourceHeight = rendererRect.height;
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 as PerspectiveCamera["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
- let width = rendererRect.width;
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 0
1397
+ * @default .05
1425
1398
  */
1426
- damping: 0,
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("Light Texture loaded:", tex);
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 with-text" src=${needleLogoSVG} />
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.0rem;
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;" class="logo">
668
- <span class="madewith notranslate" style="display:none;">powered by</span>
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
- // this.handleRuntimeLicense(this._loadingElement);
377
+ this.handleRuntimeLicense(this._loadingElement);
378
378
 
379
379
  return this._loadingElement;
380
380
  }
381
381
 
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
- // }
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.__isDeserializing === true) return null;
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 };