@needle-tools/engine 4.8.7-next.e134730 → 4.8.8-next.5cb3196

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 (82) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +31 -23
  3. package/components.needle.json +1 -1
  4. package/dist/{needle-engine.bundle-X9nxhICu.umd.cjs → needle-engine.bundle-D83YACrg.umd.cjs} +147 -147
  5. package/dist/{needle-engine.bundle-CvRpjtJj.js → needle-engine.bundle-DJA-sz_-.js} +6955 -6904
  6. package/dist/{needle-engine.bundle-DrGsgE4t.min.js → needle-engine.bundle-SWdTk441.min.js} +144 -144
  7. package/dist/needle-engine.js +2 -2
  8. package/dist/needle-engine.min.js +1 -1
  9. package/dist/needle-engine.umd.cjs +1 -1
  10. package/lib/engine/engine_addressables.d.ts +12 -12
  11. package/lib/engine/engine_addressables.js +30 -23
  12. package/lib/engine/engine_addressables.js.map +1 -1
  13. package/lib/engine/engine_animation.d.ts +1 -3
  14. package/lib/engine/engine_animation.js +15 -10
  15. package/lib/engine/engine_animation.js.map +1 -1
  16. package/lib/engine/engine_camera.d.ts +8 -1
  17. package/lib/engine/engine_camera.js +25 -0
  18. package/lib/engine/engine_camera.js.map +1 -1
  19. package/lib/engine/engine_context.d.ts +9 -0
  20. package/lib/engine/engine_context.js +15 -0
  21. package/lib/engine/engine_context.js.map +1 -1
  22. package/lib/engine/engine_loaders.callbacks.d.ts +1 -0
  23. package/lib/engine/engine_loaders.callbacks.js +1 -0
  24. package/lib/engine/engine_loaders.callbacks.js.map +1 -1
  25. package/lib/engine/engine_loaders.js +15 -11
  26. package/lib/engine/engine_loaders.js.map +1 -1
  27. package/lib/engine/webcomponents/needle-engine.attributes.d.ts +1 -0
  28. package/lib/engine/webcomponents/needle-engine.d.ts +2 -2
  29. package/lib/engine/webcomponents/needle-engine.js +19 -21
  30. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  31. package/lib/engine-components/Animation.js +2 -1
  32. package/lib/engine-components/Animation.js.map +1 -1
  33. package/lib/engine-components/AnimationUtilsAutoplay.js +1 -6
  34. package/lib/engine-components/AnimationUtilsAutoplay.js.map +1 -1
  35. package/lib/engine-components/Camera.d.ts +2 -0
  36. package/lib/engine-components/Camera.js +5 -1
  37. package/lib/engine-components/Camera.js.map +1 -1
  38. package/lib/engine-components/DropListener.d.ts +21 -15
  39. package/lib/engine-components/DropListener.js +38 -34
  40. package/lib/engine-components/DropListener.js.map +1 -1
  41. package/lib/engine-components/LookAtConstraint.d.ts +5 -1
  42. package/lib/engine-components/LookAtConstraint.js +8 -0
  43. package/lib/engine-components/LookAtConstraint.js.map +1 -1
  44. package/lib/engine-components/OrbitControls.d.ts +30 -9
  45. package/lib/engine-components/OrbitControls.js +53 -14
  46. package/lib/engine-components/OrbitControls.js.map +1 -1
  47. package/lib/engine-components/Skybox.js +8 -9
  48. package/lib/engine-components/Skybox.js.map +1 -1
  49. package/lib/engine-components/api.d.ts +1 -0
  50. package/lib/engine-components/api.js.map +1 -1
  51. package/lib/engine-components/export/usdz/Extension.d.ts +1 -1
  52. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js +1 -1
  53. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js.map +1 -1
  54. package/lib/engine-components/export/usdz/USDZExporter.d.ts +7 -0
  55. package/lib/engine-components/export/usdz/USDZExporter.js +8 -1
  56. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  57. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +4 -2
  58. package/lib/engine-components/webxr/WebXRImageTracking.js +117 -81
  59. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  60. package/package.json +1 -1
  61. package/plugins/vite/alias.js +26 -17
  62. package/plugins/vite/editor-connection.js +4 -4
  63. package/src/engine/engine_addressables.ts +44 -33
  64. package/src/engine/engine_animation.ts +17 -10
  65. package/src/engine/engine_camera.ts +40 -1
  66. package/src/engine/engine_context.ts +21 -1
  67. package/src/engine/engine_loaders.callbacks.ts +1 -0
  68. package/src/engine/engine_loaders.ts +18 -13
  69. package/src/engine/webcomponents/needle-engine.attributes.ts +2 -0
  70. package/src/engine/webcomponents/needle-engine.ts +21 -21
  71. package/src/engine-components/Animation.ts +1 -1
  72. package/src/engine-components/AnimationUtilsAutoplay.ts +1 -6
  73. package/src/engine-components/Camera.ts +7 -1
  74. package/src/engine-components/DropListener.ts +44 -34
  75. package/src/engine-components/LookAtConstraint.ts +9 -1
  76. package/src/engine-components/OrbitControls.ts +78 -22
  77. package/src/engine-components/Skybox.ts +9 -10
  78. package/src/engine-components/api.ts +2 -1
  79. package/src/engine-components/export/usdz/Extension.ts +1 -1
  80. package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +1 -1
  81. package/src/engine-components/export/usdz/USDZExporter.ts +21 -12
  82. package/src/engine-components/webxr/WebXRImageTracking.ts +138 -90
