@needle-tools/engine 4.3.0-alpha → 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 (101) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/needle-engine.bundle.js +1467 -222
  3. package/dist/needle-engine.bundle.light.js +1467 -222
  4. package/dist/needle-engine.bundle.light.min.js +32 -32
  5. package/dist/needle-engine.bundle.light.umd.cjs +3 -3
  6. package/dist/needle-engine.bundle.min.js +3 -3
  7. package/dist/needle-engine.bundle.umd.cjs +3 -3
  8. package/dist/needle-engine.light.d.ts +9 -9
  9. package/lib/engine/engine_types.d.ts +162 -17
  10. package/lib/engine-components/Animator.d.ts +129 -21
  11. package/lib/engine-components/Animator.js +115 -21
  12. package/lib/engine-components/Animator.js.map +1 -1
  13. package/lib/engine-components/AnimatorController.d.ts +161 -32
  14. package/lib/engine-components/AnimatorController.js +176 -29
  15. package/lib/engine-components/AnimatorController.js.map +1 -1
  16. package/lib/engine-components/AudioListener.d.ts +16 -5
  17. package/lib/engine-components/AudioListener.js +16 -5
  18. package/lib/engine-components/AudioListener.js.map +1 -1
  19. package/lib/engine-components/AudioSource.d.ts +120 -28
  20. package/lib/engine-components/AudioSource.js +120 -37
  21. package/lib/engine-components/AudioSource.js.map +1 -1
  22. package/lib/engine-components/AvatarLoader.d.ts +61 -0
  23. package/lib/engine-components/AvatarLoader.js +61 -1
  24. package/lib/engine-components/AvatarLoader.js.map +1 -1
  25. package/lib/engine-components/AxesHelper.d.ts +19 -1
  26. package/lib/engine-components/AxesHelper.js +19 -1
  27. package/lib/engine-components/AxesHelper.js.map +1 -1
  28. package/lib/engine-components/BoxHelperComponent.d.ts +26 -0
  29. package/lib/engine-components/BoxHelperComponent.js +26 -0
  30. package/lib/engine-components/BoxHelperComponent.js.map +1 -1
  31. package/lib/engine-components/Camera.d.ts +126 -37
  32. package/lib/engine-components/Camera.js +139 -37
  33. package/lib/engine-components/Camera.js.map +1 -1
  34. package/lib/engine-components/CameraUtils.js +20 -0
  35. package/lib/engine-components/CameraUtils.js.map +1 -1
  36. package/lib/engine-components/Collider.d.ts +95 -21
  37. package/lib/engine-components/Collider.js +100 -23
  38. package/lib/engine-components/Collider.js.map +1 -1
  39. package/lib/engine-components/Component.d.ts +554 -106
  40. package/lib/engine-components/Component.js +352 -81
  41. package/lib/engine-components/Component.js.map +1 -1
  42. package/lib/engine-components/DragControls.d.ts +95 -21
  43. package/lib/engine-components/DragControls.js +126 -32
  44. package/lib/engine-components/DragControls.js.map +1 -1
  45. package/lib/engine-components/DropListener.d.ts +99 -16
  46. package/lib/engine-components/DropListener.js +119 -14
  47. package/lib/engine-components/DropListener.js.map +1 -1
  48. package/lib/engine-components/Light.d.ts +102 -5
  49. package/lib/engine-components/Light.js +102 -44
  50. package/lib/engine-components/Light.js.map +1 -1
  51. package/lib/engine-components/NeedleMenu.d.ts +28 -11
  52. package/lib/engine-components/NeedleMenu.js +28 -11
  53. package/lib/engine-components/NeedleMenu.js.map +1 -1
  54. package/lib/engine-components/Networking.d.ts +37 -5
  55. package/lib/engine-components/Networking.js +37 -5
  56. package/lib/engine-components/Networking.js.map +1 -1
  57. package/lib/engine-components/SceneSwitcher.js +44 -0
  58. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  59. package/lib/engine-components/SpatialTrigger.d.ts +66 -1
  60. package/lib/engine-components/SpatialTrigger.js +74 -2
  61. package/lib/engine-components/SpatialTrigger.js.map +1 -1
  62. package/lib/engine-components/SpectatorCamera.d.ts +66 -4
  63. package/lib/engine-components/SpectatorCamera.js +132 -6
  64. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  65. package/lib/engine-components/SyncedTransform.d.ts +45 -6
  66. package/lib/engine-components/SyncedTransform.js +45 -6
  67. package/lib/engine-components/SyncedTransform.js.map +1 -1
  68. package/lib/engine-components/TransformGizmo.d.ts +49 -3
  69. package/lib/engine-components/TransformGizmo.js +49 -3
  70. package/lib/engine-components/TransformGizmo.js.map +1 -1
  71. package/lib/engine-components/webxr/WebXR.d.ts +131 -22
  72. package/lib/engine-components/webxr/WebXR.js +132 -23
  73. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  74. package/lib/engine-components-experimental/networking/PlayerSync.d.ts +82 -9
  75. package/lib/engine-components-experimental/networking/PlayerSync.js +76 -11
  76. package/lib/engine-components-experimental/networking/PlayerSync.js.map +1 -1
  77. package/package.json +1 -1
  78. package/src/engine/engine_types.ts +179 -18
  79. package/src/engine-components/Animator.ts +142 -22
  80. package/src/engine-components/AnimatorController.ts +184 -34
  81. package/src/engine-components/AudioListener.ts +16 -5
  82. package/src/engine-components/AudioSource.ts +126 -37
  83. package/src/engine-components/AvatarLoader.ts +61 -2
  84. package/src/engine-components/AxesHelper.ts +21 -1
  85. package/src/engine-components/BoxHelperComponent.ts +26 -0
  86. package/src/engine-components/Camera.ts +147 -41
  87. package/src/engine-components/CameraUtils.ts +20 -0
  88. package/src/engine-components/Collider.ts +102 -27
  89. package/src/engine-components/Component.ts +605 -129
  90. package/src/engine-components/DragControls.ts +134 -38
  91. package/src/engine-components/DropListener.ts +143 -23
  92. package/src/engine-components/Light.ts +105 -44
  93. package/src/engine-components/NeedleMenu.ts +29 -11
  94. package/src/engine-components/Networking.ts +37 -6
  95. package/src/engine-components/SceneSwitcher.ts +48 -1
  96. package/src/engine-components/SpatialTrigger.ts +80 -3
  97. package/src/engine-components/SpectatorCamera.ts +136 -18
  98. package/src/engine-components/SyncedTransform.ts +50 -7
  99. package/src/engine-components/TransformGizmo.ts +49 -4
  100. package/src/engine-components/webxr/WebXR.ts +144 -27
  101. package/src/engine-components-experimental/networking/PlayerSync.ts +85 -13
