@needle-tools/engine 5.1.0-next.1780579670.dramatic-pierogi.b8fa941 → 5.1.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 (131) hide show
  1. package/CHANGELOG.md +119 -0
  2. package/components.needle.json +1 -1
  3. package/dist/gltf-progressive-BGQ-cjly.umd.cjs +10 -0
  4. package/dist/gltf-progressive-BvQHrERj.min.js +10 -0
  5. package/dist/{gltf-progressive-CH7aqHHr.js → gltf-progressive-CtYnVfLc.js} +420 -351
  6. package/dist/{materialx-B85WjP7E.min.js → materialx-B5gKeM65.min.js} +1 -1
  7. package/dist/{materialx-B47Bz-xs.umd.cjs → materialx-CFRcCYWy.umd.cjs} +1 -1
  8. package/dist/{materialx-jkHmVPez.js → materialx-DqGmteNO.js} +1 -1
  9. package/dist/{needle-engine.bundle-BSPk6RkD.min.js → needle-engine.bundle-BUT4ua7U.min.js} +162 -150
  10. package/dist/{needle-engine.bundle-DCPHDPAd.umd.cjs → needle-engine.bundle-Cb39lTJn.umd.cjs} +158 -146
  11. package/dist/{needle-engine.bundle-WQeWxmZD.js → needle-engine.bundle-Dv-p5m4z.js} +6956 -6782
  12. package/dist/needle-engine.d.ts +111 -43
  13. package/dist/needle-engine.js +611 -609
  14. package/dist/needle-engine.min.js +1 -1
  15. package/dist/needle-engine.umd.cjs +1 -1
  16. package/dist/three.js +3 -0
  17. package/dist/three.min.js +22 -22
  18. package/dist/three.umd.cjs +24 -24
  19. package/dist/{vendor-BQ2Vuntm.min.js → vendor-2--bD1c9.min.js} +19 -19
  20. package/dist/{vendor-BslSKZPo.js → vendor-BNtcIZkv.js} +1141 -1138
  21. package/dist/{vendor-1UvpPPSB.umd.cjs → vendor-vbe9sv1t.umd.cjs} +20 -20
  22. package/lib/engine/api.d.ts +1 -1
  23. package/lib/engine/api.js +1 -1
  24. package/lib/engine/api.js.map +1 -1
  25. package/lib/engine/engine_context.js +16 -3
  26. package/lib/engine/engine_context.js.map +1 -1
  27. package/lib/engine/engine_init.js +2 -2
  28. package/lib/engine/engine_init.js.map +1 -1
  29. package/lib/engine/engine_license.d.ts +7 -7
  30. package/lib/engine/engine_license.js +72 -72
  31. package/lib/engine/engine_license.js.map +1 -1
  32. package/lib/engine/engine_networking_blob.js +3 -3
  33. package/lib/engine/engine_networking_blob.js.map +1 -1
  34. package/lib/engine/engine_networking_peer.js +19 -13
  35. package/lib/engine/engine_networking_peer.js.map +1 -1
  36. package/lib/engine/engine_utils_qrcode.js +2 -2
  37. package/lib/engine/engine_utils_qrcode.js.map +1 -1
  38. package/lib/engine/postprocessing/postprocessing.d.ts +2 -1
  39. package/lib/engine/postprocessing/postprocessing.js +3 -2
  40. package/lib/engine/postprocessing/postprocessing.js.map +1 -1
  41. package/lib/engine/webcomponents/WebXRButtons.js +5 -6
  42. package/lib/engine/webcomponents/WebXRButtons.js.map +1 -1
  43. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
  44. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
  45. package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +2 -2
  46. package/lib/engine/webcomponents/needle menu/needle-menu.js +9 -9
  47. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  48. package/lib/engine/webcomponents/needle-engine.js +2 -2
  49. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  50. package/lib/engine/webcomponents/needle-engine.loading.js +2 -2
  51. package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
  52. package/lib/engine/xr/NeedleXRSession.d.ts +30 -0
  53. package/lib/engine/xr/NeedleXRSession.js +121 -17
  54. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  55. package/lib/engine/xr/TempXRContext.js +2 -2
  56. package/lib/engine/xr/TempXRContext.js.map +1 -1
  57. package/lib/engine/xr/init.js +2 -3
  58. package/lib/engine/xr/init.js.map +1 -1
  59. package/lib/engine-components/Component.js +14 -1
  60. package/lib/engine-components/Component.js.map +1 -1
  61. package/lib/engine-components/ContactShadows.d.ts +7 -2
  62. package/lib/engine-components/ContactShadows.js +65 -45
  63. package/lib/engine-components/ContactShadows.js.map +1 -1
  64. package/lib/engine-components/GroundProjection.d.ts +6 -0
  65. package/lib/engine-components/GroundProjection.js +69 -7
  66. package/lib/engine-components/GroundProjection.js.map +1 -1
  67. package/lib/engine-components/NeedleMenu.d.ts +1 -1
  68. package/lib/engine-components/NeedleMenu.js +5 -2
  69. package/lib/engine-components/NeedleMenu.js.map +1 -1
  70. package/lib/engine-components/SceneSwitcher.d.ts +2 -0
  71. package/lib/engine-components/SceneSwitcher.js +26 -14
  72. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  73. package/lib/engine-components/SeeThrough.d.ts +39 -0
  74. package/lib/engine-components/SeeThrough.js +69 -1
  75. package/lib/engine-components/SeeThrough.js.map +1 -1
  76. package/lib/engine-components/Skybox.js +9 -0
  77. package/lib/engine-components/Skybox.js.map +1 -1
  78. package/lib/engine-components/api.d.ts +1 -0
  79. package/lib/engine-components/api.js +1 -0
  80. package/lib/engine-components/api.js.map +1 -1
  81. package/lib/engine-components/export/usdz/USDZExporter.js +4 -4
  82. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +9 -5
  83. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -1
  84. package/lib/engine-components/particlesystem/ParticleSystem.js +4 -0
  85. package/lib/engine-components/particlesystem/ParticleSystem.js.map +1 -1
  86. package/lib/engine-components/postprocessing/Volume.d.ts +1 -9
  87. package/lib/engine-components/postprocessing/Volume.js +2 -14
  88. package/lib/engine-components/postprocessing/Volume.js.map +1 -1
  89. package/lib/engine-components/webxr/WebXR.js +25 -14
  90. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  91. package/lib/engine-components/webxr/WebXRImageTracking.js +3 -0
  92. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  93. package/package.json +4 -4
  94. package/plugins/common/license.js +4 -4
  95. package/plugins/types/userconfig.d.ts +10 -0
  96. package/plugins/vite/build-pipeline.d.ts +19 -0
  97. package/plugins/vite/build-pipeline.js +67 -5
  98. package/plugins/vite/license.js +4 -4
  99. package/src/engine/api.ts +1 -1
  100. package/src/engine/engine_context.ts +15 -2
  101. package/src/engine/engine_gameobject.ts +1 -1
  102. package/src/engine/engine_init.ts +2 -2
  103. package/src/engine/engine_license.ts +69 -69
  104. package/src/engine/engine_networking_blob.ts +3 -3
  105. package/src/engine/engine_networking_peer.ts +12 -13
  106. package/src/engine/engine_utils_qrcode.ts +2 -2
  107. package/src/engine/postprocessing/postprocessing.ts +3 -2
  108. package/src/engine/webcomponents/WebXRButtons.ts +5 -6
  109. package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -2
  110. package/src/engine/webcomponents/needle menu/needle-menu.ts +10 -10
  111. package/src/engine/webcomponents/needle-engine.loading.ts +6 -6
  112. package/src/engine/webcomponents/needle-engine.ts +2 -2
  113. package/src/engine/xr/NeedleXRSession.ts +124 -20
  114. package/src/engine/xr/TempXRContext.ts +2 -2
  115. package/src/engine/xr/init.ts +2 -3
  116. package/src/engine-components/Component.ts +13 -1
  117. package/src/engine-components/ContactShadows.ts +75 -49
  118. package/src/engine-components/GroundProjection.ts +71 -7
  119. package/src/engine-components/NeedleMenu.ts +6 -3
  120. package/src/engine-components/SceneSwitcher.ts +23 -13
  121. package/src/engine-components/SeeThrough.ts +75 -1
  122. package/src/engine-components/Skybox.ts +8 -0
  123. package/src/engine-components/api.ts +1 -0
  124. package/src/engine-components/export/usdz/USDZExporter.ts +4 -4
  125. package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +12 -5
  126. package/src/engine-components/particlesystem/ParticleSystem.ts +4 -0
  127. package/src/engine-components/postprocessing/Volume.ts +2 -13
  128. package/src/engine-components/webxr/WebXR.ts +23 -15
  129. package/src/engine-components/webxr/WebXRImageTracking.ts +1 -0
  130. package/dist/gltf-progressive-9tlS5iCx.umd.cjs +0 -10
  131. package/dist/gltf-progressive-CVg80COO.min.js +0 -10