@@ -7,7 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { Box3, Object3D, Vector2, Vector3 } from "three";
8
8
  import { isDevEnvironment } from "../engine/debug/index.js";
9
9
  import { AnimationUtils } from "../engine/engine_animation.js";
10
- import { addComponent } from "../engine/engine_components.js";
11
10
  import { destroy } from "../engine/engine_gameobject.js";
12
11
  import { Gizmos } from "../engine/engine_gizmos.js";
13
12
  import { getLoader } from "../engine/engine_gltf.js";
@@ -18,7 +17,6 @@ import { serializable } from "../engine/engine_serialization_decorator.js";
18
17
  import { fitObjectIntoVolume, getBoundingBox, placeOnSurface } from "../engine/engine_three_utils.js";
19
18
  import { getParam, setParamWithoutReload } from "../engine/engine_utils.js";
20
19
  import { determineMimeTypeFromExtension } from "../engine/engine_utils_format.js";
21
- import { Animation } from "./Animation.js";
22
20
  import { Behaviour } from "./Component.js";
23
21
  import { EventList } from "./EventList.js";
24
22
  /**
@@ -90,11 +88,6 @@ const blobKeyName = "blob";
90
88
  * @group Components
91
89
  */
92
90
  export class DropListener extends Behaviour {
93
- /**
94
- * When enabled, the DropListener will automatically synchronize dropped files to other connected clients.
95
- * When a file is dropped locally, it will be uploaded to blob storage and the URL will be shared with other clients.
96
- */
97
- useNetworking = true;
98
91
  /**
99
92
  * When assigned, the DropListener will only accept files that are dropped on this specific object.
100
93
  * This allows creating designated drop zones in your scene.
@@ -103,6 +96,9 @@ export class DropListener extends Behaviour {
103
96
  /**
104
97
  * When enabled, dropped objects will be automatically scaled to fit within the volume defined by fitVolumeSize.
105
98
  * Useful for ensuring dropped models appear at an appropriate scale.
99
+ *
100
+ * **Tip**: Use the handy `fitObjectIntoVolume` function (`import { fitObjectIntoVolume } from "@needle-tools/engine"`) for custom fitting needs.
101
+ *
106
102
  * @default false
107
103
  */
108
104
  fitIntoVolume = false;
@@ -117,6 +113,12 @@ export class DropListener extends Behaviour {
117
113
  * @default true
118
114
  */
119
115
  placeAtHitPosition = true;
116
+ /**
117
+ * When enabled, the DropListener will automatically synchronize dropped files to other connected clients.
118
+ * When a file is dropped locally, it will be uploaded to blob storage and the URL will be shared with other clients.
119
+ * @default false
120
+ */
121
+ useNetworking = false;
120
122
  /**
121
123
  * Event list that gets invoked after a file has been successfully added to the scene.
122
124
  * Receives {@link DropListenerOnDropArguments} containing the added object and related information.
@@ -128,6 +130,21 @@ export class DropListener extends Behaviour {
128
130
  * });
129
131
  */
130
132
  onDropped = new EventList();
133
+ /**
134
+ * Loads a file from the given URL and adds it to the scene.
135
+ * @returns A promise that resolves to the loaded object or null if loading failed.
136
+ */
137
+ loadFromURL(url, data) {
138
+ return this.addFromUrl(url, { screenposition: new Vector2(), point: data?.point, size: data?.size, }, false);
139
+ }
140
+ /**
141
+ * Forgets all previously added objects.
142
+ * The droplistener will then not be able to remove previously added objects.
143
+ */
144
+ forgetObjects() {
145
+ this.removePreviouslyAddedObjects(false);
146
+ }
147
+ // #region internals
131
148
  /** @internal */
132
149
  onEnable() {
133
150
  this.context.renderer.domElement.addEventListener("dragover", this.onDrag);
@@ -142,19 +159,6 @@ export class DropListener extends Behaviour {
142
159
  window.removeEventListener("paste", this.handlePaste);
143
160
  this.context.connection.stopListen("droplistener", this.onNetworkEvent);
144
161
  }
145
- /**
146
- * Loads a file from the given URL and adds it to the scene.
147
- */
148
- loadFromURL(url, data) {
149
- this.addFromUrl(url, { screenposition: new Vector2(), point: data?.point, size: data?.size, }, true);
150
- }
151
- /**
152
- * Forgets all previously added objects.
153
- * The droplistener will then not be able to remove previously added objects.
154
- */
155
- forgetObjects() {
156
- this.removePreviouslyAddedObjects(false);
157
- }
158
162
  /**
159
163
  * Handles network events received from other clients containing information about dropped objects
160
164
  * @param evt Network event data containing object information, position, and content URL
@@ -260,7 +264,7 @@ export class DropListener extends Behaviour {
260
264
  }
261
265
  }
262
266
  if (files.length > 0) {
263
- await this.addDroppedFiles(files, ctx);
267
+ await this.addFromFiles(files, ctx);
264
268
  }
265
269
  };
266
270
  /**
@@ -292,6 +296,7 @@ export class DropListener extends Behaviour {
292
296
  // Ignore dropped images
293
297
  const lowercaseUrl = url.toLowerCase();
294
298
  if (lowercaseUrl.endsWith(".hdr") || lowercaseUrl.endsWith(".hdri") || lowercaseUrl.endsWith(".exr") || lowercaseUrl.endsWith(".png") || lowercaseUrl.endsWith(".jpg") || lowercaseUrl.endsWith(".jpeg")) {
299
+ console.warn(`Fileformat is not supported: ${lowercaseUrl}`);
295
300
  return null;
296
301
  }
297
302
  // TODO: if the URL is invalid this will become a problem
@@ -306,7 +311,7 @@ export class DropListener extends Behaviour {
306
311
  });
307
312
  if (res && this._addedObjects.length <= 0) {
308
313
  ctx.url = url;
309
- const obj = this.addObject(res, ctx, isRemote);
314
+ const obj = this.onObjectLoaded(res, ctx, isRemote);
310
315
  return obj;
311
316
  }
312
317
  }
@@ -317,12 +322,13 @@ export class DropListener extends Behaviour {
317
322
  }
318
323
  _abort = null;
319
324
  /**
320
- * Processes dropped files, loads them as 3D models, and handles networking if enabled
321
- * Creates an abort controller to cancel previous uploads if new files are dropped
325
+ * Processes dropped files and loads them as 3D models.
326
+ * When enabled, it also handles network drops (sending files between clients).
327
+ * Automatically handles cancelling previous uploads if new files are dropped.
322
328
  * @param fileList Array of dropped files
323
- * @param ctx Context information about where the drop occurred
329
+ * @param ctx Context information about where on the screen or in 3D space the drop occurred
324
330
  */
325
- async addDroppedFiles(fileList, ctx) {
331
+ async addFromFiles(fileList, ctx) {
326
332
  if (debug)
327
333
  console.log("Add files", fileList);
328
334
  if (!Array.isArray(fileList))
@@ -355,7 +361,7 @@ export class DropListener extends Behaviour {
355
361
  if (res) {
356
362
  this.dispatchEvent(new CustomEvent(DropListenerEvents.FileDropped, { detail: file }));
357
363
  ctx.file = file;
358
- const obj = this.addObject(res, ctx, false);
364
+ const obj = this.onObjectLoaded(res, ctx, false);
359
365
  // handle uploading the dropped object and networking the event
360
366
  if (obj && this.context.connection.isConnected && this.useNetworking) {
361
367
  console.debug("Uploading dropped file to blob storage");
@@ -401,7 +407,7 @@ export class DropListener extends Behaviour {
401
407
  * @param isRemote Whether this object was shared from a remote client
402
408
  * @returns The added object or null if adding failed
403
409
  */
404
- addObject(data, ctx, isRemote) {
410
+ onObjectLoaded(data, ctx, isRemote) {
405
411
  const { model, contentMD5 } = data;
406
412
  if (debug)
407
413
  console.log(`Dropped ${this.gameObject.name}`, model);
@@ -439,9 +445,7 @@ export class DropListener extends Behaviour {
439
445
  }
440
446
  }
441
447
  }
442
- AnimationUtils.assignAnimationsFromFile(model, {
443
- createAnimationComponent: obj => addComponent(obj, Animation)
444
- });
448
+ AnimationUtils.autoplayAnimations(model);
445
449
  const evt = new DropListenerAddedEvent({
446
450
  sender: this,
447
451
  gltf: model,
@@ -520,9 +524,6 @@ export class DropListener extends Behaviour {
520
524
  return true;
521
525
  }
522
526
  }
523
- __decorate([
524
- serializable()
525
- ], DropListener.prototype, "useNetworking", void 0);
526
527
  __decorate([
527
528
  serializable(Object3D)
528
529
  ], DropListener.prototype, "dropArea", void 0);
@@ -535,6 +536,9 @@ __decorate([
535
536
  __decorate([
536
537
  serializable()
537
538
  ], DropListener.prototype, "placeAtHitPosition", void 0);
539
+ __decorate([
540
+ serializable()
541
+ ], DropListener.prototype, "useNetworking", void 0);
538
542
  __decorate([
539
543
  serializable(EventList)
540
544
  ], DropListener.prototype, "onDropped", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"DropListener.js","sourceRoot":"","sources":["../../src/engine-components/DropListener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DropListener.js","sourceRoot":"","sources":["../../src/engine-components/DropListener.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Object3D } from "three";
1
+ import { Object3D, Vector3 } from "three";
2
2
  import { Behaviour } from "./Component.js";
3
3
  /**
4
4
  * A LookAtConstraint is used by OrbitControls to make the camera look at a target.
@@ -16,4 +16,8 @@ export declare class LookAtConstraint extends Behaviour {
16
16
  * The sources to look at.
17
17
  */
18
18
  sources: Object3D[];
19
+ /**
20
+ * Set the position of the constraint.
21
+ */
22
+ setConstraintPosition(worldPosition: Vector3): void;
19
23
  }
@@ -23,6 +23,14 @@ export class LookAtConstraint extends Behaviour {
23
23
  * The sources to look at.
24
24
  */
25
25
  sources = [];
26
+ /**
27
+ * Set the position of the constraint.
28
+ */
29
+ setConstraintPosition(worldPosition) {
30
+ const source = this.sources[0];
31
+ if (source)
32
+ source.worldPosition = worldPosition;
33
+ }
26
34
  }
27
35
  __decorate([
28
36
  serializable()
@@ -1 +1 @@
1
- {"version":3,"file":"LookAtConstraint.js","sourceRoot":"","sources":["../../src/engine-components/LookAtConstraint.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAE3C;;OAEG;IAEH,gBAAgB,GAAY,IAAI,CAAC;IACjC;;OAEG;IAEH,MAAM,GAAY,KAAK,CAAC;IACxB;;OAEG;IAEH,OAAO,GAAe,EAAE,CAAC;CAC5B;AAXG;IADC,YAAY,EAAE;0DACkB;AAKjC;IADC,YAAY,EAAE;gDACS;AAKxB;IADC,YAAY,CAAC,QAAQ,CAAC;iDACE"}
1
+ {"version":3,"file":"LookAtConstraint.js","sourceRoot":"","sources":["../../src/engine-components/LookAtConstraint.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAW,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAE3C;;OAEG;IAEH,gBAAgB,GAAY,IAAI,CAAC;IACjC;;OAEG;IAEH,MAAM,GAAY,KAAK,CAAC;IACxB;;OAEG;IAEH,OAAO,GAAe,EAAE,CAAC;IAEzB;;OAEG;IACH,qBAAqB,CAAC,aAAsB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,MAAM;YAAE,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;IACrD,CAAC;CACJ;AAnBG;IADC,YAAY,EAAE;0DACkB;AAKjC;IADC,YAAY,EAAE;gDACS;AAKxB;IADC,YAAY,CAAC,QAAQ,CAAC;iDACE"}
@@ -1,4 +1,4 @@
1
- import { Object3D, Vector3, Vector3Like } from "three";
1
+ import { Object3D, Vector3Like } from "three";
2
2
  import { OrbitControls as ThreeOrbitControls } from "three/examples/jsm/controls/OrbitControls.js";
3
3
  import type { ICameraController } from "../engine/engine_types.js";
4
4
  import { Camera } from "./Camera.js";
@@ -295,8 +295,6 @@ export declare class OrbitControls extends Behaviour implements ICameraControlle
295
295
  * @param t The interpolation factor between the current look at target and the new target
296
296
  */
297
297
  private setLookTargetFromConstraint;
298
- /** @deprecated use `controls.target.lerp(position, delta)` */
299
- lerpTarget(position: Vector3, delta: number): void;
300
298
  private lerpLookTarget;
301
299
  private setTargetFromRaycast;
302
300
  /**
@@ -309,24 +307,47 @@ export declare class OrbitControls extends Behaviour implements ICameraControlle
309
307
  /**
310
308
  * Options for fitting the camera to the scene. Used in {@link OrbitControls.fitCamera}
311
309
  */
312
- declare type FitCameraOptions = {
310
+ export type FitCameraOptions = {
313
311
  /** When enabled debug rendering will be shown */
314
312
  debug?: boolean;
315
313
  /**
316
314
  * The objects to fit the camera to. If not provided the scene children will be used
317
315
  */
318
316
  objects?: Object3D[] | Object3D;
319
- /** Fit offset: A factor to multiply the distance to the objects by
320
- * @default 1.1
321
- */
322
- fitOffset?: number;
323
317
  /** If true the camera will move immediately to the new position, otherwise it will lerp
324
318
  * @default false
325
319
  */
326
320
  immediate?: boolean;
321
+ /** Fit offset: A factor to multiply the distance to the objects by
322
+ * @default 1.1
323
+ */
324
+ fitOffset?: number;
325
+ /** The direction from which the camera should be fitted in worldspace. If not defined the current camera's position will be used */
326
+ fitDirection?: Vector3Like;
327
327
  /** If set to "y" the camera will be centered in the y axis */
328
328
  centerCamera?: "none" | "y";
329
+ /** Set to 'auto' to update the camera near or far plane based on the fitted-objects bounds */
329
330
  cameraNearFar?: "keep" | "auto";
331
+ /**
332
+ * Offset the camera position in world space
333
+ */
334
+ cameraOffset?: Partial<Vector3Like>;
335
+ /**
336
+ * Offset the camera position relative to the size of the objects being focused on (e.g. x: 0.5).
337
+ * Value range: -1 to 1
338
+ */
339
+ relativeCameraOffset?: Partial<Vector3Like>;
340
+ /**
341
+ * Offset the camera target position in world space
342
+ */
343
+ targetOffset?: Partial<Vector3Like>;
344
+ /**
345
+ * Offset the camera target position relative to the size of the objects being focused on.
346
+ * Value range: -1 to 1
347
+ */
348
+ relativeTargetOffset?: Partial<Vector3Like>;
349
+ /**
350
+ * Field of view (FOV) for the camera
351
+ */
330
352
  fov?: number;
331
353
  };
332
- export {};
@@ -565,13 +565,13 @@ export class OrbitControls extends Behaviour {
565
565
  if (this._lookTargetLerpActive) {
566
566
  this._lookTargetLerp01 += this.context.time.deltaTime / this._lookTargetLerpDuration;
567
567
  if (this._lookTargetLerp01 >= 1) {
568
- this._controls.target.copy(this._lookTargetEndPosition);
568
+ this.lerpLookTarget(this._lookTargetEndPosition, this._lookTargetEndPosition, 1);
569
569
  this._lookTargetLerpActive = false;
570
570
  this.dispatchEvent(new CameraTargetReachedEvent(this, "lookat"));
571
571
  }
572
572
  else {
573
573
  const t = Mathf.easeInOutCubic(this._lookTargetLerp01);
574
- this._controls.target.lerpVectors(this._lookTargetStartPosition, this._lookTargetEndPosition, t);
574
+ this.lerpLookTarget(this._lookTargetStartPosition, this._lookTargetEndPosition, t);
575
575
  }
576
576
  }
577
577
  // lerp the fov
@@ -641,8 +641,9 @@ export class OrbitControls extends Behaviour {
641
641
  }
642
642
  // this._controls.zoomToCursor = this.zoomToCursor;
643
643
  if (!this.context.isInXR) {
644
- if (!freeCam && this.lookAtConstraint?.locked)
644
+ if (!freeCam && this.lookAtConstraint?.locked && !this._lookTargetLerpActive) {
645
645
  this.setLookTargetFromConstraint(0, this.lookAtConstraint01);
646
+ }
646
647
  this._controls.update(this.context.time.deltaTime);
647
648
  if (debug) {
648
649
  Gizmos.DrawWireSphere(this._controls.target, 0.1, 0x00ff00);
@@ -789,6 +790,7 @@ export class OrbitControls extends Behaviour {
789
790
  else
790
791
  this._fovLerpDuration = this.targetLerpDuration;
791
792
  }
793
+ // if (this.context.mainCameraComponent) this.context.mainCameraComponent.fieldOfView = fov;
792
794
  }
793
795
  /** Moves the camera look-at target to a position smoothly.
794
796
  * @param position The position in world space to move the camera target to. If null the camera will stop lerping to the target.
@@ -810,7 +812,7 @@ export class OrbitControls extends Behaviour {
810
812
  Gizmos.DrawWireSphere(this._lookTargetEndPosition, .2, 0xff0000, 2);
811
813
  }
812
814
  if (immediateOrDuration === true) {
813
- this._controls.target.copy(this._lookTargetEndPosition);
815
+ this.lerpLookTarget(this._lookTargetEndPosition, this._lookTargetEndPosition, 1);
814
816
  }
815
817
  else {
816
818
  this._lookTargetLerpActive = true;
@@ -843,21 +845,21 @@ export class OrbitControls extends Behaviour {
843
845
  const target = sources[index];
844
846
  if (target) {
845
847
  target.getWorldPosition(this._lookTargetEndPosition);
846
- this.lerpLookTarget(this._lookTargetEndPosition, t);
848
+ this.lerpLookTarget(this._controls.target, this._lookTargetEndPosition, t);
847
849
  return true;
848
850
  }
849
851
  }
850
852
  return false;
851
853
  }
852
- /** @deprecated use `controls.target.lerp(position, delta)` */
853
- lerpTarget(position, delta) { return this.lerpLookTarget(position, delta); }
854
- lerpLookTarget(position, delta) {
854
+ lerpLookTarget(start, position, t) {
855
855
  if (!this._controls)
856
856
  return;
857
- if (delta >= 1)
857
+ if (t >= 1)
858
858
  this._controls.target.copy(position);
859
859
  else
860
- this._controls.target.lerp(position, delta);
860
+ this._controls.target.lerpVectors(start, position, t);
861
+ if (this.lookAtConstraint)
862
+ this.lookAtConstraint.setConstraintPosition(this._controls.target);
861
863
  }
862
864
  setTargetFromRaycast(ray, immediateOrDuration = false) {
863
865
  if (!this.controls)
@@ -881,6 +883,7 @@ export class OrbitControls extends Behaviour {
881
883
  fitCamera(objectsOrOptions, options) {
882
884
  if (this.context.isInXR) {
883
885
  // camera fitting in XR is not supported
886
+ console.warn('[OrbitControls] Can not fit camera while XR session is active');
884
887
  return;
885
888
  }
886
889
  let objects = undefined;
@@ -919,7 +922,7 @@ export class OrbitControls extends Behaviour {
919
922
  }
920
923
  if (!options)
921
924
  options = {};
922
- const { immediate = false, centerCamera = "y", cameraNearFar = "auto", fitOffset = 1.1, fov = camera?.fov } = options;
925
+ const { immediate = false, centerCamera, cameraNearFar = "auto", fitOffset = 1.1, fov = camera?.fov } = options;
923
926
  const size = new Vector3();
924
927
  const center = new Vector3();
925
928
  // TODO would be much better to calculate the bounds in camera space instead of world space -
@@ -946,7 +949,7 @@ export class OrbitControls extends Behaviour {
946
949
  console.warn("Camera fit size is zero", box, [...objects]);
947
950
  return;
948
951
  }
949
- const verticalFov = options.fov || camera.fov;
952
+ const verticalFov = fov;
950
953
  const horizontalFov = 2 * Math.atan(Math.tan(verticalFov * Math.PI / 360 / 2) * camera.aspect) / Math.PI * 360;
951
954
  const fitHeightDistance = size.y / (2 * Math.atan(Math.PI * verticalFov / 360));
952
955
  const fitWidthDistance = size.x / (2 * Math.atan(Math.PI * horizontalFov / 360));
@@ -959,6 +962,22 @@ export class OrbitControls extends Behaviour {
959
962
  const verticalOffset = 0.05;
960
963
  const lookAt = center.clone();
961
964
  lookAt.y -= size.y * verticalOffset;
965
+ if (options.targetOffset) {
966
+ if (options.targetOffset.x !== undefined)
967
+ lookAt.x += options.targetOffset.x;
968
+ if (options.targetOffset.y !== undefined)
969
+ lookAt.y += options.targetOffset.y;
970
+ if (options.targetOffset.z !== undefined)
971
+ lookAt.z += options.targetOffset.z;
972
+ }
973
+ if (options.relativeTargetOffset) {
974
+ if (options.relativeTargetOffset.x !== undefined)
975
+ lookAt.x += options.relativeTargetOffset.x * size.x;
976
+ if (options.relativeTargetOffset.y !== undefined)
977
+ lookAt.y += options.relativeTargetOffset.y * size.y;
978
+ if (options.relativeTargetOffset.z !== undefined)
979
+ lookAt.z += options.relativeTargetOffset.z * size.z;
980
+ }
962
981
  this.setLookTargetPosition(lookAt, immediate);
963
982
  this.setFieldOfView(options.fov, immediate);
964
983
  if (cameraNearFar == undefined || cameraNearFar == "auto") {
@@ -982,9 +1001,13 @@ export class OrbitControls extends Behaviour {
982
1001
  this.maxZoom = currentZoom * 1.1;
983
1002
  camera.updateMatrixWorld();
984
1003
  camera.updateProjectionMatrix();
985
- const cameraWp = getWorldPosition(camera);
986
1004
  const direction = center.clone();
987
- direction.sub(cameraWp);
1005
+ if (options.fitDirection) {
1006
+ direction.sub(new Vector3().copy(options.fitDirection).multiplyScalar(1_000_000));
1007
+ }
1008
+ else {
1009
+ direction.sub(camera.worldPosition);
1010
+ }
988
1011
  if (centerCamera === "y")
989
1012
  direction.y = 0;
990
1013
  direction.normalize();
@@ -992,6 +1015,22 @@ export class OrbitControls extends Behaviour {
992
1015
  if (centerCamera === "y")
993
1016
  direction.y += -verticalOffset * 4 * distance;
994
1017
  let cameraLocalPosition = center.clone().sub(direction);
1018
+ if (options.cameraOffset) {
1019
+ if (options.cameraOffset.x !== undefined)
1020
+ cameraLocalPosition.x += options.cameraOffset.x;
1021
+ if (options.cameraOffset.y !== undefined)
1022
+ cameraLocalPosition.y += options.cameraOffset.y;
1023
+ if (options.cameraOffset.z !== undefined)
1024
+ cameraLocalPosition.z += options.cameraOffset.z;
1025
+ }
1026
+ if (options.relativeCameraOffset) {
1027
+ if (options.relativeCameraOffset.x !== undefined)
1028
+ cameraLocalPosition.x += options.relativeCameraOffset.x * size.x;
1029
+ if (options.relativeCameraOffset.y !== undefined)
1030
+ cameraLocalPosition.y += options.relativeCameraOffset.y * size.y;
1031
+ if (options.relativeCameraOffset.z !== undefined)
1032
+ cameraLocalPosition.z += options.relativeCameraOffset.z * size.z;
1033
+ }
995
1034
  if (camera.parent) {
996
1035
  cameraLocalPosition = camera.parent.worldToLocal(cameraLocalPosition);
997
1036
  }