@@ -20,29 +20,50 @@ import { getParam, setParamWithoutReload } from "../engine/engine_utils.js";
20
20
  import { Animation } from "./Animation.js";
21
21
  import { Behaviour } from "./Component.js";
22
22
  import { EventList } from "./EventList.js";
23
+ /**
24
+ * Debug mode can be enabled with the URL parameter `?debugdroplistener`, which
25
+ * logs additional information during drag and drop events and visualizes hit points.
26
+ */
23
27
  const debug = getParam("debugdroplistener");
28
+ /**
29
+ * Events dispatched by the DropListener component
30
+ * @enum {string}
31
+ */
24
32
  export var DropListenerEvents;
25
33
  (function (DropListenerEvents) {
26
34
  /**
27
- * Dispatched when a file is dropped into the scene. The detail of the event is the file that was dropped.
35
+ * Dispatched when a file is dropped into the scene. The detail of the event is the {@link File} that was dropped.
36
+ * The event is called once for each dropped file.
28
37
  */
29
38
  DropListenerEvents["FileDropped"] = "file-dropped";
30
39
  /**
31
- * Dispatched when a new object is added to the scene. The detail of the event is the glTF that was added.
40
+ * Dispatched when a new object is added to the scene. The detail of the event contains {@link DropListenerOnDropArguments} for the content that was added.
32
41
  */
33
42
  DropListenerEvents["ObjectAdded"] = "object-added";
34
43
  })(DropListenerEvents || (DropListenerEvents = {}));