@@ -118,13 +118,13 @@ import { XRHandSpace } from 'three';
118
118
 
119
119
  export declare const $componentName: unique symbol;
120
120
 
121
- /* Excluded from this release type: _$DeHzisx */
121
+ /* Excluded from this release type: $Mhcqc */
122
122
 
123
123
  export declare const $physicsKey: unique symbol;
124
124
 
125
- /* Excluded from this release type: _$zFmYj */
125
+ /* Excluded from this release type: $uRk */
126
126
 
127
- /* Excluded from this release type: __EOmPHdLs */
127
+ /* Excluded from this release type: __dSkNu */
128
128
 
129
129
  export declare class __Ignore {
130
130
  }
@@ -4576,8 +4576,8 @@ export declare class ContactShadows extends Component {
4576
4576
  * in which case ContactShadows scale would affect the projection
4577
4577
  **/
4578
4578
  private readonly shadowsRoot;
4579
- private shadowCamera?;
4580
4579
  private readonly shadowGroup;
4580
+ private shadowCamera?;
4581
4581
  private renderTarget?;
4582
4582
  private renderTargetBlur?;
4583
4583
  private plane?;
@@ -4592,11 +4592,16 @@ export declare class ContactShadows extends Component {
4592
4592
  * Call to fit the shadows to the scene.
4593
4593
  */
4594
4594
  fitShadows(params?: FitParameters): void;
4595
+ /**
4596
+ * Call to update the shadows immediately. Only needed if `manualUpdate` is enabled, usually the shadows will update automatically when the scene changes or when the component is enabled.
4597
+ */
4598
+ renderShadowsNow(): void;
4595
4599
  /* Excluded from this release type: awake */
4596
- /* Excluded from this release type: start */
4597
- onEnable(): void;
4600
+ /* Excluded from this release type: onEnable */
4598
4601
  /* Excluded from this release type: onDestroy */
4599
4602
  /* Excluded from this release type: onBeforeRender */
4603
+ private _ensureSetup;
4604
+ private _renderShadows;
4600
4605
  private blurShadow;
4601
4606
  private applyMinSize;
4602
4607
  }
@@ -8263,6 +8268,12 @@ export declare class GroundProjectedEnv extends Component {
8263
8268
  private _lastHeight?;
8264
8269
  private _projection?;
8265
8270
  private _watcher?;
8271
+ /** The scene's real backgroundBlurriness, stored while we temporarily override it for the render. */
8272
+ private _savedBackgroundBlur;
8273
+ /** pre_render_callback: force the skybox blur just before the render (after all component onBeforeRender). */
8274
+ private readonly _forceBackgroundBlur;
8275
+ /** post_render_callback: restore the scene's real blur right after the render. */
8276
+ private readonly _restoreBackgroundBlur;
8266
8277
  /* Excluded from this release type: awake */
8267
8278
  /* Excluded from this release type: onEnable */
8268
8279
  /* Excluded from this release type: onDisable */
@@ -12365,7 +12376,7 @@ export declare class NeedleMenu extends Component {
12365
12376
  */
12366
12377
  position: "top" | "bottom";
12367
12378
  /**
12368
- * Controls the visibility of the Needle logo in the menu (requires PRO license)
12379
+ * Controls the visibility of the Needle logo in the menu (requires a commercial license)
12369
12380
  */
12370
12381
  showNeedleLogo: boolean;
12371
12382
  /**
@@ -12464,10 +12475,10 @@ declare class NeedleMenu_2 {
12464
12475
  setPosition(position: "top" | "bottom"): void;
12465
12476
  /**
12466
12477
  * Call to show or hide the menu.
12467
- * NOTE: Hiding the menu is a PRO feature and requires a needle engine license. Hiding the menu will not work in production without a license.
12478
+ * NOTE: Hiding the menu requires a commercial license. Hiding the menu will not work in production without a license.
12468
12479
  */
12469
12480
  setVisible(visible: boolean): void;
12470
- /** When set to false, the Needle Engine logo will be hidden. Hiding the logo requires a needle engine license */
12481
+ /** When set to false, the Needle Engine logo will be hidden. Hiding the logo requires a commercial license */
12471
12482
  showNeedleLogo(visible: boolean): void;
12472
12483
  /** @returns true if the logo is visible */
12473
12484
  get logoIsVisible(): boolean;
@@ -12862,6 +12873,26 @@ export declare class NeedleXRSession implements INeedleXRSession {
12862
12873
  static getXRSync(context: Context): NeedleXRSync;
12863
12874
  static get currentSessionRequest(): XRSessionMode | null;
12864
12875
  private static _currentSessionRequestMode;
12876
+ /** Base URL for branded Needle AppClip experiences */
12877
+ private static readonly appClipBaseUrl;
12878
+ private static _appClipUrl;
12879
+ /**
12880
+ * Optionally provide a custom Needle AppClip experience to open on iOS instead of the default Needle AppClip.
12881
+ * This enables custom App Clip card branding (your own title and image) when launching AR on iPhone and iPad.
12882
+ *
12883
+ * You can provide either:
12884
+ * - the full URL, e.g. `https://appclip.needle.tools/x/your-experience`
12885
+ * - or just the experience id, e.g. `your-experience` (expanded to `https://appclip.needle.tools/x/your-experience`)
12886
+ *
12887
+ * **IMPORTANT**: the resulting URL must exactly match an App Clip experience URL you have registered (with custom card metadata).
12888
+ * For this reason the URL is opened as-is, without appending any query parameters.
12889
+ *
12890
+ * Note: custom App Clip branding requires an active PRO subscription. See the iOS WebXR App Clip docs (Custom Branding for iOS AR).
12891
+ * @link https://engine.needle.tools/docs/how-to-guides/xr/ios-webxr-app-clip#custom-branding-for-ios-ar
12892
+ */
12893
+ static get appClipUrl(): string | null;
12894
+ static set appClipUrl(value: string | null);
12895
+ /* Excluded from this release type: getAppClipLaunchUrl */
12865
12896
  /**
12866
12897
  * @returns the active @type {NeedleXRSession} (if any active) or null
12867
12898
  */
@@ -12895,6 +12926,10 @@ export declare class NeedleXRSession implements INeedleXRSession {
12895
12926
  */
12896
12927
  static isSessionSupported(mode: XRSessionMode): Promise<boolean>;
12897
12928
  private static _sessionSupportedCache;
12929
+ private static _deviceChangeHooked;
12930
+ /** Invalidate the support cache when the set of XR devices changes, so a newly
12931
+ * connected headset is picked up by the next isSessionSupported() call. */
12932
+ private static ensureDeviceChangeInvalidation;
12898
12933
  private static _currentSessionRequest?;
12899
12934
  private static _activeSession;
12900
12935
  /** Register to listen to XRSession start events. Unsubscribe with `offXRSessionStart` */
@@ -16270,7 +16305,8 @@ export declare class OrbitControls extends Component implements ICameraControlle
16270
16305
  multisampling: "auto" | number;
16271
16306
  /** When enabled, the device pixel ratio will be gradually reduced when FPS is low
16272
16307
  * and restored when performance recovers.
16273
- * @default true
16308
+ * @experimental
16309
+ * @default false
16274
16310
  */
16275
16311
  adaptiveResolution: boolean;
16276
16312
  constructor(context: Context);
@@ -17235,7 +17271,7 @@ export declare class OrbitControls extends Component implements ICameraControlle
17235
17271
  unapply(obj: Object3D): void;
17236
17272
  }
17237
17273
 
17238
- declare enum ReflectionProbeUsage {
17274
+ export declare enum ReflectionProbeUsage {
17239
17275
  Off = 0,
17240
17276
  BlendProbes = 1,
17241
17277
  BlendProbesAndSkybox = 2,
@@ -18322,6 +18358,8 @@ export declare class OrbitControls extends Component implements ICameraControlle
18322
18358
  switchScene(scene: AssetReference): Promise<boolean>;
18323
18359
  private __unloadCurrentScene;
18324
18360
  private _currentlyLoadingScene?;
18361
+ private _loadingRequestId;
18362
+ private _activeLoadingRequestId;
18325
18363
  /* Excluded from this release type: __internalSwitchScene */
18326
18364
  preload(index: number): Promise<boolean> | Promise<ArrayBufferLike | null>;
18327
18365
  private tryLoadFromQueryParam;
@@ -19174,13 +19212,42 @@ export declare class OrbitControls extends Component implements ICameraControlle
19174
19212
  *
19175
19213
  */
19176
19214
  autoUpdate: boolean;
19215
+ /**
19216
+ * The alpha (opacity) the object is currently faded to, in the `[0, 1]` range.
19217
+ * `1` means fully visible, `0` means fully hidden. This is the live, animated value
19218
+ * (it lerps toward the target over {@link fadeDuration}), updated every frame the fade runs.
19219
+ *
19220
+ * External components can read this to react to the see-through state — e.g. toggling a
19221
+ * collider, muting audio, or driving a UI prompt as the object fades in or out.
19222
+ *
19223
+ * @example React to the object becoming (almost) hidden
19224
+ * ```ts
19225
+ * if (seeThrough.currentAlpha < 0.1) {
19226
+ * // object is essentially see-through now
19227
+ * }
19228
+ * ```
19229
+ * @default 1
19230
+ */
19231
+ get currentAlpha(): number;
19232
+ /**
19233
+ * Below this alpha the object stops casting a shadow. The shadow map only stores depth, so a
19234
+ * faded object would otherwise keep casting a fully solid shadow (three.js does not fade shadows
19235
+ * by opacity). Toggling shadow casting off near-invisible is the cleanest fix; we drive it via
19236
+ * the {@link Renderer.shadowCastingMode} so it cooperates with the per-frame shadow settings the
19237
+ * Renderer re-applies. Note this is a hard on/off, not a fade.
19238
+ */
19239
+ static readonly shadowHideThreshold = 0.05;
19177
19240
  private readonly _referencePointVector;
19178
19241
  private readonly _referencePointDir;
19179
19242
  private _distance;
19180
19243
  private _renderer;
19181
19244
  private _needsUpdate;
19182
19245
  private _id;
19246
+ private _currentAlpha;
19247
+ /** Renderers whose shadow casting we turned off while hidden, mapped to their original mode for restore. */
19248
+ private readonly _suppressedShadowCasting;
19183
19249
  /* Excluded from this release type: onEnable */
19250
+ /* Excluded from this release type: onDestroy */
19184
19251
  /* Excluded from this release type: update */
19185
19252
  private updateDirection;
19186
19253
  /**
@@ -19189,6 +19256,15 @@ export declare class OrbitControls extends Component implements ICameraControlle
19189
19256
  * @param duration Duration in seconds to reach the target alpha. 0 means immediate. Default is the component's fadeDuration.
19190
19257
  */
19191
19258
  updateAlpha(targetAlpha: number, duration?: number): void;
19259
+ /**
19260
+ * Suppress or restore a renderer's shadow casting based on its current alpha.
19261
+ * Driving {@link Renderer.shadowCastingMode} (rather than the raw `mesh.castShadow`) is required
19262
+ * because the Renderer re-applies that setting every frame; we remember the original mode so it
19263
+ * is restored exactly when the object fades back in.
19264
+ */
19265
+ private updateShadowCasting;
19266
+ /** Restore every renderer we suppressed shadow casting on, then clear the bookkeeping. */
19267
+ private restoreSuppressedShadowCasting;
19192
19268
  }
19193
19269
 
19194
19270
  export declare function sendDestroyed(guid: string, con: INetworkConnection, opts?: SyncDestroyOptions): void;
@@ -19407,7 +19483,7 @@ export declare class OrbitControls extends Component implements ICameraControlle
19407
19483
 
19408
19484
  export declare function setWorldScale(obj: Object3D, vec: Vector3): void;
19409
19485
 
19410
- declare enum ShadowCastingMode {
19486
+ export declare enum ShadowCastingMode {
19411
19487
  Off = 0,
19412
19488
  On = 1,
19413
19489
  TwoSided = 2,
@@ -23747,14 +23823,6 @@ export declare class OrbitControls extends Component implements ICameraControlle
23747
23823
  * @max renderer.capabilities.maxSamples
23748
23824
  */
23749
23825
  multisampling: "auto" | number;
23750
- /** When enabled, the device pixel ratio will be gradually reduced when FPS is low
23751
- * and restored when performance recovers. This helps maintain smooth frame rates
23752
- * on devices where full retina resolution is too expensive for postprocessing.
23753
- * Pushed to `context.postprocessing.adaptiveResolution` when this Volume is active.
23754
- * Disable this if you need a fixed resolution and prefer consistent quality over frame rate.
23755
- * @default true
23756
- */
23757
- adaptiveResolution: boolean;
23758
23826
  /**
23759
23827
  * Add a post processing effect to this Volume and push it to the core postprocessing stack.
23760
23828
  */
@@ -23781,7 +23849,7 @@ export declare class OrbitControls extends Component implements ICameraControlle
23781
23849
  private pushEffectsToCore;
23782
23850
  /** Remove all effects this Volume contributed from the core stack */
23783
23851
  private removeEffectsFromCore;
23784
- /** Push multisampling and adaptiveResolution config to the core stack */
23852
+ /** Push multisampling config to the core stack */
23785
23853
  private syncConfigToCore;
23786
23854
  private _applyPostQueue;
23787
23855
  /** called from needle editor sync package if its active */
@@ -25117,28 +25185,6 @@ export declare class OrbitControls extends Component implements ICameraControlle
25117
25185
  export { }
25118
25186
 
25119
25187
 
25120
- declare module 'three' {
25121
- interface SkinnedMesh {
25122
- staticGenerator?: StaticGeometryGenerator;
25123
- staticGeometry?: BufferGeometry;
25124
- staticGeometryLastUpdate?: number;
25125
- }
25126
- interface Mesh {
25127
- acceleratedRaycast?: any;
25128
- }
25129
- interface SkinnedMesh {
25130
- /** @deprecated use autoUpdateMeshBvhInterval */
25131
- autoUpdateMeshBVH?: boolean;
25132
- /**
25133
- * Interval in milliseconds to automatically update the mesh BVH. When set to >= 0 the BVH will be updated every x milliseconds.
25134
- * @default undefined (disabled)
25135
- */
25136
- autoUpdateMeshBvhInterval?: number;
25137
- bvhNeedsUpdate?: boolean;
25138
- }
25139
- }
25140
-
25141
-
25142
25188
  declare module 'three' {
25143
25189
  interface Object3D {
25144
25190
  get guid(): string | undefined;
@@ -25284,3 +25330,25 @@ declare module 'three' {
25284
25330
  slerp(end: Vector3, t: number): Vector3;
25285
25331
  }
25286
25332
  }
25333
+
25334
+
25335
+ declare module 'three' {
25336
+ interface SkinnedMesh {
25337
+ staticGenerator?: StaticGeometryGenerator;
25338
+ staticGeometry?: BufferGeometry;
25339
+ staticGeometryLastUpdate?: number;
25340
+ }
25341
+ interface Mesh {
25342
+ acceleratedRaycast?: any;
25343
+ }
25344
+ interface SkinnedMesh {
25345
+ /** @deprecated use autoUpdateMeshBvhInterval */
25346
+ autoUpdateMeshBVH?: boolean;
25347
+ /**
25348
+ * Interval in milliseconds to automatically update the mesh BVH. When set to >= 0 the BVH will be updated every x milliseconds.
25349
+ * @default undefined (disabled)
25350
+ */
25351
+ autoUpdateMeshBvhInterval?: number;
25352
+ bvhNeedsUpdate?: boolean;
25353
+ }
25354
+ }