@loaders.gl/tiles 5.0.0-alpha.2 → 5.0.0-alpha.3

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 (109) hide show
  1. package/LICENSE +1 -1
  2. package/dist/dist.dev.js +17325 -5650
  3. package/dist/dist.min.js +4 -1
  4. package/dist/index.cjs +1924 -178
  5. package/dist/index.cjs.map +3 -3
  6. package/dist/index.d.ts +9 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +6 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/point-cloud/point-cloud-tileset.d.ts +4 -0
  11. package/dist/point-cloud/point-cloud-tileset.d.ts.map +1 -1
  12. package/dist/point-cloud/point-cloud-tileset.js +51 -12
  13. package/dist/point-cloud/point-cloud-tileset.js.map +1 -1
  14. package/dist/point-cloud/types.d.ts +17 -0
  15. package/dist/point-cloud/types.d.ts.map +1 -1
  16. package/dist/raster-set.d.ts +10 -8
  17. package/dist/raster-set.d.ts.map +1 -1
  18. package/dist/raster-set.js +18 -1
  19. package/dist/raster-set.js.map +1 -1
  20. package/dist/spatial/format-spatial-reference.d.ts +67 -0
  21. package/dist/spatial/format-spatial-reference.d.ts.map +1 -0
  22. package/dist/spatial/format-spatial-reference.js +233 -0
  23. package/dist/spatial/format-spatial-reference.js.map +1 -0
  24. package/dist/spatial/get-spatial-coordinate-frame.d.ts +9 -0
  25. package/dist/spatial/get-spatial-coordinate-frame.d.ts.map +1 -0
  26. package/dist/spatial/get-spatial-coordinate-frame.js +58 -0
  27. package/dist/spatial/get-spatial-coordinate-frame.js.map +1 -0
  28. package/dist/spatial/i3s-elevation.d.ts +20 -0
  29. package/dist/spatial/i3s-elevation.d.ts.map +1 -0
  30. package/dist/spatial/i3s-elevation.js +90 -0
  31. package/dist/spatial/i3s-elevation.js.map +1 -0
  32. package/dist/spatial/i3s-spatial-transformer.d.ts +189 -0
  33. package/dist/spatial/i3s-spatial-transformer.d.ts.map +1 -0
  34. package/dist/spatial/i3s-spatial-transformer.js +686 -0
  35. package/dist/spatial/i3s-spatial-transformer.js.map +1 -0
  36. package/dist/spatial/spatial-coordinate-transformer.d.ts +48 -0
  37. package/dist/spatial/spatial-coordinate-transformer.d.ts.map +1 -0
  38. package/dist/spatial/spatial-coordinate-transformer.js +211 -0
  39. package/dist/spatial/spatial-coordinate-transformer.js.map +1 -0
  40. package/dist/spatial/spatial-resource-registry.d.ts +44 -0
  41. package/dist/spatial/spatial-resource-registry.d.ts.map +1 -0
  42. package/dist/spatial/spatial-resource-registry.js +67 -0
  43. package/dist/spatial/spatial-resource-registry.js.map +1 -0
  44. package/dist/spatial/spatial-types.d.ts +190 -0
  45. package/dist/spatial/spatial-types.d.ts.map +1 -0
  46. package/dist/spatial/spatial-types.js +192 -0
  47. package/dist/spatial/spatial-types.js.map +1 -0
  48. package/dist/tileset-3d/common/tile-3d.d.ts +49 -1
  49. package/dist/tileset-3d/common/tile-3d.d.ts.map +1 -1
  50. package/dist/tileset-3d/common/tile-3d.js +132 -64
  51. package/dist/tileset-3d/common/tile-3d.js.map +1 -1
  52. package/dist/tileset-3d/common/tileset-3d.d.ts +25 -0
  53. package/dist/tileset-3d/common/tileset-3d.d.ts.map +1 -1
  54. package/dist/tileset-3d/common/tileset-3d.js +49 -7
  55. package/dist/tileset-3d/common/tileset-3d.js.map +1 -1
  56. package/dist/tileset-3d/common/tileset-source.d.ts +14 -0
  57. package/dist/tileset-3d/common/tileset-source.d.ts.map +1 -1
  58. package/dist/tileset-3d/common/tileset-source.js.map +1 -1
  59. package/dist/tileset-3d/common/tileset-traverser.d.ts +6 -1
  60. package/dist/tileset-3d/common/tileset-traverser.d.ts.map +1 -1
  61. package/dist/tileset-3d/common/tileset-traverser.js +11 -6
  62. package/dist/tileset-3d/common/tileset-traverser.js.map +1 -1
  63. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts +26 -1
  64. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts.map +1 -1
  65. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js +62 -18
  66. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js.map +1 -1
  67. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts +1 -7
  68. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts.map +1 -1
  69. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js +32 -55
  70. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js.map +1 -1
  71. package/dist/tileset-3d/format-i3s/i3s-source.d.ts +14 -1
  72. package/dist/tileset-3d/format-i3s/i3s-source.d.ts.map +1 -1
  73. package/dist/tileset-3d/format-i3s/i3s-source.js +107 -17
  74. package/dist/tileset-3d/format-i3s/i3s-source.js.map +1 -1
  75. package/dist/tileset-3d/helpers/bounding-volume.d.ts.map +1 -1
  76. package/dist/tileset-3d/helpers/bounding-volume.js +3 -33
  77. package/dist/tileset-3d/helpers/bounding-volume.js.map +1 -1
  78. package/dist/tileset-3d/helpers/frame-state.d.ts +3 -1
  79. package/dist/tileset-3d/helpers/frame-state.d.ts.map +1 -1
  80. package/dist/tileset-3d/helpers/frame-state.js +1 -0
  81. package/dist/tileset-3d/helpers/frame-state.js.map +1 -1
  82. package/dist/tileset-3d/helpers/i3s-lod.d.ts.map +1 -1
  83. package/dist/tileset-3d/helpers/i3s-lod.js +20 -8
  84. package/dist/tileset-3d/helpers/i3s-lod.js.map +1 -1
  85. package/dist/types.d.ts +3 -0
  86. package/dist/types.d.ts.map +1 -1
  87. package/package.json +12 -9
  88. package/src/index.ts +42 -1
  89. package/src/point-cloud/point-cloud-tileset.ts +66 -12
  90. package/src/point-cloud/types.ts +17 -0
  91. package/src/raster-set.ts +46 -11
  92. package/src/spatial/format-spatial-reference.ts +311 -0
  93. package/src/spatial/get-spatial-coordinate-frame.ts +74 -0
  94. package/src/spatial/i3s-elevation.ts +96 -0
  95. package/src/spatial/i3s-spatial-transformer.ts +957 -0
  96. package/src/spatial/spatial-coordinate-transformer.ts +276 -0
  97. package/src/spatial/spatial-resource-registry.ts +79 -0
  98. package/src/spatial/spatial-types.ts +422 -0
  99. package/src/tileset-3d/common/tile-3d.ts +156 -69
  100. package/src/tileset-3d/common/tileset-3d.ts +77 -6
  101. package/src/tileset-3d/common/tileset-source.ts +15 -0
  102. package/src/tileset-3d/common/tileset-traverser.ts +11 -6
  103. package/src/tileset-3d/format-3d-tiles/implicit-tiling.ts +100 -22
  104. package/src/tileset-3d/format-3d-tiles/tiles-3d-source.ts +36 -56
  105. package/src/tileset-3d/format-i3s/i3s-source.ts +119 -18
  106. package/src/tileset-3d/helpers/bounding-volume.ts +3 -55
  107. package/src/tileset-3d/helpers/frame-state.ts +3 -0
  108. package/src/tileset-3d/helpers/i3s-lod.ts +22 -8
  109. package/src/types.ts +3 -0
