babylonjs-loaders 9.16.2 → 9.17.0

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.
@@ -8455,8 +8455,19 @@ export class SPLATFileLoader implements ISceneLoaderPluginAsync, ISceneLoaderPlu
8455
8455
  private _unzipWithFFlateAsync;
8456
8456
  private _parseAsync;
8457
8457
  /**
8458
- * Applies camera limits based on parsed meta data
8458
+ * Extracts the safe-orbit camera limits from parsed splat metadata, or null when the file
8459
+ * carries none. Exposed on the loaded mesh (GaussianSplattingMeshBase.safeOrbitCameraLimits)
8460
+ * so consumers can apply/track them regardless of the active camera type.
8459
8461
  * @param meta parsed splat meta data
8462
+ * @returns the parsed safe-orbit limits, or null
8463
+ */
8464
+ private static _ExtractSafeOrbitLimits;
8465
+ /**
8466
+ * Applies safe-orbit camera limits parsed from the file metadata to the scene's active
8467
+ * ArcRotateCamera. No-op when no limits are present, `disableAutoCameraLimits` is set, or the
8468
+ * active camera is not an ArcRotateCamera — in which case consumers can still read the limits
8469
+ * from the loaded mesh's `safeOrbitCameraLimits` and apply them themselves.
8470
+ * @param limits parsed safe-orbit limits (see _ExtractSafeOrbitLimits)
8460
8471
  * @param scene
8461
8472
  */
8462
8473
  private applyAutoCameraLimits;
@@ -9349,7 +9360,14 @@ export class GaussianSplattingStream extends GaussianSplattingMesh {
9349
9360
  * cheap per-node frustum test every frame so the off-screen LOD bias tracks camera rotation. The LOD
9350
9361
  * re-evaluation is throttled to at most every {@link _lodUpdateInterval} frames once the camera has
9351
9362
  * translated far enough, but also runs immediately whenever a node enters/leaves the frustum (so its
9352
- * detail upgrades/downgrades promptly) or a cap change forces it. Active ranges rebuild on any LOD change.
9363
+ * detail upgrades/downgrades promptly), a node whose cooldown just expired still needs to switch LOD,
9364
+ * or a cap change forces it. Active ranges rebuild on any LOD change.
9365
+ *
9366
+ * The cooldown-expiry trigger lets a node reach its already-computed target level as soon as its
9367
+ * cooldown clears, rather than waiting for the camera to move. This matters right from load: a
9368
+ * node's base-layer decode is itself applied as a switch (from no active level to the base one), so
9369
+ * it starts the same cooldown a later switch would — this trigger is what lets the node progress past
9370
+ * that base level promptly once it expires, even at a fixed camera pose.
9353
9371
  */
9354
9372
  private _onLodFrame;
9355
9373
  /**
@@ -19964,8 +19982,19 @@ declare namespace BABYLON {
19964
19982
  private _unzipWithFFlateAsync;
19965
19983
  private _parseAsync;
19966
19984
  /**
19967
- * Applies camera limits based on parsed meta data
19985
+ * Extracts the safe-orbit camera limits from parsed splat metadata, or null when the file
19986
+ * carries none. Exposed on the loaded mesh (GaussianSplattingMeshBase.safeOrbitCameraLimits)
19987
+ * so consumers can apply/track them regardless of the active camera type.
19968
19988
  * @param meta parsed splat meta data
19989
+ * @returns the parsed safe-orbit limits, or null
19990
+ */
19991
+ private static _ExtractSafeOrbitLimits;
19992
+ /**
19993
+ * Applies safe-orbit camera limits parsed from the file metadata to the scene's active
19994
+ * ArcRotateCamera. No-op when no limits are present, `disableAutoCameraLimits` is set, or the
19995
+ * active camera is not an ArcRotateCamera — in which case consumers can still read the limits
19996
+ * from the loaded mesh's `safeOrbitCameraLimits` and apply them themselves.
19997
+ * @param limits parsed safe-orbit limits (see _ExtractSafeOrbitLimits)
19969
19998
  * @param scene
19970
19999
  */
19971
20000
  private applyAutoCameraLimits;
@@ -20823,7 +20852,14 @@ declare namespace BABYLON {
20823
20852
  * cheap per-node frustum test every frame so the off-screen LOD bias tracks camera rotation. The LOD
20824
20853
  * re-evaluation is throttled to at most every {@link _lodUpdateInterval} frames once the camera has
20825
20854
  * translated far enough, but also runs immediately whenever a node enters/leaves the frustum (so its
20826
- * detail upgrades/downgrades promptly) or a cap change forces it. Active ranges rebuild on any LOD change.
20855
+ * detail upgrades/downgrades promptly), a node whose cooldown just expired still needs to switch LOD,
20856
+ * or a cap change forces it. Active ranges rebuild on any LOD change.
20857
+ *
20858
+ * The cooldown-expiry trigger lets a node reach its already-computed target level as soon as its
20859
+ * cooldown clears, rather than waiting for the camera to move. This matters right from load: a
20860
+ * node's base-layer decode is itself applied as a switch (from no active level to the base one), so
20861
+ * it starts the same cooldown a later switch would — this trigger is what lets the node progress past
20862
+ * that base level promptly once it expires, even at a fixed camera pose.
20827
20863
  */
20828
20864
  private _onLodFrame;
20829
20865
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babylonjs-loaders",
3
- "version": "9.16.2",
3
+ "version": "9.17.0",
4
4
  "main": "babylonjs.loaders.min.js",
5
5
  "types": "babylonjs.loaders.module.d.ts",
6
6
  "files": [
@@ -16,8 +16,8 @@
16
16
  "test:escheck": "es-check es6 ./babylonjs.loaders.js"
17
17
  },
18
18
  "dependencies": {
19
- "babylonjs": "9.16.2",
20
- "babylonjs-gltf2interface": "9.16.2"
19
+ "babylonjs": "9.17.0",
20
+ "babylonjs-gltf2interface": "9.17.0"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@dev/build-tools": "1.0.0",