@needle-tools/engine 4.2.5 → 4.3.0-alpha.1

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 (121) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/components.needle.json +1 -1
  3. package/dist/needle-engine.bundle.js +4245 -2977
  4. package/dist/needle-engine.bundle.light.js +4236 -2968
  5. package/dist/needle-engine.bundle.light.min.js +73 -73
  6. package/dist/needle-engine.bundle.light.umd.cjs +61 -61
  7. package/dist/needle-engine.bundle.min.js +62 -62
  8. package/dist/needle-engine.bundle.umd.cjs +61 -61
  9. package/dist/needle-engine.light.d.ts +9 -9
  10. package/dist/three-examples.js +825 -794
  11. package/dist/three-examples.light.js +825 -794
  12. package/dist/three-examples.light.min.js +12 -12
  13. package/dist/three-examples.light.umd.cjs +10 -10
  14. package/dist/three-examples.min.js +12 -12
  15. package/dist/three-examples.umd.cjs +10 -10
  16. package/lib/engine/engine_addressables.d.ts +3 -0
  17. package/lib/engine/engine_addressables.js +18 -0
  18. package/lib/engine/engine_addressables.js.map +1 -1
  19. package/lib/engine/engine_input.d.ts +20 -1
  20. package/lib/engine/engine_input.js.map +1 -1
  21. package/lib/engine/engine_types.d.ts +162 -17
  22. package/lib/engine-components/Animator.d.ts +129 -21
  23. package/lib/engine-components/Animator.js +115 -21
  24. package/lib/engine-components/Animator.js.map +1 -1
  25. package/lib/engine-components/AnimatorController.d.ts +161 -32
  26. package/lib/engine-components/AnimatorController.js +176 -29
  27. package/lib/engine-components/AnimatorController.js.map +1 -1
  28. package/lib/engine-components/AudioListener.d.ts +16 -5
  29. package/lib/engine-components/AudioListener.js +16 -5
  30. package/lib/engine-components/AudioListener.js.map +1 -1
  31. package/lib/engine-components/AudioSource.d.ts +120 -28
  32. package/lib/engine-components/AudioSource.js +120 -37
  33. package/lib/engine-components/AudioSource.js.map +1 -1
  34. package/lib/engine-components/AvatarLoader.d.ts +61 -0
  35. package/lib/engine-components/AvatarLoader.js +61 -1
  36. package/lib/engine-components/AvatarLoader.js.map +1 -1
  37. package/lib/engine-components/AxesHelper.d.ts +19 -1
  38. package/lib/engine-components/AxesHelper.js +19 -1
  39. package/lib/engine-components/AxesHelper.js.map +1 -1
  40. package/lib/engine-components/BoxHelperComponent.d.ts +26 -0
  41. package/lib/engine-components/BoxHelperComponent.js +26 -0
  42. package/lib/engine-components/BoxHelperComponent.js.map +1 -1
  43. package/lib/engine-components/Camera.d.ts +126 -37
  44. package/lib/engine-components/Camera.js +139 -37
  45. package/lib/engine-components/Camera.js.map +1 -1
  46. package/lib/engine-components/CameraUtils.js +20 -0
  47. package/lib/engine-components/CameraUtils.js.map +1 -1
  48. package/lib/engine-components/Collider.d.ts +95 -21
  49. package/lib/engine-components/Collider.js +100 -23
  50. package/lib/engine-components/Collider.js.map +1 -1
  51. package/lib/engine-components/Component.d.ts +554 -106
  52. package/lib/engine-components/Component.js +352 -81
  53. package/lib/engine-components/Component.js.map +1 -1
  54. package/lib/engine-components/DragControls.d.ts +95 -21
  55. package/lib/engine-components/DragControls.js +126 -32
  56. package/lib/engine-components/DragControls.js.map +1 -1
  57. package/lib/engine-components/DropListener.d.ts +99 -16
  58. package/lib/engine-components/DropListener.js +119 -14
  59. package/lib/engine-components/DropListener.js.map +1 -1
  60. package/lib/engine-components/Light.d.ts +102 -5
  61. package/lib/engine-components/Light.js +102 -44
  62. package/lib/engine-components/Light.js.map +1 -1
  63. package/lib/engine-components/NeedleMenu.d.ts +28 -11
  64. package/lib/engine-components/NeedleMenu.js +28 -11
  65. package/lib/engine-components/NeedleMenu.js.map +1 -1
  66. package/lib/engine-components/Networking.d.ts +37 -5
  67. package/lib/engine-components/Networking.js +37 -5
  68. package/lib/engine-components/Networking.js.map +1 -1
  69. package/lib/engine-components/SceneSwitcher.d.ts +8 -0
  70. package/lib/engine-components/SceneSwitcher.js +72 -8
  71. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  72. package/lib/engine-components/SpatialTrigger.d.ts +66 -1
  73. package/lib/engine-components/SpatialTrigger.js +74 -2
  74. package/lib/engine-components/SpatialTrigger.js.map +1 -1
  75. package/lib/engine-components/SpectatorCamera.d.ts +66 -4
  76. package/lib/engine-components/SpectatorCamera.js +132 -6
  77. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  78. package/lib/engine-components/SyncedTransform.d.ts +45 -6
  79. package/lib/engine-components/SyncedTransform.js +45 -6
  80. package/lib/engine-components/SyncedTransform.js.map +1 -1
  81. package/lib/engine-components/TransformGizmo.d.ts +49 -3
  82. package/lib/engine-components/TransformGizmo.js +49 -3
  83. package/lib/engine-components/TransformGizmo.js.map +1 -1
  84. package/lib/engine-components/ui/EventSystem.d.ts +1 -0
  85. package/lib/engine-components/ui/EventSystem.js +8 -5
  86. package/lib/engine-components/ui/EventSystem.js.map +1 -1
  87. package/lib/engine-components/webxr/WebXR.d.ts +131 -22
  88. package/lib/engine-components/webxr/WebXR.js +132 -23
  89. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  90. package/lib/engine-components-experimental/networking/PlayerSync.d.ts +82 -9
  91. package/lib/engine-components-experimental/networking/PlayerSync.js +76 -11
  92. package/lib/engine-components-experimental/networking/PlayerSync.js.map +1 -1
  93. package/package.json +1 -1
  94. package/plugins/vite/alias.js +6 -3
  95. package/src/engine/engine_addressables.ts +21 -0
  96. package/src/engine/engine_input.ts +20 -1
  97. package/src/engine/engine_types.ts +179 -18
  98. package/src/engine-components/Animator.ts +142 -22
  99. package/src/engine-components/AnimatorController.ts +184 -34
  100. package/src/engine-components/AudioListener.ts +16 -5
  101. package/src/engine-components/AudioSource.ts +126 -37
  102. package/src/engine-components/AvatarLoader.ts +61 -2
  103. package/src/engine-components/AxesHelper.ts +21 -1
  104. package/src/engine-components/BoxHelperComponent.ts +26 -0
  105. package/src/engine-components/Camera.ts +147 -41
  106. package/src/engine-components/CameraUtils.ts +20 -0
  107. package/src/engine-components/Collider.ts +102 -27
  108. package/src/engine-components/Component.ts +605 -129
  109. package/src/engine-components/DragControls.ts +134 -38
  110. package/src/engine-components/DropListener.ts +143 -23
  111. package/src/engine-components/Light.ts +105 -44
  112. package/src/engine-components/NeedleMenu.ts +29 -11
  113. package/src/engine-components/Networking.ts +37 -6
  114. package/src/engine-components/SceneSwitcher.ts +78 -9
  115. package/src/engine-components/SpatialTrigger.ts +80 -3
  116. package/src/engine-components/SpectatorCamera.ts +136 -18
  117. package/src/engine-components/SyncedTransform.ts +50 -7
  118. package/src/engine-components/TransformGizmo.ts +49 -4
  119. package/src/engine-components/ui/EventSystem.ts +9 -7
  120. package/src/engine-components/webxr/WebXR.ts +144 -27
  121. package/src/engine-components-experimental/networking/PlayerSync.ts +85 -13