35
- /** Dispatched when an object is dropped/changed */
44
+ /**
45
+ * CustomEvent dispatched when an object is added to the scene via the DropListener
46
+ */
36
47
  class DropListenerAddedEvent extends CustomEvent {
48
+ /**
49
+ * Creates a new added event with the provided details
50
+ * @param detail Information about the added object
51
+ */
37
52
  constructor(detail) {
38
53
  super(DropListenerEvents.ObjectAdded, { detail });
39
54
  }
40
55
  }
56
+ /**
57
+ * Key name used for blob storage parameters
58
+ */
41
59
  const blobKeyName = "blob";
42
60
  /** The DropListener component is used to listen for drag and drop events in the browser and add the dropped files to the scene
43
61
  * It can be used to allow users to drag and drop glTF files into the scene to add new objects.
44
62
  *
45
- * ## Events
63
+ * If {@link useNetworking} is enabled, the DropListener will automatically synchronize dropped files to other connected clients.
64
+ * Enable {@link fitIntoVolume} to automatically scale dropped objects to fit within the volume defined by {@link fitVolumeSize}.
65
+ *
66
+ * The following events are dispatched by the DropListener:
46
67
  * - **object-added** - dispatched when a new object is added to the scene
47
68
  * - **file-dropped** - dispatched when a file is dropped into the scene
48
69
  *
@@ -69,31 +90,36 @@ const blobKeyName = "blob";
69
90
  */
70
91
  export class DropListener extends Behaviour {
71
92
  /**
72
- * When enabled the DropListener will automatically network dropped files to other clients.
93
+ * When enabled, the DropListener will automatically synchronize dropped files to other connected clients.
94
+ * When a file is dropped locally, it will be uploaded to blob storage and the URL will be shared with other clients.
73
95
  */
74
96
  useNetworking = true;
75
97
  /**
76
- * When assigned the Droplistener will only accept files that are dropped on this object.
98
+ * When assigned, the DropListener will only accept files that are dropped on this specific object.
99
+ * This allows creating designated drop zones in your scene.
77
100
  */
78
101
  dropArea;
79
102
  /**
80
- * When enabled the object will be fitted into a volume. Use {@link fitVolumeSize} to specify the volume size.
103
+ * When enabled, dropped objects will be automatically scaled to fit within the volume defined by fitVolumeSize.
104
+ * Useful for ensuring dropped models appear at an appropriate scale.
81
105
  * @default false
82
106
  */
83
107
  fitIntoVolume = false;
84
108
  /**
85
- * The volume size will be used to fit the object into the volume. Use {@link fitIntoVolume} to enable this feature.
109
+ * Defines the dimensions of the volume that dropped objects will be scaled to fit within.
110
+ * Only used when fitIntoVolume is enabled.
86
111
  */
87
112
  fitVolumeSize = new Vector3(1, 1, 1);
88
- /** When enabled the object will be placed at the drop position (under the cursor)
113
+ /**
114
+ * When enabled, dropped objects will be positioned at the point where the cursor hit the scene.
115
+ * When disabled, objects will be placed at the origin of the DropListener.
89
116
  * @default true
90
117
  */
91
118
  placeAtHitPosition = true;
92
119
  /**
93
- * Invoked after a file has been **added** to the scene.
94
- * Arguments are {@link DropListenerOnDropArguments}
120
+ * Event list that gets invoked after a file has been successfully added to the scene.
121
+ * Receives {@link DropListenerOnDropArguments} containing the added object and related information.
95
122
  * @event object-added
96
- * @param {DropListenerOnDropArguments} evt
97
123
  * @example
98
124
  * ```typescript
99
125
  * dropListener.onDropped.addEventListener((evt) => {
@@ -128,6 +154,10 @@ export class DropListener extends Behaviour {
128
154
  forgetObjects() {
129
155
  this.removePreviouslyAddedObjects(false);
130
156
  }
157
+ /**
158
+ * Handles network events received from other clients containing information about dropped objects
159
+ * @param evt Network event data containing object information, position, and content URL
160
+ */
131
161
  onNetworkEvent = (evt) => {
132
162
  if (!this.useNetworking) {
133
163
  if (debug)
@@ -149,6 +179,11 @@ export class DropListener extends Behaviour {
149
179
  }
150
180
  }
151
181
  };
182
+ /**
183
+ * Handles clipboard paste events and processes them as potential URL drops
184
+ * Only URLs are processed by this handler, and only when editing is allowed
185
+ * @param evt The paste event
186
+ */
152
187
  handlePaste = (evt) => {
153
188
  if (this.context.connection.allowEditing === false)
154
189
  return;
@@ -168,12 +203,22 @@ export class DropListener extends Behaviour {
168
203
  })
169
204
  .catch(console.warn);
170
205
  };