@@ -2,9 +2,9 @@
2
2
  // This file is derived from the Cesium code base under Apache 2 license
3
3
  // See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
4
4
  /* eslint-disable */
5
- import { Quaternion, Vector3, Matrix3, Matrix4, degrees } from '@math.gl/core';
5
+ import { Quaternion, Vector3, Matrix3, degrees } from '@math.gl/core';
6
6
  import { BoundingSphere, OrientedBoundingBox } from '@math.gl/culling';
7
- import { Ellipsoid } from '@math.gl/geospatial';
7
+ import { Ellipsoid, makeOBBFromRegion } from '@math.gl/geospatial';
8
8
  import { assert } from '@loaders.gl/loader-utils';
9
9
  // const scratchProjectedBoundingSphere = new BoundingSphere();
10
10
  function defined(x) {
@@ -13,12 +13,6 @@ function defined(x) {
13
13
  // const scratchMatrix = new Matrix3();
14
14
  const scratchPoint = new Vector3();
15
15
  const scratchScale = new Vector3();
16
- const scratchNorthWest = new Vector3();
17
- const scratchSouthEast = new Vector3();
18
- const scratchCenter = new Vector3();
19
- const scratchXAxis = new Vector3();
20
- const scratchYAxis = new Vector3();
21
- const scratchZAxis = new Vector3();
22
16
  // const scratchRectangle = new Rectangle();
23
17
  // const scratchOrientedBoundingBox = new OrientedBoundingBox();
24
18
  // const scratchTransform = new Matrix4();
@@ -37,7 +31,7 @@ export function createBoundingVolume(boundingVolumeHeader, transform, result) {
37
31
  return createBox(boundingVolumeHeader.box, transform, result);
38
32
  }
39
33
  if (boundingVolumeHeader.region) {
40
- return createObbFromRegion(boundingVolumeHeader.region);
34
+ return makeOBBFromRegion(boundingVolumeHeader.region);
41
35
  }
42
36
  if (boundingVolumeHeader.sphere) {
43
37
  return createSphere(boundingVolumeHeader.sphere, transform, result);
@@ -194,30 +188,6 @@ function createSphere(sphere, transform, result) {
194
188
  }
195
189
  return new BoundingSphere(center, radius);
196
190
  }
197
- /**
198
- * Create OrientedBoundingBox instance from region 3D tiles bounding volume
199
- * @param region - region 3D tiles bounding volume
200
- * @returns OrientedBoundingBox instance
201
- */
202
- function createObbFromRegion(region) {
203
- // [west, south, east, north, minimum height, maximum height]
204
- // Latitudes and longitudes are in the WGS 84 datum as defined in EPSG 4979 and are in radians.
205
- // Heights are in meters above (or below) the WGS 84 ellipsoid.
206
- const [west, south, east, north, minHeight, maxHeight] = region;
207
- const northWest = Ellipsoid.WGS84.cartographicToCartesian([degrees(west), degrees(north), minHeight], scratchNorthWest);
208
- const southEast = Ellipsoid.WGS84.cartographicToCartesian([degrees(east), degrees(south), maxHeight], scratchSouthEast);
209
- const centerInCartesian = new Vector3().addVectors(northWest, southEast).multiplyByScalar(0.5);
210
- Ellipsoid.WGS84.cartesianToCartographic(centerInCartesian, scratchCenter);
211
- Ellipsoid.WGS84.cartographicToCartesian([degrees(east), scratchCenter[1], scratchCenter[2]], scratchXAxis);
212
- Ellipsoid.WGS84.cartographicToCartesian([scratchCenter[0], degrees(north), scratchCenter[2]], scratchYAxis);
213
- Ellipsoid.WGS84.cartographicToCartesian([scratchCenter[0], scratchCenter[1], maxHeight], scratchZAxis);
214
- return createBox([
215
- ...centerInCartesian,
216
- ...scratchXAxis.subtract(centerInCartesian),
217
- ...scratchYAxis.subtract(centerInCartesian),
218
- ...scratchZAxis.subtract(centerInCartesian)
219
- ], new Matrix4());
220
- }
221
191
  /**
222
192
  * Convert a bounding volume defined by OrientedBoundingBox to cartographic bounds
223
193
  * @returns {CartographicBounds}
@@ -1 +1 @@
1
- {"version":3,"file":"bounding-volume.js","sourceRoot":"","sources":["../../../src/tileset-3d/helpers/bounding-volume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bounding-volume.js","sourceRoot":"","sources":["../../../src/tileset-3d/helpers/bounding-volume.ts"],"names":[],"mappings":"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C,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { Tile3D } from "../common/tile-3d.js";
2
2
  import { Vector3 } from '@math.gl/core';
3
- import { CullingVolume } from '@math.gl/culling';
3
+ import { CullingVolume, Plane } from '@math.gl/culling';
4
4
  import { GeospatialViewport } from "../../types.js";
5
5
  export type FrameState = {
6
6
  camera: {
@@ -21,6 +21,8 @@ export type FrameState = {
21
21
  topDownViewport: GeospatialViewport;
22
22
  height: number;
23
23
  cullingVolume: CullingVolume;
24
+ /** Optional world-space clipping planes applied to render-content culling. */
25
+ clippingPlanes?: Plane[];
24
26
  frameNumber: number;
25
27
  sseDenominator: number;
26
28
  /** View-dependent density used by perspective dynamic screen-space error for this traversal. */
@@ -1 +1 @@
1
- {"version":3,"file":"frame-state.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/helpers/frame-state.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,6BAA0B;AAC9C,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,aAAa,EAAQ,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAC,kBAAkB,EAAW,uBAAoB;AAEzD,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE;QACN,iDAAiD;QACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,kEAAkE;QAClE,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,qEAAqE;QACrE,EAAE,EAAE,MAAM,EAAE,CAAC;QACb,iFAAiF;QACjF,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,qDAAqD;QACrD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,uEAAuE;QACvE,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,eAAe,EAAE,kBAAkB,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,gGAAgG;IAChG,8BAA8B,EAAE,MAAM,CAAC;CACxC,CAAC;AAEF,4FAA4F;AAC5F,MAAM,MAAM,oBAAoB,GAAG;IACjC,uEAAuE;IACvE,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kEAAkE;IAClE,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oDAAoD;IACpD,KAAK,EAAE,iBAAiB,CAAC;IACzB,0DAA0D;IAC1D,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAeF;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,kBAAkB,EAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,oBAAyB,GACjC,UAAU,CAiFZ;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,iBAAiB,GAAG,SAAS,EAC5C,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,EAC5B,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,EAC7B,WAAW,EAAE,MAAM,GAClB,kBAAkB,CA6BpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,MAAM,GAC3B,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAyBtB"}
1
+ {"version":3,"file":"frame-state.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/helpers/frame-state.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,6BAA0B;AAC9C,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,aAAa,EAAE,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAC,kBAAkB,EAAW,uBAAoB;AAEzD,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE;QACN,iDAAiD;QACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,kEAAkE;QAClE,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,qEAAqE;QACrE,EAAE,EAAE,MAAM,EAAE,CAAC;QACb,iFAAiF;QACjF,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,qDAAqD;QACrD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,uEAAuE;QACvE,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,eAAe,EAAE,kBAAkB,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;IAC7B,8EAA8E;IAC9E,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,gGAAgG;IAChG,8BAA8B,EAAE,MAAM,CAAC;CACxC,CAAC;AAEF,4FAA4F;AAC5F,MAAM,MAAM,oBAAoB,GAAG;IACjC,uEAAuE;IACvE,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kEAAkE;IAClE,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oDAAoD;IACpD,KAAK,EAAE,iBAAiB,CAAC;IACzB,0DAA0D;IAC1D,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAeF;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,kBAAkB,EAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,oBAAyB,GACjC,UAAU,CAkFZ;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,iBAAiB,GAAG,SAAS,EAC5C,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,EAC5B,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,EAC7B,WAAW,EAAE,MAAM,GAClB,kBAAkB,CA6BpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,MAAM,GAC3B,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAyBtB"}
@@ -92,6 +92,7 @@ export function getFrameState(viewport, frameNumber, options = {}) {
92
92
  topDownViewport,
93
93
  height,
94
94
  cullingVolume,
95
+ clippingPlanes: viewport.clippingPlanes,
95
96
  frameNumber, // TODO: This can be the same between updates, what number is unique for between updates?
96
97
  sseDenominator: 1.15, // Assumes fovy = 60 degrees
97
98
  // Tileset3D fills this immediately before traversal because it depends on the root volume.
@@ -1 +1 @@
1
- {"version":3,"file":"frame-state.js","sourceRoot":"","sources":["../../../src/tileset-3d/helpers/frame-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-state.js","sourceRoot":"","sources":["../../../src/tileset-3d/helpers/frame-state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-lod.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/helpers/i3s-lod.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,MAAM,EAAC,6BAA0B;AACzC,OAAO,EAAC,UAAU,EAAC,yBAAsB;AAUzC;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAczF;AAED;;;;;GAKG;AAEH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CA6C/E"}
1
+ {"version":3,"file":"i3s-lod.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/helpers/i3s-lod.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,MAAM,EAAC,6BAA0B;AACzC,OAAO,EAAC,UAAU,EAAC,yBAAsB;AAUzC;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CA2BzF;AAED;;;;;GAKG;AAEH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CA8C/E"}
@@ -27,13 +27,24 @@ export function getLodStatus(tile, frameState) {
27
27
  if (screenSize < 2) {
28
28
  return 'OUT';
29
29
  }
30
- if (!tile.header.children || screenSize <= tile.lodMetricValue) {
30
+ if (!tile.header.children) {
31
31
  return 'DRAW';
32
32
  }
33
- else if (tile.header.children) {
34
- return 'DIG';
33
+ switch (tile.lodMetricType) {
34
+ case 'screenSpaceRelative': {
35
+ const viewportHeight = frameState.topDownViewport.height || 1;
36
+ return screenSize / viewportHeight <= tile.lodMetricValue ? 'DRAW' : 'DIG';
37
+ }
38
+ case 'distanceRangeFromDefaultCamera':
39
+ return tile.distanceToTile(frameState) >= tile.lodMetricValue ? 'DRAW' : 'DIG';
40
+ case 'maxScreenThresholdSQ': {
41
+ const diameterThreshold = Math.sqrt(tile.lodMetricValue / (Math.PI * 0.25));
42
+ return screenSize <= diameterThreshold ? 'DRAW' : 'DIG';
43
+ }
44
+ case 'maxScreenThreshold':
45
+ default:
46
+ return screenSize <= tile.lodMetricValue ? 'DRAW' : 'DIG';
35
47
  }
36
- return 'OUT';
37
48
  }
38
49
  /**
39
50
  * Calculate size of MBS radius projected on the screen plane
@@ -44,10 +55,11 @@ export function getLodStatus(tile, frameState) {
44
55
  // eslint-disable-next-line max-statements
45
56
  export function getProjectedRadius(tile, frameState) {
46
57
  const { topDownViewport: viewport } = frameState;
47
- const mbsLat = tile.header.mbs[1];
48
- const mbsLon = tile.header.mbs[0];
49
- const mbsZ = tile.header.mbs[2];
50
- const mbsR = tile.header.mbs[3];
58
+ const mbs = tile.header.i3sLodMbs || tile.header.mbs;
59
+ const mbsLat = mbs[1];
60
+ const mbsLon = mbs[0];
61
+ const mbsZ = mbs[2];
62
+ const mbsR = mbs[3];
51
63
  const mbsCenterCartesian = [...tile.boundingVolume.center];
52
64
  const cameraPositionCartographic = viewport.unprojectPosition(viewport.cameraPosition);
53
65
  Ellipsoid.WGS84.cartographicToCartesian(cameraPositionCartographic, cameraPositionCartesian);
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-lod.js","sourceRoot":"","sources":["../../../src/tileset-3d/helpers/i3s-lod.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAI9C,MAAM,uBAAuB,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9C,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;AAC5B,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAE,CAAC;AACxC,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AACrC,MAAM,qBAAqB,GAAG,IAAI,OAAO,EAAE,CAAC;AAC5C,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAAE,CAAC;AAC3C,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAAE,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,UAAsB;IAC/D,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5D,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,0CAA0C;AAC1C,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,UAAsB;IACrE,MAAM,EAAC,eAAe,EAAE,QAAQ,EAAC,GAAG,UAAU,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,0BAA0B,GAAG,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvF,SAAS,CAAC,KAAK,CAAC,uBAAuB,CAAC,0BAA0B,EAAE,uBAAuB,CAAC,CAAC;IAE7F,8BAA8B;IAC9B,8BAA8B;IAC9B,8BAA8B;IAC9B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,SAAS,EAAE,CAAC;IAC7E,iCAAiC;IACjC,SAAS,CAAC,KAAK,CAAC,uBAAuB,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IAClF,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC;IACzD,iBAAiB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IAChF,wDAAwD;IACxD,wEAAwE;IACxE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAC1F,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAChE,cAAc,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1E,MAAM,oBAAoB,GAAG,cAAc,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IAC5E,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3F,mDAAmD;IACnD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/E,MAAM,8BAA8B,GAAG,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC5E,MAAM,iCAAiC,GAAG,SAAS,CAAC,KAAK,CAAC,uBAAuB,CAC/E,8BAA8B,CAC/B,CAAC;IACF,8BAA8B;IAE9B,gFAAgF;IAChF,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,wBAAwB,GAAG,QAAQ,CAAC,OAAO,CAC/C,iCAA6D,CAC9D,CAAC;IACF,MAAM,eAAe,GAAG,qBAAqB;SAC1C,IAAI,CAAC,eAAe,CAAC;SACrB,QAAQ,CAAC,wBAAwB,CAAC;SAClC,SAAS,EAAE,CAAC;IACf,OAAO,eAAe,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"i3s-lod.js","sourceRoot":"","sources":["../../../src/tileset-3d/helpers/i3s-lod.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Vector3 } from '@math.gl/core';
2
+ import type { Plane } from '@math.gl/culling';
2
3
  export type BoundingRectangle = {
3
4
  width: number;
4
5
  height: number;
@@ -20,6 +21,8 @@ export type Viewport = {
20
21
  * Orthographic 3D Tiles traversal requires a positive, finite value to calculate SSE.
21
22
  */
22
23
  metersPerPixel?: number;
24
+ /** Optional world-space clipping planes used to cull renderable tile content. */
25
+ clippingPlanes?: Plane[];
23
26
  distanceScales: {
24
27
  unitsPerMeter: number[];
25
28
  metersPerUnit: number[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAEtC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;iEACiE;AACjE,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE;QACd,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9E,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,KAAK,MAAM,EAAE,CAAC;CACvD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG;IAC1C,mGAAmG;IACnG,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,mGAAmG;IACnG,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAE5C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;iEACiE;AACjE,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC;IACzB,cAAc,EAAE;QACd,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9E,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,KAAK,MAAM,EAAE,CAAC;CACvD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG;IAC1C,mGAAmG;IACnG,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,mGAAmG;IACnG,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/tiles",
3
- "version": "5.0.0-alpha.2",
3
+ "version": "5.0.0-alpha.3",
4
4
  "description": "Common components for different tiles loaders.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -42,13 +42,16 @@
42
42
  "build-bundle-dev": "ocular-bundle ./bundle.ts --env=dev --output=dist/dist.dev.js"
43
43
  },
44
44
  "dependencies": {
45
- "@loaders.gl/loader-utils": "5.0.0-alpha.2",
46
- "@loaders.gl/math": "5.0.0-alpha.2",
47
- "@loaders.gl/schema": "5.0.0-alpha.2",
48
- "@math.gl/core": "^4.1.0",
49
- "@math.gl/culling": "^4.1.0",
50
- "@math.gl/geospatial": "^4.1.0",
51
- "@math.gl/web-mercator": "^4.1.0",
45
+ "@loaders.gl/loader-utils": "5.0.0-alpha.3",
46
+ "@loaders.gl/schema": "5.0.0-alpha.3",
47
+ "@math.gl/core": "4.2.0-alpha.6",
48
+ "@math.gl/crs": "^4.2.0-alpha.6",
49
+ "@math.gl/culling": "4.2.0-alpha.6",
50
+ "@math.gl/geoid": "4.2.0-alpha.6",
51
+ "@math.gl/geometry-utils": "4.2.0-alpha.6",
52
+ "@math.gl/geospatial": "4.2.0-alpha.6",
53
+ "@math.gl/proj4": "^4.2.0-alpha.6",
54
+ "@math.gl/web-mercator": "4.2.0-alpha.6",
52
55
  "@probe.gl/stats": "^4.1.1"
53
56
  },
54
57
  "devDependencies": {
@@ -57,5 +60,5 @@
57
60
  "peerDependencies": {
58
61
  "@loaders.gl/core": "~5.0.0-alpha.0"
59
62
  },
60
- "gitHead": "27bcc0db684abb66a83003263c9d1cafd9e5b2dd"
63
+ "gitHead": "6e6f532b04a2798191ee2d9a932ca73b7c7f3c8d"
61
64
  }
package/src/index.ts CHANGED
@@ -93,7 +93,8 @@ export type {
93
93
  PointCloudTileContent,
94
94
  PointCloudTileHeader,
95
95
  PointCloudTilesetSource,
96
- PointCloudTilesetViewState
96
+ PointCloudTilesetViewState,
97
+ PointCloudCoordinateSystem
97
98
  } from './point-cloud/types';
98
99
  export type {PointCloudTilesetOptions} from './point-cloud/point-cloud-tileset';
99
100
  export {PointCloudTileset} from './point-cloud/point-cloud-tileset';
@@ -101,6 +102,46 @@ export {PointCloudTile} from './point-cloud/point-cloud-tile';
101
102
  export {createBoundingVolume} from './tileset-3d/helpers/bounding-volume';
102
103
  export {calculateTransformProps} from './tileset-3d/helpers/transform-utils';
103
104
 
105
+ export type {
106
+ CreateTilesetSpatialReferenceOptions,
107
+ TilesetCoordinateFrame,
108
+ TilesetElevationBounds,
109
+ TilesetElevationMode,
110
+ TilesetElevationProvider,
111
+ TilesetElevationRange,
112
+ TilesetElevationSample,
113
+ TilesetHeightReference,
114
+ TilesetOutputCoordinates,
115
+ TilesetSpatialOptions,
116
+ TilesetSpatialReference,
117
+ TilesetSpatialReferenceProvenance,
118
+ TilesetTargetHeightReference
119
+ } from './spatial/spatial-types';
120
+ export {
121
+ applyTilesetSpatialOptions,
122
+ createTilesetSpatialReference,
123
+ markTilesetSpatialReferenceTransformed
124
+ } from './spatial/spatial-types';
125
+ export {
126
+ get3DTilesSpatialReference,
127
+ getI3SSpatialReference
128
+ } from './spatial/format-spatial-reference';
129
+ export {SpatialCoordinateTransformer} from './spatial/spatial-coordinate-transformer';
130
+ export {getSpatialCoordinateFrame} from './spatial/spatial-coordinate-transformer';
131
+ export type {
132
+ I3SSpatialBounds,
133
+ I3SSpatialObb,
134
+ I3STransformedPositions
135
+ } from './spatial/i3s-spatial-transformer';
136
+ export {I3SSpatialTransformer} from './spatial/i3s-spatial-transformer';
137
+ export {
138
+ getGeoidModel,
139
+ registerGeoidModel,
140
+ registerGeoidModelFromPgm,
141
+ registerSpatialCrs,
142
+ registerSpatialDatumGrid
143
+ } from './spatial/spatial-resource-registry';
144
+
104
145
  export {getFrameState} from './tileset-3d/helpers/frame-state';
105
146
  export type {GetFrameStateOptions} from './tileset-3d/helpers/frame-state';
106
147
  export {getLodStatus} from './tileset-3d/helpers/i3s-lod';
@@ -16,6 +16,10 @@ export type PointCloudTilesetOptions = {
16
16
  debounceTime?: number;
17
17
  minimumNodePixelSize?: number;
18
18
  maximumScreenSpaceError?: number;
19
+ /** Override source LOD metric for point-cloud traversal. */
20
+ lodSelectionMetricType?: 'maxScreenThresholdSQ' | 'density-threshold';
21
+ /** Minimum projected point density at which a node is refined. */
22
+ densityThreshold?: number;
19
23
  pointBudget?: number;
20
24
  maxDepth?: number;
21
25
  onTileLoad?: (tile: PointCloudTile) => void;
@@ -30,6 +34,8 @@ const DEFAULT_PROPS: PointCloudTilesetProps = {
30
34
  debounceTime: 0,
31
35
  minimumNodePixelSize: 150,
32
36
  maximumScreenSpaceError: 1,
37
+ lodSelectionMetricType: 'maxScreenThresholdSQ',
38
+ densityThreshold: 1,
33
39
  pointBudget: 2_000_000,
34
40
  maxDepth: Number.POSITIVE_INFINITY,
35
41
  onTileLoad: () => {},
@@ -307,6 +313,17 @@ export class PointCloudTileset {
307
313
 
308
314
  /** Whether a tile should refine to children based on its projected screen radius. */
309
315
  private shouldRefine(tile: PointCloudTile, traversalWeight: number): boolean {
316
+ if (
317
+ tile.level < this.options.maxDepth &&
318
+ Number.isFinite(traversalWeight) &&
319
+ (tile.header.lodSelectionMetricType || this.options.lodSelectionMetricType) ===
320
+ 'density-threshold'
321
+ ) {
322
+ const projectedArea = Math.max(1, Math.PI * traversalWeight * traversalWeight);
323
+ const density = tile.pointCount / projectedArea;
324
+ const threshold = tile.header.lodThreshold || this.options.densityThreshold;
325
+ return density < threshold;
326
+ }
310
327
  return (
311
328
  tile.level < this.options.maxDepth &&
312
329
  Number.isFinite(traversalWeight) &&
@@ -597,10 +614,18 @@ export class PointCloudTileset {
597
614
  if (!boundingVolume) {
598
615
  return 1;
599
616
  }
617
+ if (boundingVolume.coordinateFrame === 'cartesian') {
618
+ return 1;
619
+ }
600
620
 
601
621
  const [minBounds, maxBounds] = boundingVolume.cartographicBounds;
602
- const longitudeSpan = Math.max(Math.abs(maxBounds[0] - minBounds[0]), 0.000001);
603
- return Math.max(1, Math.round(Math.log2(360 / longitudeSpan)));
622
+ const longitudeSpan = boundingVolume.coversFullLongitude
623
+ ? 360
624
+ : boundingVolume.wrapsDateline
625
+ ? 360 - Math.abs(maxBounds[0] - minBounds[0])
626
+ : Math.abs(maxBounds[0] - minBounds[0]);
627
+ const normalizedLongitudeSpan = Math.max(longitudeSpan, 0.000001);
628
+ return Math.max(1, Math.round(Math.log2(360 / normalizedLongitudeSpan)));
604
629
  }
605
630
 
606
631
  private haveSameIds(idsA: Set<string>, idsB: Set<string>): boolean {
@@ -622,16 +647,45 @@ export class PointCloudTileset {
622
647
  */
623
648
  private getBoundingVolumeCorners(boundingVolume: PointCloudBoundingVolume): number[][] {
624
649
  const [minBounds, maxBounds] = boundingVolume.cartographicBounds;
625
- return [
626
- [minBounds[0], minBounds[1], minBounds[2] || 0],
627
- [minBounds[0], minBounds[1], maxBounds[2] || 0],
628
- [minBounds[0], maxBounds[1], minBounds[2] || 0],
629
- [minBounds[0], maxBounds[1], maxBounds[2] || 0],
630
- [maxBounds[0], minBounds[1], minBounds[2] || 0],
631
- [maxBounds[0], minBounds[1], maxBounds[2] || 0],
632
- [maxBounds[0], maxBounds[1], minBounds[2] || 0],
633
- [maxBounds[0], maxBounds[1], maxBounds[2] || 0]
634
- ];
650
+ const longitudeIntervals = boundingVolume.coversFullLongitude
651
+ ? [[-180, 180]]
652
+ : boundingVolume.wrapsDateline
653
+ ? [
654
+ [minBounds[0], 180],
655
+ [-180, maxBounds[0]]
656
+ ]
657
+ : [[minBounds[0], maxBounds[0]]];
658
+ const corners: number[][] = [];
659
+ const wrappedLongitudeSpan = 360 - Math.abs(maxBounds[0] - minBounds[0]);
660
+ const longitudeReference = minBounds[0] + wrappedLongitudeSpan / 2;
661
+ for (const [minimumLongitude, maximumLongitude] of longitudeIntervals) {
662
+ const normalizeLongitude = (longitude: number) => {
663
+ if (!boundingVolume.wrapsDateline) {
664
+ return longitude;
665
+ }
666
+ let normalizedLongitude = longitude;
667
+ while (normalizedLongitude - longitudeReference > 180) {
668
+ normalizedLongitude -= 360;
669
+ }
670
+ while (normalizedLongitude - longitudeReference < -180) {
671
+ normalizedLongitude += 360;
672
+ }
673
+ return normalizedLongitude;
674
+ };
675
+ const unwrappedMinimumLongitude = normalizeLongitude(minimumLongitude);
676
+ const unwrappedMaximumLongitude = normalizeLongitude(maximumLongitude);
677
+ corners.push(
678
+ [unwrappedMinimumLongitude, minBounds[1], minBounds[2] || 0],
679
+ [unwrappedMinimumLongitude, minBounds[1], maxBounds[2] || 0],
680
+ [unwrappedMinimumLongitude, maxBounds[1], minBounds[2] || 0],
681
+ [unwrappedMinimumLongitude, maxBounds[1], maxBounds[2] || 0],
682
+ [unwrappedMaximumLongitude, minBounds[1], minBounds[2] || 0],
683
+ [unwrappedMaximumLongitude, minBounds[1], maxBounds[2] || 0],
684
+ [unwrappedMaximumLongitude, maxBounds[1], minBounds[2] || 0],
685
+ [unwrappedMaximumLongitude, maxBounds[1], maxBounds[2] || 0]
686
+ );
687
+ }
688
+ return corners;
635
689
  }
636
690
 
637
691
  /**
@@ -4,6 +4,7 @@
4
4
 
5
5
  import type {DataSource, DataSourceOptions} from '@loaders.gl/loader-utils';
6
6
  import type {MeshArrowTable} from '@loaders.gl/schema';
7
+ import type {TilesetSpatialReference} from '../spatial/spatial-types';
7
8
 
8
9
  /**
9
10
  * An accessor-like description for point cloud attributes.
@@ -34,6 +35,10 @@ export type PointCloudTileContent = {
34
35
  coordinateSystem: PointCloudCoordinateSystem;
35
36
  constantRGBA?: number[];
36
37
  modelMatrix?: number[] | Float32Array;
38
+ /** Spatial descriptor for returned points, origins, and bounds. */
39
+ spatialReference?: TilesetSpatialReference;
40
+ /** Content bound expressed in the selected spatial output frame. */
41
+ spatialBoundingVolume?: PointCloudBoundingVolume;
37
42
  };
38
43
 
39
44
  /**
@@ -41,8 +46,14 @@ export type PointCloudTileContent = {
41
46
  */
42
47
  export type PointCloudBoundingVolume = {
43
48
  cartographicBounds: [min: number[], max: number[]];
49
+ /** True when the longitude interval crosses the antimeridian. */
50
+ wrapsDateline?: boolean;
51
+ /** True when the longitude interval covers the full globe. */
52
+ coversFullLongitude?: boolean;
44
53
  center: number[];
45
54
  radius: number;
55
+ /** Broad coordinate frame of `center` and `cartographicBounds`. */
56
+ coordinateFrame?: 'geographic' | 'cartesian';
46
57
  };
47
58
 
48
59
  /**
@@ -54,6 +65,12 @@ export type PointCloudTileHeader = {
54
65
  pointCount: number;
55
66
  geometricError: number;
56
67
  boundingVolume: PointCloudBoundingVolume;
68
+ /** Bound expressed in the selected content/output frame; traversal retains geographic bounds. */
69
+ spatialBoundingVolume?: PointCloudBoundingVolume;
70
+ /** I3S LOD metric used to decide whether this node refines. */
71
+ lodSelectionMetricType?: 'maxScreenThresholdSQ' | 'density-threshold';
72
+ /** Source-provided LOD threshold for density or screen metrics. */
73
+ lodThreshold?: number;
57
74
  };
58
75
 
59
76
  /**