@@ -14,9 +14,12 @@ import { getParam } from "../engine/engine_utils.js";
14
14
  import { RGBAColor } from "../engine/js-extensions/index.js";
15
15
  import { Behaviour, GameObject } from "./Component.js";
16
16
  import { OrbitControls } from "./OrbitControls.js";
17
- /** The ClearFlags enum is used to determine how the camera clears the background */
17
+ /**
18
+ * The ClearFlags enum is used to determine how the camera clears the background
19
+ */
18
20
  export var ClearFlags;
19
21
  (function (ClearFlags) {
22
+ /** Don't clear the background */
20
23
  ClearFlags[ClearFlags["None"] = 0] = "None";
21
24
  /** Clear the background with a skybox */
22
25
  ClearFlags[ClearFlags["Skybox"] = 1] = "Skybox";
@@ -28,14 +31,26 @@ export var ClearFlags;
28
31
  const debug = getParam("debugcam");
29
32
  const debugscreenpointtoray = getParam("debugscreenpointtoray");
30
33
  /**
34
+ * Camera component that handles rendering from a specific viewpoint in the scene.
35
+ * Supports both perspective and orthographic cameras with various rendering options.
36
+ * Internally, this component uses {@link PerspectiveCamera} and {@link OrthographicCamera} three.js objects.
37
+ *
31
38
  * @category Camera Controls
32
39
  * @group Components
33
40
  */
34
41
  export class Camera extends Behaviour {
42
+ /**
43
+ * Returns whether this component is a camera
44
+ * @returns {boolean} Always returns true
45
+ */
35
46
  get isCamera() {
36
47
  return true;
37
48
  }
38
- /** The camera's aspect ratio (width divided by height) if it is a perspective camera */
49
+ /**
50
+ * Gets or sets the camera's aspect ratio (width divided by height).
51
+ * For perspective cameras, this directly affects the camera's projection matrix.
52
+ * When set, automatically updates the projection matrix.
53
+ */
39
54
  get aspect() {
40
55
  if (this._cam instanceof PerspectiveCamera)
41
56
  return this._cam.aspect;
@@ -49,7 +64,10 @@ export class Camera extends Behaviour {
49
64
  }
50
65
  }
51
66
  }
52
- /** The camera's field of view in degrees if it is a perspective camera. Calls updateProjectionMatrix when set */
67
+ /**
68
+ * Gets or sets the camera's field of view in degrees for perspective cameras.
69
+ * When set, automatically updates the projection matrix.
70
+ */
53
71
  get fieldOfView() {
54
72
  if (this._cam instanceof PerspectiveCamera) {
55
73
  return this._cam.fov;
@@ -70,7 +88,11 @@ export class Camera extends Behaviour {
70
88
  }
71
89
  }
72
90
  }
73
- /** The camera's near clipping plane. Calls updateProjectionMatrix when set */
91
+ /**
92
+ * Gets or sets the camera's near clipping plane distance.
93
+ * Objects closer than this distance won't be rendered.
94
+ * When set, automatically updates the projection matrix.
95
+ */
74
96
  get nearClipPlane() { return this._nearClipPlane; }
75
97
  set nearClipPlane(val) {
76
98
  const changed = this._nearClipPlane != val;
@@ -81,7 +103,11 @@ export class Camera extends Behaviour {
81
103
  }
82
104
  }
83
105
  _nearClipPlane = 0.1;
84
- /** The camera's far clipping plane. Calls updateProjectionMatrix when set */
106
+ /**
107
+ * Gets or sets the camera's far clipping plane distance.
108
+ * Objects farther than this distance won't be rendered.
109
+ * When set, automatically updates the projection matrix.
110
+ */
85
111
  get farClipPlane() { return this._farClipPlane; }
86
112
  set farClipPlane(val) {
87
113
  const changed = this._farClipPlane != val;
@@ -93,7 +119,8 @@ export class Camera extends Behaviour {
93
119
  }
94
120
  _farClipPlane = 1000;
95
121
  /**
96
- * Applys both the camera's near and far plane and calls updateProjectionMatrix on the camera.
122
+ * Applies both the camera's near and far clipping planes and updates the projection matrix.
123
+ * This ensures rendering occurs only within the specified distance range.
97
124
  */
98
125
  applyClippingPlane() {
99
126
  if (this._cam) {
@@ -102,7 +129,10 @@ export class Camera extends Behaviour {
102
129
  this._cam.updateProjectionMatrix();
103
130
  }
104
131
  }
105
- /** The camera's clear flags - determines if the background is a skybox or a solid color or transparent */
132
+ /**
133
+ * Gets or sets the camera's clear flags that determine how the background is rendered.
134
+ * Options include skybox, solid color, or transparent background.
135
+ */
106
136
  get clearFlags() {
107
137
  return this._clearFlags;
108
138
  }
@@ -112,13 +142,24 @@ export class Camera extends Behaviour {
112
142
  this._clearFlags = val;
113
143
  this.applyClearFlagsIfIsActiveCamera();
114
144
  }
145
+ /**
146
+ * Determines if the camera should use orthographic projection instead of perspective.
147
+ */
115
148
  orthographic = false;
149
+ /**
150
+ * The size of the orthographic camera's view volume when in orthographic mode.
151
+ * Larger values show more of the scene.
152
+ */
116
153
  orthographicSize = 5;
154
+ /**
155
+ * Controls the transparency level of the camera background in AR mode on supported devices.
156
+ * Value from 0 (fully transparent) to 1 (fully opaque).
157
+ */
117
158
  ARBackgroundAlpha = 0;
118
159
  /**
119
- * The [`mask`](https://threejs.org/docs/#api/en/core/Layers.mask) value of the three camera object layers
120
- * If you want to just see objects on one layer (e.g. layer 2) then you can use `cullingLayer = 2` on this camera component instead
121
- */
160
+ * Gets or sets the layers mask that determines which objects this camera will render.
161
+ * Uses the {@link https://threejs.org/docs/#api/en/core/Layers.mask|three.js layers mask} convention.
162
+ */
122
163
  set cullingMask(val) {
123
164
  this._cullingMask = val;
124
165
  if (this._cam) {
@@ -131,13 +172,18 @@ export class Camera extends Behaviour {
131
172
  return this._cullingMask;
132
173
  }
133
174
  _cullingMask = 0xffffffff;
134
- /** Set only a specific layer active to be rendered by the camera.
135
- * This is equivalent to calling `layers.set(val)`
136
- **/
175
+ /**
176
+ * Sets only a specific layer to be active for rendering by this camera.
177
+ * This is equivalent to calling `layers.set(val)` on the three.js camera object.
178
+ * @param val The layer index to set active
179
+ */
137
180
  set cullingLayer(val) {
138
181
  this.cullingMask = (1 << val | 0) >>> 0;
139
182
  }
140
- /** The blurriness of the background texture (when using a skybox) */
183
+ /**
184
+ * Gets or sets the blurriness of the skybox background.
185
+ * Values range from 0 (sharp) to 1 (maximum blur).
186
+ */
141
187
  set backgroundBlurriness(val) {
142
188
  if (val === this._backgroundBlurriness)
143
189
  return;
@@ -151,7 +197,10 @@ export class Camera extends Behaviour {
151
197
  return this._backgroundBlurriness;
152
198
  }
153
199
  _backgroundBlurriness = undefined;
154
- /** The intensity of the background texture (when using a skybox) */
200
+ /**
201
+ * Gets or sets the intensity of the skybox background.
202
+ * Values range from 0 (dark) to 10 (very bright).
203
+ */
155
204
  set backgroundIntensity(val) {
156
205
  if (val === this._backgroundIntensity)
157
206
  return;
@@ -165,7 +214,10 @@ export class Camera extends Behaviour {
165
214
  return this._backgroundIntensity;
166
215
  }
167
216
  _backgroundIntensity = undefined;
168
- /** the rotation of the background texture (when using a skybox) */
217
+ /**
218
+ * Gets or sets the rotation of the skybox background.
219
+ * Controls the orientation of the environment map.
220
+ */
169
221
  set backgroundRotation(val) {
170
222
  if (val === this._backgroundRotation)
171
223
  return;
@@ -179,7 +231,10 @@ export class Camera extends Behaviour {
179
231
  return this._backgroundRotation;
180
232
  }
181
233
  _backgroundRotation = undefined;
182
- /** The intensity of the environment map */
234
+ /**
235
+ * Gets or sets the intensity of the environment lighting.
236
+ * Controls how strongly the environment map affects scene lighting.
237
+ */
183
238
  set environmentIntensity(val) {
184
239
  this._environmentIntensity = val;
185
240
  }
@@ -187,7 +242,10 @@ export class Camera extends Behaviour {
187
242
  return this._environmentIntensity;
188
243
  }
189
244
  _environmentIntensity = undefined;
190
- /** The background color of the camera when {@link ClearFlags} are set to `SolidColor` */
245
+ /**
246
+ * Gets or sets the background color of the camera when {@link ClearFlags} is set to {@link ClearFlags.SolidColor}.
247
+ * The alpha component controls transparency.
248
+ */
191
249
  get backgroundColor() {
192
250
  return this._backgroundColor ?? null;
193
251
  }
@@ -206,9 +264,10 @@ export class Camera extends Behaviour {
206
264
  this._backgroundColor.alpha = 1;
207
265
  this.applyClearFlagsIfIsActiveCamera();
208
266
  }
209
- /** The texture that the camera should render to
210
- * It can be used to render to a {@link Texture} instead of the screen.
211
- */
267
+ /**
268
+ * Gets or sets the texture that the camera should render to instead of the screen.
269
+ * Useful for creating effects like mirrors, portals or custom post processing.
270
+ */
212
271
  set targetTexture(rt) {
213
272
  this._targetTexture = rt;
214
273
  }
@@ -222,16 +281,16 @@ export class Camera extends Behaviour {
222
281
  _clearFlags = ClearFlags.SolidColor;
223
282
  _skybox;
224
283
  /**
225
- * Get the three.js camera object. This will create a camera if it does not exist yet.
226
- * @returns {PerspectiveCamera | OrthographicCamera} the three camera
227
- * @deprecated use {@link threeCamera} instead
284
+ * Gets the three.js camera object. Creates one if it doesn't exist yet.
285
+ * @returns {PerspectiveCamera | OrthographicCamera} The three.js camera object
286
+ * @deprecated Use {@link threeCamera} instead
228
287
  */
229
288
  get cam() {
230
289
  return this.threeCamera;
231
290
  }
232
291
  /**
233
- * Get the three.js camera object. This will create a camera if it does not exist yet.
234
- * @returns {PerspectiveCamera | OrthographicCamera} the three camera
292
+ * Gets the three.js camera object. Creates one if it doesn't exist yet.
293
+ * @returns {PerspectiveCamera | OrthographicCamera} The three.js camera object
235
294
  */
236
295
  get threeCamera() {
237
296
  if (this.activeAndEnabled)
@@ -240,6 +299,15 @@ export class Camera extends Behaviour {
240
299
  }
241
300
  static _origin = new Vector3();
242
301
  static _direction = new Vector3();
302
+ /**
303
+ * Converts screen coordinates to a ray in world space.
304
+ * Useful for implementing picking or raycasting from screen to world.
305
+ *
306
+ * @param x The x screen coordinate
307
+ * @param y The y screen coordinate
308
+ * @param ray Optional ray object to reuse instead of creating a new one
309
+ * @returns {Ray} A ray originating from the camera position pointing through the screen point
310
+ */
243
311
  screenPointToRay(x, y, ray) {
244
312
  const cam = this.threeCamera;
245
313
  const origin = Camera._origin;
@@ -263,8 +331,10 @@ export class Camera extends Behaviour {
263
331
  }
264
332
  _frustum;
265
333
  /**
266
- * Get a frustum - it will be created the first time this method is called and updated every frame in onBeforeRender when it exists.
267
- * You can also manually update it using the updateFrustum method.
334
+ * Gets the camera's view frustum for culling and visibility checks.
335
+ * Creates the frustum if it doesn't exist and returns it.
336
+ *
337
+ * @returns {Frustum} The camera's view frustum
268
338
  */
269
339
  getFrustum() {
270
340
  if (!this._frustum) {
@@ -273,14 +343,21 @@ export class Camera extends Behaviour {
273
343
  }
274
344
  return this._frustum;
275
345
  }
276
- /** Force frustum update - note that this also happens automatically every frame in onBeforeRender */
346
+ /**
347
+ * Forces an update of the camera's frustum.
348
+ * This is automatically called every frame in onBeforeRender.
349
+ */
277
350
  updateFrustum() {
278
351
  if (!this._frustum)
279
352
  this._frustum = new Frustum();
280
353
  this._frustum.setFromProjectionMatrix(this.getProjectionScreenMatrix(this._projScreenMatrix, true), this.context.renderer.coordinateSystem);
281
354
  }
282
355
  /**
283
- * @returns {Matrix4} this camera's projection screen matrix.
356
+ * Gets this camera's projection-screen matrix.
357
+ *
358
+ * @param target Matrix4 object to store the result in
359
+ * @param forceUpdate Whether to force recalculation of the matrix
360
+ * @returns {Matrix4} The requested projection screen matrix
284
361
  */
285
362
  getProjectionScreenMatrix(target, forceUpdate) {
286
363
  if (forceUpdate) {
@@ -351,8 +428,9 @@ export class Camera extends Behaviour {
351
428
  }
352
429
  }
353
430
  /**
354
- * Creates a {@link PerspectiveCamera} if it does not exist yet and set the camera's properties. This is internally also called when accessing the {@link cam} property.
355
- **/
431
+ * Creates a three.js camera object if it doesn't exist yet and sets its properties.
432
+ * This is called internally when accessing the {@link threeCamera} property.
433
+ */
356
434
  buildCamera() {
357
435
  if (this._cam)
358
436
  return;
@@ -393,12 +471,20 @@ export class Camera extends Behaviour {
393
471
  this.context.setCurrentCamera(this);
394
472
  }
395
473
  }
474
+ /**
475
+ * Applies clear flags if this is the active main camera.
476
+ * @param opts Options for applying clear flags
477
+ */
396
478
  applyClearFlagsIfIsActiveCamera(opts) {
397
479
  if (this.context.mainCameraComponent === this) {
398
480
  this.applyClearFlags(opts);
399
481
  }
400
482
  }
401
- /** Apply this camera's clear flags and related settings to the renderer */
483
+ /**
484
+ * Applies this camera's clear flags and related settings to the renderer.
485
+ * This controls how the background is rendered (skybox, solid color, transparent).
486
+ * @param opts Options for applying clear flags
487
+ */
402
488
  applyClearFlags(opts) {
403
489
  if (!this._cam) {
404
490
  if (debug)
@@ -465,16 +551,19 @@ export class Camera extends Behaviour {
465
551
  }
466
552
  }
467
553
  /**
468
- * Apply the skybox to the scene
554
+ * Applies the skybox texture to the scene background.
469
555
  */
470
556
  applySceneSkybox() {
471
557
  if (!this._skybox)
472
558
  this._skybox = new CameraSkybox(this);
473
559
  this._skybox.apply();
474
560
  }
475
- /** Used to determine if the background should be transparent when in pass through AR
476
- * @returns true when in XR on a pass through device where the background shouldbe invisible
477
- **/
561
+ /**
562
+ * Determines if the background should be transparent when in passthrough AR mode.
563
+ *
564
+ * @param context The current rendering context
565
+ * @returns {boolean} True when in XR on a pass through device where the background should be invisible
566
+ */
478
567
  static backgroundShouldBeTransparent(context) {
479
568
  const session = context.renderer.xr?.getSession();
480
569
  if (!session)
@@ -548,6 +637,10 @@ __decorate([
548
637
  __decorate([
549
638
  serializable(RenderTexture)
550
639
  ], Camera.prototype, "targetTexture", null);
640
+ /**
641
+ * Helper class for managing skybox textures for cameras.
642
+ * Handles retrieving and applying skybox textures to the scene.
643
+ */
551
644
  class CameraSkybox {
552
645
  _camera;
553
646
  _skybox;
@@ -555,6 +648,10 @@ class CameraSkybox {
555
648
  constructor(camera) {
556
649
  this._camera = camera;
557
650
  }
651
+ /**
652
+ * Applies the skybox texture to the scene background.
653
+ * Retrieves the texture based on the camera's source ID.
654
+ */
558
655
  apply() {
559
656
  this._skybox = this.context.lightmaps.tryGetSkybox(this._camera.sourceId);
560
657
  if (!this._skybox) {
@@ -571,6 +668,11 @@ class CameraSkybox {
571
668
  }
572
669
  }
573
670
  }
671
+ /**
672
+ * Adds orbit controls to the camera if the freecam URL parameter is enabled.
673
+ *
674
+ * @param cam The camera to potentially add orbit controls to
675
+ */
574
676
  function handleFreeCam(cam) {
575
677
  const isFreecam = getParam("freecam");
576
678
  if (isFreecam) {
@@ -1 +1 @@
1
- {"version":3,"file":"Camera.js","sourceRoot":"","sources":["../../src/engine-components/Camera.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Camera.js","sourceRoot":"","sources":["../../src/engine-components/Camera.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,13 @@ import { RGBAColor } from "../engine/js-extensions/index.js";
7
7
  import { Camera, ClearFlags } from "./Camera.js";
8
8
  import { OrbitControls } from "./OrbitControls.js";
9
9
  const debug = getParam("debugmissingcamera");
10
+ /**
11
+ * Handler for missing camera events. Creates a default fallback camera when no camera is found in the scene.
12
+ * Sets up camera properties based on the context and HTML element attributes.
13
+ *
14
+ * @param evt The context event containing scene and configuration information
15
+ * @returns The created camera component
16
+ */
10
17
  ContextRegistry.registerCallback(ContextEvent.MissingCamera, (evt) => {
11
18
  if (debug)
12
19
  console.warn("Creating missing camera");
@@ -43,6 +50,12 @@ ContextRegistry.registerCallback(ContextEvent.MissingCamera, (evt) => {
43
50
  }
44
51
  return cam;
45
52
  });
53
+ /**
54
+ * Handler for context creation events. Checks if camera controls should be added
55
+ * to the main camera when the context is created.
56
+ *
57
+ * @param evt The context creation event containing the context information
58
+ */
46
59
  ContextRegistry.registerCallback(ContextEvent.ContextCreated, (evt) => {
47
60
  if (!evt.context.mainCamera) {
48
61
  if (debug)
@@ -62,6 +75,13 @@ ContextRegistry.registerCallback(ContextEvent.ContextCreated, (evt) => {
62
75
  createDefaultCameraControls(evt.context);
63
76
  }
64
77
  });
78
+ /**
79
+ * Creates default orbit camera controls for the specified camera.
80
+ * Configures auto-rotation and auto-fit settings based on HTML attributes.
81
+ *
82
+ * @param context The rendering context
83
+ * @param cam Optional camera component to attach controls to (uses main camera if not specified)
84
+ */
65
85
  function createDefaultCameraControls(context, cam) {
66
86
  cam = cam ?? context.mainCameraComponent;
67
87
  const cameraObject = cam?.gameObject;
@@ -1 +1 @@
1
- {"version":3,"file":"CameraUtils.js","sourceRoot":"","sources":["../../src/engine-components/CameraUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CameraUtils.js","sourceRoot":"","sources":["../../src/engine-components/CameraUtils.ts"],"names":[],"mappings":"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"}