206
+ /**
207
+ * Handles drag events over the renderer's canvas
208
+ * Prevents default behavior to enable drop events
209
+ * @param evt The drag event
210
+ */
171
211
  onDrag = (evt) => {
172
212
  if (this.context.connection.allowEditing === false)
173
213
  return;
174
214
  // necessary to get drop event
175
215
  evt.preventDefault();
176
216
  };
217
+ /**
218
+ * Processes drop events to add files to the scene
219
+ * Handles both file drops and text/URL drops
220
+ * @param evt The drop event
221
+ */
177
222
  onDrop = async (evt) => {
178
223
  if (this.context.connection.allowEditing === false)
179
224
  return;
@@ -217,6 +262,14 @@ export class DropListener extends Behaviour {
217
262
  await this.addDroppedFiles(files, ctx);
218
263
  }
219
264
  };
265
+ /**
266
+ * Processes a dropped or pasted URL and tries to load it as a 3D model
267
+ * Handles special cases like GitHub URLs and Polyhaven asset URLs
268
+ * @param url The URL to process
269
+ * @param ctx Context information about where the drop occurred
270
+ * @param isRemote Whether this URL was shared from a remote client
271
+ * @returns The added object or null if loading failed
272
+ */
220
273
  async addFromUrl(url, ctx, isRemote) {
221
274
  if (debug)
222
275
  console.log("dropped url", url);
@@ -262,6 +315,12 @@ export class DropListener extends Behaviour {
262
315
  return null;
263
316
  }
264
317
  _abort = null;
318
+ /**
319
+ * Processes dropped files, loads them as 3D models, and handles networking if enabled
320
+ * Creates an abort controller to cancel previous uploads if new files are dropped
321
+ * @param fileList Array of dropped files
322
+ * @param ctx Context information about where the drop occurred
323
+ */
265
324
  async addDroppedFiles(fileList, ctx) {
266
325
  if (debug)
267
326
  console.log("Add files", fileList);
@@ -305,7 +364,10 @@ export class DropListener extends Behaviour {
305
364
  /** Previously added objects */
306
365
  _addedObjects = new Array();
307
366
  _addedModels = new Array();
308
- /** Removes all previously added objects from the scene and removes those object references */
367
+ /**
368
+ * Removes all previously added objects from the scene
369
+ * @param doDestroy When true, destroys the objects; when false, just clears the references
370
+ */
309
371
  removePreviouslyAddedObjects(doDestroy = true) {
310
372
  if (doDestroy) {
311
373
  for (const prev of this._addedObjects) {
@@ -318,7 +380,13 @@ export class DropListener extends Behaviour {
318
380
  this._addedModels.length = 0;
319
381
  }
320
382
  /**
321
- * Adds the object to the scene and fits it into the volume if {@link fitIntoVolume} is enabled.
383
+ * Adds a loaded model to the scene with proper positioning and scaling.
384
+ * Handles placement based on component settings and raycasting.
385
+ * If {@link fitIntoVolume} is enabled, the object will be scaled to fit within the volume defined by {@link fitVolumeSize}.
386
+ * @param data The loaded model data and content hash
387
+ * @param ctx Context information about where the drop occurred
388
+ * @param isRemote Whether this object was shared from a remote client
389
+ * @returns The added object or null if adding failed
322
390
  */
323
391
  addObject(data, ctx, isRemote) {
324
392
  const { model, contentMD5 } = data;
@@ -377,6 +445,13 @@ export class DropListener extends Behaviour {
377
445
  }
378
446
  return obj;
379
447
  }
448
+ /**
449
+ * Sends a network event to other clients about a dropped object
450
+ * Only triggered when networking is enabled and the connection is established
451
+ * @param url The URL to the content that was dropped
452
+ * @param obj The object that was added to the scene
453
+ * @param contentmd5 The content hash for verification
454
+ */
380
455
  async sendDropEvent(url, obj, contentmd5) {
381
456
  if (!this.useNetworking) {
382
457
  if (debug)
@@ -397,9 +472,18 @@ export class DropListener extends Behaviour {
397
472
  this.context.connection.send("droplistener", evt);
398
473
  }
399
474
  }
475
+ /**
476
+ * Deletes remote state for this DropListener's objects
477
+ * Called when new files are dropped to clean up previous state
478
+ */
400
479
  deleteDropEvent() {
401
480
  this.context.connection.sendDeleteRemoteState(this.guid);
402
481
  }
482
+ /**
483
+ * Tests if a drop event occurred within the designated drop area if one is specified
484
+ * @param ctx The drop context containing screen position information
485
+ * @returns True if the drop is valid (either no drop area is set or the drop occurred inside it)
486
+ */
403
487
  testIfIsInDropArea(ctx) {
404
488
  if (this.dropArea) {
405
489
  const screenPoint = this.context.input.convertScreenspaceToRaycastSpace(ctx.screenposition.clone());
@@ -441,6 +525,11 @@ __decorate([
441
525
  __decorate([
442
526
  serializable(EventList)
443
527
  ], DropListener.prototype, "onDropped", void 0);
528
+ /**
529
+ * Attempts to convert a Polyhaven website URL to a direct glTF model download URL
530
+ * @param urlStr The original Polyhaven URL
531
+ * @returns The direct download URL for the glTF model if it's a valid Polyhaven asset URL, otherwise returns the original URL
532
+ */
444
533
  function tryResolvePolyhavenAssetUrl(urlStr) {
445
534
  if (!urlStr.startsWith("https://polyhaven.com/"))
446
535
  return urlStr;
@@ -454,8 +543,18 @@ function tryResolvePolyhavenAssetUrl(urlStr) {
454
543
  // TODO: need to resolve textures properly
455
544
  return assetUrl;
456
545
  }
546
+ /**
547
+ * Helper namespace for loading files and models from various sources
548
+ */
457
549
  var FileHelper;
458
550
  (function (FileHelper) {
551
+ /**
552
+ * Loads and processes a File object into a 3D model
553
+ * @param file The file to load (supported formats: gltf, glb, fbx, obj, usdz, vrm)
554
+ * @param context The application context
555
+ * @param args Additional arguments including a unique guid for instantiation
556
+ * @returns Promise containing the loaded model and its content hash, or null if loading failed
557
+ */
459
558
  async function loadFile(file, context, args) {
460
559
  const name = file.name.toLowerCase();
461
560
  if (name.endsWith(".gltf") ||
@@ -488,6 +587,12 @@ var FileHelper;
488
587
  return null;
489
588
  }
490
589
  FileHelper.loadFile = loadFile;
590
+ /**
591
+ * Loads a 3D model from a URL with progress visualization
592
+ * @param url The URL to load the model from
593
+ * @param args Arguments including context, parent object, and optional placement information
594
+ * @returns Promise containing the loaded model and its content hash, or null if loading failed
595
+ */
491
596
  async function loadFileFromURL(url, args) {
492
597
  return new Promise(async (resolve, _reject) => {
493
598
  const prov = new InstantiateIdProvider(args.guid);
@@ -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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"}
@@ -2,69 +2,148 @@ import { Color, Vector3 } from "three";
2
2
  import type { ILight } from "../engine/engine_types.js";
3
3
  import { type NeedleXREventArgs } from "../engine/xr/api.js";
4
4
  import { Behaviour } from "./Component.js";
5
+ /**
6
+ * Defines the type of light in a scene.
7
+ */
5
8
  export declare enum LightType {
9
+ /** Spot light that emits light in a cone shape */
6
10
  Spot = 0,
11
+ /** Directional light that emits parallel light rays in a specific direction */
7
12
  Directional = 1,
13
+ /** Point light that emits light in all directions from a single point */
8
14
  Point = 2,
15
+ /** Area light */
9
16
  Area = 3,
17
+ /** Rectangle shaped area light that only affects baked lightmaps and light probes */
10
18
  Rectangle = 3,
19
+ /** Disc shaped area light that only affects baked lightmaps and light probes */
11
20
  Disc = 4
12
21
  }
22
+ /**
23
+ * Defines how a light contributes to the scene lighting.
24
+ */
13
25
  export declare enum LightmapBakeType {
26
+ /** Light affects the scene in real-time with no baking */
14
27
  Realtime = 4,
28
+ /** Light is completely baked into lightmaps and light probes */
15
29
  Baked = 2,
30
+ /** Combines aspects of realtime and baked lighting */
16
31
  Mixed = 1
17
32
  }
33
+ /**
34
+ * Defines the shadow casting options for a Light.
35
+ * @enum {number}
36
+ */
18
37
  declare enum LightShadows {
38
+ /** No shadows are cast */
19
39
  None = 0,
40
+ /** Hard-edged shadows without filtering */
20
41
  Hard = 1,
42
+ /** Soft shadows with PCF filtering */
21
43
  Soft = 2
22
44
  }
23
- /** The Light component can be used to create a light source in the scene.
24
- * It can be used to create a directional light, a spot light or a point light.
25
- * The light can be set to cast shadows and the shadow type can be set to hard or soft shadows.
26
- * The light can be set to be baked or realtime.
27
- * The light can be set to be a main light which will be used for the main directional light in the scene.
45
+ /**
46
+ * The Light component creates a light source in the scene.
47
+ * Supports directional, spot, and point light types with various customization options.
48
+ * Lights can cast shadows with configurable settings and can be set to baked or realtime rendering.
49
+ *
50
+ * Debug mode can be enabled with the URL parameter `?debuglights`, which shows
51
+ * additional console output and visual helpers for lights.
52
+ *
28
53
  * @category Rendering
29
54
  * @group Components
30
55
  */
31
56
  export declare class Light extends Behaviour implements ILight {
57
+ /**
58
+ * The type of light (spot, directional, point, etc.)
59
+ */
32
60
  private type;
61
+ /**
62
+ * The maximum distance the light affects
63
+ */
33
64
  range: number;
65
+ /**
66
+ * The full outer angle of the spotlight cone in degrees
67
+ */
34
68
  spotAngle: number;
69
+ /**
70
+ * The angle of the inner cone in degrees for soft-edge spotlights
71
+ */
35
72
  innerSpotAngle: number;
73
+ /**
74
+ * The color of the light
75
+ */
36
76
  set color(val: Color);
37
77
  get color(): Color;
38
78
  _color: Color;
79
+ /**
80
+ * The near plane distance for shadow projection
81
+ */
39
82
  set shadowNearPlane(val: number);
40
83
  get shadowNearPlane(): number;
41
84
  private _shadowNearPlane;
85
+ /**
86
+ * Shadow bias value to reduce shadow acne and peter-panning
87
+ */
42
88
  set shadowBias(val: number);
43
89
  get shadowBias(): number;
44
90
  private _shadowBias;
91
+ /**
92
+ * Shadow normal bias to reduce shadow acne on sloped surfaces
93
+ */
45
94
  set shadowNormalBias(val: number);
46
95
  get shadowNormalBias(): number;
47
96
  private _shadowNormalBias;
48
97
  /** when enabled this will remove the multiplication when setting the shadow bias settings initially */
49
98
  private _overrideShadowBiasSettings;
99
+ /**
100
+ * Shadow casting mode (None, Hard, or Soft)
101
+ */
50
102
  set shadows(val: LightShadows);
51
103
  get shadows(): LightShadows;
52
104
  private _shadows;
105
+ /**
106
+ * Determines if the light contributes to realtime lighting, baked lighting, or a mix
107
+ */
53
108
  private lightmapBakeType;
109
+ /**
110
+ * Brightness of the light. In WebXR experiences, the intensity is automatically
111
+ * adjusted based on the AR session scale to maintain consistent lighting.
112
+ */
54
113
  set intensity(val: number);
55
114
  get intensity(): number;
56
115
  private _intensity;
116
+ /**
117
+ * Maximum distance the shadow is projected
118
+ */
57
119
  get shadowDistance(): number;
58
120
  set shadowDistance(val: number);
59
121
  private _shadowDistance?;
60
122
  private shadowWidth?;
61
123
  private shadowHeight?;
124
+ /**
125
+ * Resolution of the shadow map in pixels (width and height)
126
+ */
62
127
  get shadowResolution(): number;
63
128
  set shadowResolution(val: number);
64
129
  private _shadowResolution?;
130
+ /**
131
+ * Whether this light's illumination is entirely baked into lightmaps
132
+ */
65
133
  get isBaked(): boolean;
134
+ /**
135
+ * Checks if the GameObject itself is a {@link ThreeLight} object
136
+ */
66
137
  private get selfIsLight();
138
+ /**
139
+ * The underlying three.js {@link ThreeLight} instance
140
+ */
67
141
  private light;
142
+ /**
143
+ * Gets the world position of the light
144
+ * @param vec Vector3 to store the result
145
+ * @returns The world position as a Vector3
146
+ */
68
147
  getWorldPosition(vec: Vector3): Vector3;
69
148
  awake(): void;
70
149
  onEnable(): void;
@@ -74,10 +153,28 @@ export declare class Light extends Behaviour implements ILight {
74
153
  private _webARRoot?;
75
154
  onEnterXR(_args: NeedleXREventArgs): void;
76
155
  onLeaveXR(_args: NeedleXREventArgs): void;
156
+ /**
157
+ * Creates the appropriate three.js light based on the configured light type
158
+ * and applies all settings like shadows, intensity, and color.
159
+ */
77
160
  createLight(): void;
161
+ /**
162
+ * Coroutine that updates the main light reference in the context
163
+ * if this directional light should be the main light
164
+ */
78
165
  updateMainLightRoutine(): Generator<undefined, void, unknown>;
166
+ /**
167
+ * Controls whether the renderer's shadow map type can be changed when soft shadows are used
168
+ */
79
169
  static allowChangingRendererShadowMapType: boolean;
170
+ /**
171
+ * Updates shadow settings based on whether the shadows are set to hard or soft
172
+ */
80
173
  private updateShadowSoftHard;
174
+ /**
175
+ * Configures a directional light by adding and positioning its target
176
+ * @param dirLight The directional light to set up
177
+ */
81
178
  private setDirectionalLight;
82
179
  }
83
180
  export {};