@loaders.gl/tiles 5.0.0-alpha.1 → 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 (161) hide show
  1. package/LICENSE +14 -3
  2. package/dist/dist.dev.js +17482 -3685
  3. package/dist/dist.min.js +4 -1
  4. package/dist/index.cjs +4594 -422
  5. package/dist/index.cjs.map +3 -4
  6. package/dist/index.d.ts +16 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +7 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/point-cloud/point-cloud-tile.d.ts.map +1 -1
  11. package/dist/point-cloud/point-cloud-tile.js +3 -0
  12. package/dist/point-cloud/point-cloud-tile.js.map +1 -1
  13. package/dist/point-cloud/point-cloud-tileset.d.ts +4 -0
  14. package/dist/point-cloud/point-cloud-tileset.d.ts.map +1 -1
  15. package/dist/point-cloud/point-cloud-tileset.js +54 -12
  16. package/dist/point-cloud/point-cloud-tileset.js.map +1 -1
  17. package/dist/point-cloud/types.d.ts +17 -0
  18. package/dist/point-cloud/types.d.ts.map +1 -1
  19. package/dist/point-cloud/types.js +3 -0
  20. package/dist/point-cloud/types.js.map +1 -1
  21. package/dist/raster-set.d.ts +37 -29
  22. package/dist/raster-set.d.ts.map +1 -1
  23. package/dist/raster-set.js +25 -2
  24. package/dist/raster-set.js.map +1 -1
  25. package/dist/spatial/format-spatial-reference.d.ts +67 -0
  26. package/dist/spatial/format-spatial-reference.d.ts.map +1 -0
  27. package/dist/spatial/format-spatial-reference.js +233 -0
  28. package/dist/spatial/format-spatial-reference.js.map +1 -0
  29. package/dist/spatial/get-spatial-coordinate-frame.d.ts +9 -0
  30. package/dist/spatial/get-spatial-coordinate-frame.d.ts.map +1 -0
  31. package/dist/spatial/get-spatial-coordinate-frame.js +58 -0
  32. package/dist/spatial/get-spatial-coordinate-frame.js.map +1 -0
  33. package/dist/spatial/i3s-elevation.d.ts +20 -0
  34. package/dist/spatial/i3s-elevation.d.ts.map +1 -0
  35. package/dist/spatial/i3s-elevation.js +90 -0
  36. package/dist/spatial/i3s-elevation.js.map +1 -0
  37. package/dist/spatial/i3s-spatial-transformer.d.ts +189 -0
  38. package/dist/spatial/i3s-spatial-transformer.d.ts.map +1 -0
  39. package/dist/spatial/i3s-spatial-transformer.js +686 -0
  40. package/dist/spatial/i3s-spatial-transformer.js.map +1 -0
  41. package/dist/spatial/spatial-coordinate-transformer.d.ts +48 -0
  42. package/dist/spatial/spatial-coordinate-transformer.d.ts.map +1 -0
  43. package/dist/spatial/spatial-coordinate-transformer.js +211 -0
  44. package/dist/spatial/spatial-coordinate-transformer.js.map +1 -0
  45. package/dist/spatial/spatial-resource-registry.d.ts +44 -0
  46. package/dist/spatial/spatial-resource-registry.d.ts.map +1 -0
  47. package/dist/spatial/spatial-resource-registry.js +67 -0
  48. package/dist/spatial/spatial-resource-registry.js.map +1 -0
  49. package/dist/spatial/spatial-types.d.ts +190 -0
  50. package/dist/spatial/spatial-types.d.ts.map +1 -0
  51. package/dist/spatial/spatial-types.js +192 -0
  52. package/dist/spatial/spatial-types.js.map +1 -0
  53. package/dist/tileset-3d/common/tile-3d.d.ts +147 -4
  54. package/dist/tileset-3d/common/tile-3d.d.ts.map +1 -1
  55. package/dist/tileset-3d/common/tile-3d.js +358 -76
  56. package/dist/tileset-3d/common/tile-3d.js.map +1 -1
  57. package/dist/tileset-3d/common/tileset-3d.d.ts +168 -3
  58. package/dist/tileset-3d/common/tileset-3d.d.ts.map +1 -1
  59. package/dist/tileset-3d/common/tileset-3d.js +306 -23
  60. package/dist/tileset-3d/common/tileset-3d.js.map +1 -1
  61. package/dist/tileset-3d/common/tileset-cache.d.ts +11 -1
  62. package/dist/tileset-3d/common/tileset-cache.d.ts.map +1 -1
  63. package/dist/tileset-3d/common/tileset-cache.js +11 -3
  64. package/dist/tileset-3d/common/tileset-cache.js.map +1 -1
  65. package/dist/tileset-3d/common/tileset-source.d.ts +32 -0
  66. package/dist/tileset-3d/common/tileset-source.d.ts.map +1 -1
  67. package/dist/tileset-3d/common/tileset-source.js.map +1 -1
  68. package/dist/tileset-3d/common/tileset-traverser.d.ts +19 -1
  69. package/dist/tileset-3d/common/tileset-traverser.d.ts.map +1 -1
  70. package/dist/tileset-3d/common/tileset-traverser.js +39 -7
  71. package/dist/tileset-3d/common/tileset-traverser.js.map +1 -1
  72. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts +136 -0
  73. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts.map +1 -0
  74. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js +384 -0
  75. package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js.map +1 -0
  76. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts +86 -3
  77. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts.map +1 -1
  78. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js +196 -21
  79. package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js.map +1 -1
  80. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts +36 -0
  81. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts.map +1 -1
  82. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js +66 -0
  83. package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js.map +1 -1
  84. package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.d.ts.map +1 -1
  85. package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.js +3 -0
  86. package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.js.map +1 -1
  87. package/dist/tileset-3d/format-i3s/i3s-source.d.ts +14 -1
  88. package/dist/tileset-3d/format-i3s/i3s-source.d.ts.map +1 -1
  89. package/dist/tileset-3d/format-i3s/i3s-source.js +107 -17
  90. package/dist/tileset-3d/format-i3s/i3s-source.js.map +1 -1
  91. package/dist/tileset-3d/format-i3s/i3s-tile-manager.d.ts.map +1 -1
  92. package/dist/tileset-3d/format-i3s/i3s-tile-manager.js +3 -0
  93. package/dist/tileset-3d/format-i3s/i3s-tile-manager.js.map +1 -1
  94. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.d.ts.map +1 -1
  95. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.js +3 -0
  96. package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.js.map +1 -1
  97. package/dist/tileset-3d/helpers/3d-tiles-options.d.ts.map +1 -1
  98. package/dist/tileset-3d/helpers/3d-tiles-options.js +3 -0
  99. package/dist/tileset-3d/helpers/3d-tiles-options.js.map +1 -1
  100. package/dist/tileset-3d/helpers/bounding-volume.d.ts.map +1 -1
  101. package/dist/tileset-3d/helpers/bounding-volume.js +4 -33
  102. package/dist/tileset-3d/helpers/bounding-volume.js.map +1 -1
  103. package/dist/tileset-3d/helpers/frame-state.d.ts +62 -2
  104. package/dist/tileset-3d/helpers/frame-state.d.ts.map +1 -1
  105. package/dist/tileset-3d/helpers/frame-state.js +85 -9
  106. package/dist/tileset-3d/helpers/frame-state.js.map +1 -1
  107. package/dist/tileset-3d/helpers/i3s-lod.d.ts.map +1 -1
  108. package/dist/tileset-3d/helpers/i3s-lod.js +20 -8
  109. package/dist/tileset-3d/helpers/i3s-lod.js.map +1 -1
  110. package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts +61 -9
  111. package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts.map +1 -1
  112. package/dist/tileset-3d/helpers/tiles-3d-lod.js +198 -93
  113. package/dist/tileset-3d/helpers/tiles-3d-lod.js.map +1 -1
  114. package/dist/tileset-3d/helpers/tiles-3d-request-priority.d.ts +134 -0
  115. package/dist/tileset-3d/helpers/tiles-3d-request-priority.d.ts.map +1 -0
  116. package/dist/tileset-3d/helpers/tiles-3d-request-priority.js +179 -0
  117. package/dist/tileset-3d/helpers/tiles-3d-request-priority.js.map +1 -0
  118. package/dist/types.d.ts +5 -0
  119. package/dist/types.d.ts.map +1 -1
  120. package/dist/types.js +3 -0
  121. package/dist/types.js.map +1 -1
  122. package/dist/utils/doubly-linked-list.d.ts.map +1 -1
  123. package/dist/utils/doubly-linked-list.js +1 -0
  124. package/dist/utils/doubly-linked-list.js.map +1 -1
  125. package/dist/utils/managed-array.d.ts.map +1 -1
  126. package/dist/utils/managed-array.js +1 -0
  127. package/dist/utils/managed-array.js.map +1 -1
  128. package/package.json +12 -9
  129. package/src/index.ts +61 -1
  130. package/src/point-cloud/point-cloud-tile.ts +4 -0
  131. package/src/point-cloud/point-cloud-tileset.ts +70 -12
  132. package/src/point-cloud/types.ts +21 -0
  133. package/src/raster-set.ts +118 -45
  134. package/src/spatial/format-spatial-reference.ts +311 -0
  135. package/src/spatial/get-spatial-coordinate-frame.ts +74 -0
  136. package/src/spatial/i3s-elevation.ts +96 -0
  137. package/src/spatial/i3s-spatial-transformer.ts +957 -0
  138. package/src/spatial/spatial-coordinate-transformer.ts +276 -0
  139. package/src/spatial/spatial-resource-registry.ts +79 -0
  140. package/src/spatial/spatial-types.ts +422 -0
  141. package/src/tileset-3d/common/tile-3d.ts +435 -84
  142. package/src/tileset-3d/common/tileset-3d.ts +445 -23
  143. package/src/tileset-3d/common/tileset-cache.ts +15 -7
  144. package/src/tileset-3d/common/tileset-source.ts +36 -0
  145. package/src/tileset-3d/common/tileset-traverser.ts +40 -7
  146. package/src/tileset-3d/format-3d-tiles/implicit-tiling.ts +612 -0
  147. package/src/tileset-3d/format-3d-tiles/tiles-3d-source.ts +254 -21
  148. package/src/tileset-3d/format-3d-tiles/tileset-3d-traverser.ts +77 -0
  149. package/src/tileset-3d/format-i3s/i3s-pending-tiles-register.ts +4 -0
  150. package/src/tileset-3d/format-i3s/i3s-source.ts +119 -18
  151. package/src/tileset-3d/format-i3s/i3s-tile-manager.ts +4 -0
  152. package/src/tileset-3d/format-i3s/i3s-tileset-traverser.ts +4 -0
  153. package/src/tileset-3d/helpers/3d-tiles-options.ts +4 -0
  154. package/src/tileset-3d/helpers/bounding-volume.ts +5 -55
  155. package/src/tileset-3d/helpers/frame-state.ts +142 -11
  156. package/src/tileset-3d/helpers/i3s-lod.ts +22 -8
  157. package/src/tileset-3d/helpers/tiles-3d-lod.ts +291 -112
  158. package/src/tileset-3d/helpers/tiles-3d-request-priority.ts +301 -0
  159. package/src/types.ts +9 -0
  160. package/src/utils/doubly-linked-list.ts +2 -0
  161. package/src/utils/managed-array.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"tileset-cache.js","sourceRoot":"","sources":["../../../src/tileset-3d/common/tileset-cache.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAOpC,OAAO,EAAC,gBAAgB,EAAC,0CAAuC;AAEhE;;;GAGG;AACH,MAAM,OAAO,YAAY;IACf,KAAK,CAAmB;IACxB,SAAS,CAAM;IACf,UAAU,CAAU;IAE5B;QACE,+FAA+F;QAC/F,0DAA0D;QAC1D,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,0EAA0E;QAC1E,6EAA6E;QAC7E,uDAAuD;QACvD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,GAAG,CACD,OAAkB,EAClB,IAAY,EACZ,WAAwD;QAExD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEvC,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU,CACR,OAAkB,EAClB,IAAY,EACZ,cAA2D;QAE3D,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,WAAW,CAAC,OAAO,EAAE,cAAc;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,MAAM,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC;QAE3E,kEAAkE;QAClE,8CAA8C;QAC9C,uEAAuE;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAErB,OACE,IAAI,KAAK,QAAQ;YACjB,CAAC,OAAO,CAAC,qBAAqB,GAAG,yBAAyB,IAAI,SAAS,CAAC,EACxE,CAAC;YACD,mBAAmB;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,mBAAmB;YACnB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"tileset-cache.js","sourceRoot":"","sources":["../../../src/tileset-3d/common/tileset-cache.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAOpC,OAAO,EAAC,gBAAgB,EAAC,0CAAuC;AAEhE;;;GAGG;AACH,MAAM,OAAO,YAAY;IACf,KAAK,CAAmB;IACxB,SAAS,CAAM;IACf,UAAU,CAAU;IAE5B;QACE,+FAA+F;QAC/F,0DAA0D;QAC1D,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,0EAA0E;QAC1E,6EAA6E;QAC7E,uDAAuD;QACvD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,GAAG,CACD,OAAkB,EAClB,IAAY,EACZ,WAAwD;QAExD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEvC,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU,CACR,OAAkB,EAClB,IAAY,EACZ,cAA2D;QAE3D,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,WAAW,CACT,OAAkB,EAClB,cAA2D;QAE3D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,kEAAkE;QAClE,8CAA8C;QAC9C,uEAAuE;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAErB,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC,EAAE,CAAC;YAC9F,mBAAmB;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,mBAAmB;YACnB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;CACF"}
@@ -5,6 +5,7 @@ import type { Tile3D } from "./tile-3d.js";
5
5
  import type { Tileset3D } from "./tileset-3d.js";
6
6
  import type { FrameState } from "../helpers/frame-state.js";
7
7
  import type { TILESET_TYPE } from "../../constants.js";
8
+ import type { TilesetSpatialReference } from "../../spatial/spatial-types.js";
8
9
  /**
9
10
  * Parsed top-level tileset payload consumed by {@link Tileset3D} or a {@link Tileset3DSource}.
10
11
  */
@@ -51,8 +52,21 @@ export type TilesetSourceInput = TilesetJSON | TilesetSourceRequest;
51
52
  export type TileContentLoadResult = {
52
53
  /** Whether the tile content request produced usable content. */
53
54
  loaded: boolean;
55
+ /** All payloads loaded for a tile, in source order. */
56
+ contents?: any[];
54
57
  /** Nested tileset metadata to install below the loaded tile, if any. */
55
58
  nestedTileset?: TilesetJSON;
59
+ /** Nested tilesets found among multiple content payloads. */
60
+ nestedTilesets?: TilesetJSON[];
61
+ };
62
+ /** Result of a source-managed lazy child-header request. */
63
+ export type TileChildrenLoadResult = {
64
+ /** Whether a subtree resource was loaded and installed. */
65
+ loaded: boolean;
66
+ /** Number of available tiles described by the subtree, including its existing root placeholder. */
67
+ tileCount: number;
68
+ /** Number of lazy child-subtree references installed at the new boundary. */
69
+ childSubtreeCount: number;
56
70
  };
57
71
  /**
58
72
  * Flags describing compression and texture formats observed while streaming tile content.
@@ -97,6 +111,8 @@ export type TilesetSourceMetadata = {
97
111
  lodMetricValue: number;
98
112
  /** Root refinement mode used as fallback by runtime tiles. */
99
113
  refine: string;
114
+ /** Format-discovered coordinate reference system metadata. */
115
+ spatialReference?: TilesetSpatialReference;
100
116
  };
101
117
  /**
102
118
  * Format-specific adapter used by {@link Tileset3D} for initialization, loading, and metadata access.
@@ -132,6 +148,15 @@ export interface Tileset3DSource {
132
148
  * Initializes source state before traversal begins.
133
149
  */
134
150
  initialize(): Promise<void>;
151
+ /**
152
+ * Prepares option-dependent asynchronous source state before runtime headers are constructed.
153
+ *
154
+ * I3S uses this hook to sample elevation surfaces for its root bound after `Tileset3D` has
155
+ * applied spatial options. Sources without asynchronous header preparation omit the hook.
156
+ */
157
+ prepareTileset?(tileset: Tileset3D): Promise<void>;
158
+ /** Releases source-local caches and prevents late asynchronous work from mutating runtime tiles. */
159
+ destroy?(): void;
135
160
  /**
136
161
  * Returns normalized source metadata after initialization completes.
137
162
  */
@@ -152,6 +177,13 @@ export interface Tileset3DSource {
152
177
  * Loads renderable content for a tile.
153
178
  */
154
179
  loadTileContent(tile: Tile3D): Promise<TileContentLoadResult>;
180
+ /**
181
+ * Loads and installs a complete lazy child-header group for a runtime tile.
182
+ *
183
+ * Sources that implement this hook retain ownership of resource parsing, caching, query
184
+ * inheritance, and archive resolution. Traversal calls it only after visibility and LOD checks.
185
+ */
186
+ loadTileChildren?(tile: Tile3D, frameState: FrameState): Promise<TileChildrenLoadResult>;
155
187
  /**
156
188
  * Resolves a tile-relative path to the final request URL.
157
189
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tileset-source.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/common/tileset-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tileset-source.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/common/tileset-source.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tileset-source.js","sourceRoot":"","sources":["../../../src/tileset-3d/common/tileset-source.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAyNpC;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,CACZ,KAAK;QACH,OAAO,KAAK,KAAK,QAAQ;QACzB,YAAY,IAAI,KAAK;QACrB,gBAAgB,IAAI,KAAK;QACzB,uBAAuB,IAAI,KAAK;QAChC,iBAAiB,IAAI,KAAK,CAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tileset-source.js","sourceRoot":"","sources":["../../../src/tileset-3d/common/tileset-source.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AA6PpC;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,CACZ,KAAK;QACH,OAAO,KAAK,KAAK,QAAQ;QACzB,YAAY,IAAI,KAAK;QACrB,gBAAgB,IAAI,KAAK;QACzB,uBAAuB,IAAI,KAAK;QAChC,iBAAiB,IAAI,KAAK,CAC7B,CAAC;AACJ,CAAC"}
@@ -15,6 +15,8 @@ export declare class TilesetTraverser {
15
15
  root: any;
16
16
  selectedTiles: Record<string, Tile3D>;
17
17
  requestedTiles: Record<string, Tile3D>;
18
+ /** Tiles intentionally held until the camera has remained still for the configured delay. */
19
+ deferredTiles: Record<string, Tile3D>;
18
20
  emptyTiles: Record<string, Tile3D>;
19
21
  protected lastUpdate: number;
20
22
  protected readonly updateDebounceTime = 1000;
@@ -42,10 +44,26 @@ export declare class TilesetTraverser {
42
44
  updateTile(tile: Tile3D, frameState: FrameState): void;
43
45
  selectTile(tile: Tile3D, frameState: FrameState): void;
44
46
  loadTile(tile: Tile3D, frameState: FrameState): void;
47
+ /**
48
+ * Returns whether an eligible peripheral request should wait for camera motion to settle.
49
+ *
50
+ * Eligibility and the current time window are calculated together when tile visibility updates.
51
+ * Keeping the active state on the tile also lets a queued scheduler callback cancel work that
52
+ * became deferred after its original traversal.
53
+ *
54
+ * @param tile - Tile considered for loading.
55
+ * @returns `true` when the request should be retried after the remaining delay.
56
+ */
57
+ shouldDeferTileRequest(tile: Tile3D): boolean;
45
58
  touchTile(tile: Tile3D, frameState: FrameState): void;
46
59
  canTraverse(tile: Tile3D, frameState: FrameState): boolean;
47
60
  shouldLoadTile(tile: Tile3D): boolean;
48
- shouldSelectTile(tile: Tile3D): boolean;
61
+ /**
62
+ * Returns whether a tile's content is available and visible for rendering.
63
+ * @param tile Tile considered for rendering.
64
+ * @param frameState Current culling state.
65
+ */
66
+ shouldSelectTile(tile: Tile3D, frameState: FrameState): boolean;
49
67
  /** Decide if tile LoD (level of detail) is not sufficient under current viewport */
50
68
  shouldRefine(tile: Tile3D, frameState: FrameState, useParentMetric?: boolean): boolean;
51
69
  updateTileVisibility(tile: Tile3D, frameState: FrameState): void;
@@ -1 +1 @@
1
- {"version":3,"file":"tileset-traverser.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/common/tileset-traverser.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,qBAAkB;AACtC,OAAO,EAAC,YAAY,EAAC,qCAAkC;AAEvD,OAAO,EAAC,UAAU,EAAC,kCAA+B;AAElD,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,UAAU,KAAA,KAAK,GAAG,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,qBAAqB,CAOzD,CAAC;AAEF,qBAAa,gBAAgB;IAC3B,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAGzC,IAAI,EAAE,GAAG,CAAQ;IAGjB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAExC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAwB;IACpD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,QAAQ;IAC7C,uEAAuE;IACvE,SAAS,CAAC,eAAe,eAAsB;IAC/C,SAAS,CAAC,oBAAoB,eAAsB;IACpD,kCAAkC;IAClC,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG7C,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;gBAKhD,OAAO,EAAE,qBAAqB;IAK1C,QAAQ,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA,EAAE,OAAO,KAAA;IAclC,KAAK;IAQL;;;;;;;;OAQG;IAEH,gBAAgB,CAAC,IAAI,KAAA,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAmEpD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAQ5D,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,KAAA,EAAE,KAAK,KAAA,GAAG,OAAO;IAuDlF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAKtD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAStD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IASpD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAQrD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;IAe1D,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMrC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMvC,oFAAoF;IACpF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,GAAE,OAAe,GAAG,OAAO;IAS7F,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAiBhE,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAIrD,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;IAajE,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;CAkCrE"}
1
+ {"version":3,"file":"tileset-traverser.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/common/tileset-traverser.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,qBAAkB;AACtC,OAAO,EAAC,YAAY,EAAC,qCAAkC;AAEvD,OAAO,EAAC,UAAU,EAAC,kCAA+B;AAElD,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,UAAU,KAAA,KAAK,GAAG,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,qBAAqB,CAOzD,CAAC;AAEF,qBAAa,gBAAgB;IAC3B,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAGzC,IAAI,EAAE,GAAG,CAAQ;IAGjB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAC5C,6FAA6F;IAC7F,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAExC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAwB;IACpD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,QAAQ;IAC7C,uEAAuE;IACvE,SAAS,CAAC,eAAe,eAAsB;IAC/C,SAAS,CAAC,oBAAoB,eAAsB;IACpD,kCAAkC;IAClC,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG7C,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;gBAKhD,OAAO,EAAE,qBAAqB;IAK1C,QAAQ,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA,EAAE,OAAO,KAAA;IAclC,KAAK;IASL;;;;;;;;OAQG;IAEH,gBAAgB,CAAC,IAAI,KAAA,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAqEpD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAQ5D,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,KAAA,EAAE,KAAK,KAAA,GAAG,OAAO;IAuDlF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAKtD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAStD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAYpD;;;;;;;;;OASG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK7C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAQrD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;IAe1D,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMrC;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;IAI/D,oFAAoF;IACpF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,GAAE,OAAe,GAAG,OAAO;IAS7F,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAiBhE,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAIrD,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;IAajE,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;CAyCrE"}
@@ -19,6 +19,8 @@ export class TilesetTraverser {
19
19
  selectedTiles = {};
20
20
  // tiles should be loaded from server
21
21
  requestedTiles = {};
22
+ /** Tiles intentionally held until the camera has remained still for the configured delay. */
23
+ deferredTiles = {};
22
24
  // tiles does not have render content
23
25
  emptyTiles = {};
24
26
  lastUpdate = new Date().getTime();
@@ -49,6 +51,7 @@ export class TilesetTraverser {
49
51
  }
50
52
  reset() {
51
53
  this.requestedTiles = {};
54
+ this.deferredTiles = {};
52
55
  this.selectedTiles = {};
53
56
  this.emptyTiles = {};
54
57
  this._traversalStack.reset();
@@ -104,7 +107,9 @@ export class TilesetTraverser {
104
107
  // Always load tiles in the base traversal
105
108
  // Select tiles that can't refine further
106
109
  this.loadTile(tile, frameState);
107
- if (stoppedRefining) {
110
+ // Skip-LOD keeps a ready ancestor selected while descendants stream in. This prevents
111
+ // replacement holes when traversal jumps over one or more hierarchy levels.
112
+ if (stoppedRefining || this.options.skipLevelOfDetail) {
108
113
  this.selectTile(tile, frameState);
109
114
  }
110
115
  }
@@ -179,7 +184,7 @@ export class TilesetTraverser {
179
184
  }
180
185
  // tile to render in the browser
181
186
  selectTile(tile, frameState) {
182
- if (this.shouldSelectTile(tile)) {
187
+ if (this.shouldSelectTile(tile, frameState)) {
183
188
  // The tile can be selected right away and does not require traverseAndSelect
184
189
  tile._selectedFrame = frameState.frameNumber;
185
190
  this.selectedTiles[tile.id] = tile;
@@ -188,11 +193,28 @@ export class TilesetTraverser {
188
193
  // tile to load from server
189
194
  loadTile(tile, frameState) {
190
195
  if (this.shouldLoadTile(tile)) {
196
+ if (this.shouldDeferTileRequest(tile)) {
197
+ this.deferredTiles[tile.id] = tile;
198
+ return;
199
+ }
191
200
  tile._requestedFrame = frameState.frameNumber;
192
201
  tile._priority = tile._getPriority();
193
202
  this.requestedTiles[tile.id] = tile;
194
203
  }
195
204
  }
205
+ /**
206
+ * Returns whether an eligible peripheral request should wait for camera motion to settle.
207
+ *
208
+ * Eligibility and the current time window are calculated together when tile visibility updates.
209
+ * Keeping the active state on the tile also lets a queued scheduler callback cancel work that
210
+ * became deferred after its original traversal.
211
+ *
212
+ * @param tile - Tile considered for loading.
213
+ * @returns `true` when the request should be retried after the remaining delay.
214
+ */
215
+ shouldDeferTileRequest(tile) {
216
+ return tile.priorityDeferred;
217
+ }
196
218
  // cache tile
197
219
  touchTile(tile, frameState) {
198
220
  tile.tileset._cache.touch(tile);
@@ -218,10 +240,13 @@ export class TilesetTraverser {
218
240
  // and has unexpired render content
219
241
  return tile.hasUnloadedContent || tile.contentExpired;
220
242
  }
221
- shouldSelectTile(tile) {
222
- // if select tile is in current frame
223
- // and content available
224
- return tile.contentAvailable && !this.options.skipLevelOfDetail;
243
+ /**
244
+ * Returns whether a tile's content is available and visible for rendering.
245
+ * @param tile Tile considered for rendering.
246
+ * @param frameState Current culling state.
247
+ */
248
+ shouldSelectTile(tile, frameState) {
249
+ return tile.contentAvailable && tile.contentVisibility(frameState) !== 'outside';
225
250
  }
226
251
  /** Decide if tile LoD (level of detail) is not sufficient under current viewport */
227
252
  shouldRefine(tile, frameState, useParentMetric = false) {
@@ -264,12 +289,19 @@ export class TilesetTraverser {
264
289
  // Ignores visibility.
265
290
  executeEmptyTraversal(root, frameState) {
266
291
  let allDescendantsLoaded = true;
292
+ let hasPendingLazyChildren = false;
267
293
  const stack = this._emptyTraversalStack;
268
294
  stack.push(root);
269
295
  while (stack.length > 0) {
270
296
  const tile = stack.pop();
271
297
  const traverse = !tile.hasRenderContent && this.canTraverse(tile, frameState);
272
298
  const emptyLeaf = !tile.hasRenderContent && tile.children.length === 0;
299
+ if (tile.header.implicitSubtree) {
300
+ // An unresolved implicit boundary is not a proven empty leaf. Treating it as loaded would
301
+ // allow REPLACE traversal to drop its ancestor before availability and content are known.
302
+ hasPendingLazyChildren = true;
303
+ allDescendantsLoaded = false;
304
+ }
273
305
  // Traversal stops but the tile does not have content yet
274
306
  // There will be holes if the parent tries to refine to its children, so don't refine
275
307
  // One exception: a parent may refine even if one of its descendants is an empty leaf
@@ -288,7 +320,7 @@ export class TilesetTraverser {
288
320
  }
289
321
  }
290
322
  }
291
- return root.hasEmptyContent || allDescendantsLoaded;
323
+ return (root.hasEmptyContent && !hasPendingLazyChildren) || allDescendantsLoaded;
292
324
  }
293
325
  }
294
326
  //# sourceMappingURL=tileset-traverser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tileset-traverser.js","sourceRoot":"","sources":["../../../src/tileset-3d/common/tileset-traverser.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,YAAY,EAAC,qCAAkC;AACvD,OAAO,EAAC,eAAe,EAAC,2BAAwB;AAYhD,MAAM,CAAC,MAAM,aAAa,GAAoC;IAC5D,YAAY,EAAE,KAAK;IACnB,iBAAiB,EAAE,KAAK;IACxB,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;IACxB,qBAAqB,EAAE,EAAE;IACzB,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,OAAO,gBAAgB;IAC3B,OAAO,CAAkC;IAEzC,2BAA2B;IAC3B,IAAI,GAAQ,IAAI,CAAC;IAEjB,2BAA2B;IAC3B,aAAa,GAA2B,EAAE,CAAC;IAC3C,qCAAqC;IACrC,cAAc,GAA2B,EAAE,CAAC;IAC5C,qCAAqC;IACrC,UAAU,GAA2B,EAAE,CAAC;IAE9B,UAAU,GAAW,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACjC,kBAAkB,GAAG,IAAI,CAAC;IAC7C,uEAAuE;IAC7D,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;IACrC,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;IACpD,kCAAkC;IACxB,YAAY,GAAkB,IAAI,CAAC;IAE7C,SAAS;IACC,iBAAiB,CAAC,UAAsB;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB;IACpB,YAAY,OAA8B;QACxC,IAAI,CAAC,OAAO,GAAG,EAAC,GAAG,aAAa,EAAE,GAAG,OAAO,EAAC,CAAC;IAChD,CAAC;IAED,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,8BAA8B;QAChD,IAAI,CAAC,OAAO,GAAG,EAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAC,CAAC;QAE7C,eAAe;QACf,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,0CAA0C;QAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAElC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK;QACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED;;;;;;;;OAQG;IACH,yDAAyD;IACzD,gBAAgB,CAAC,IAAI,EAAE,UAAsB;QAC3C,8EAA8E;QAC9E,+CAA+C;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QAEzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,cAAc;YACd,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAEzB,0IAA0I;YAC1I,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBACxC,YAAY,GAAG,IAAI,CAAC,qBAAqB,CACvC,IAAI,EACJ,UAAU,EACV,KAAK,EACL,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CACxE,CAAC;YACJ,CAAC;YAED,gDAAgD;YAChD,wCAAwC;YACxC,kEAAkE;YAClE,uGAAuG;YACvG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;YAC/D,MAAM,eAAe,GAAG,CAAC,YAAY,CAAC;YAEtC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAChC,IAAI,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBACpC,CAAC;gBACD,iBAAiB;YACnB,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,CAAC,GAAG,EAAE,CAAC;gBAC/C,gDAAgD;gBAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAChC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAElC,gBAAgB;YAClB,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;gBACnD,0CAA0C;gBAC1C,yCAAyC;gBACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAChC,IAAI,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;YAED,4FAA4F;YAC5F,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAEjC,6FAA6F;YAC7F,IAAI,CAAC,aAAa,GAAG,YAAY,IAAI,aAAa,CAAC;QACrD,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9F,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,UAAsB;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,qBAAqB,CAAC,IAAY,EAAE,UAAsB,EAAE,KAAK,EAAE,KAAK;QACtE,MAAM,EAAC,YAAY,EAAE,iBAAiB,EAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,sBAAsB;QACtB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvD,iFAAiF;QACjF,iHAAiH;QACjH,MAAM,YAAY,GAChB,IAAI,CAAC,MAAM,KAAK,eAAe,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,iBAAiB,CAAC;QAEzF,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;YAC9B,IAAI,KAAK,CAAC,2BAA2B,EAAE,CAAC;gBACtC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;iBAAM,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;gBACxC,6FAA6F;gBAC7F,yEAAyE;gBACzE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,YAAY,CAAC;gBACjB,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;oBAC5B,YAAY,GAAG,KAAK,CAAC;gBACvB,CAAC;qBAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;oBACnC,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACN,YAAY,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBACxC,CAAC;gBACD,OAAO,GAAG,OAAO,IAAI,YAAY,CAAC;gBAElC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,8CAA8C;IAE9C,UAAU,CAAC,IAAY,EAAE,UAAsB;QAC7C,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,gCAAgC;IAChC,UAAU,CAAC,IAAY,EAAE,UAAsB;QAC7C,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,6EAA6E;YAC7E,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC;YAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACrC,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,QAAQ,CAAC,IAAY,EAAE,UAAsB;QAC3C,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC;YAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACtC,CAAC;IACH,CAAC;IAED,aAAa;IACb,SAAS,CAAC,IAAY,EAAE,UAAsB;QAC5C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,WAAW,CAAC;IAC9C,CAAC;IAED,yBAAyB;IACzB,4BAA4B;IAC5B,sEAAsE;IACtE,WAAW,CAAC,IAAY,EAAE,UAAsB;QAC9C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,gDAAgD;YAChD,wEAAwE;YACxE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,sCAAsC;QACtC,mCAAmC;QACnC,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,cAAc,CAAC;IACxD,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,qCAAqC;QACrC,wBAAwB;QACxB,OAAO,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAClE,CAAC;IAED,oFAAoF;IACpF,YAAY,CAAC,IAAY,EAAE,UAAsB,EAAE,kBAA2B,KAAK;QACjF,IAAI,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC9C,IAAI,eAAe,EAAE,CAAC;YACpB,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC;IACxE,CAAC;IAED,oBAAoB,CAAC,IAAY,EAAE,UAAsB;QACvD,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACvC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;gBACrD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBACtD,IAAI,KAAK,KAAK,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACrC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,YAAY;IAEZ,uBAAuB,CAAC,CAAS,EAAE,CAAS;QAC1C,OAAO,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,iBAAiB,CAAC;IACnD,CAAC;IAED,kBAAkB,CAAC,IAAY,EAAE,UAAsB;QACrD,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,mBAAmB;YACnB,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACnC,mBAAmB;YACnB,UAAU,GAAG,UAAU,IAAI,KAAK,CAAC,2BAA2B,CAAC;QAC/D,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,wFAAwF;IACxF,sBAAsB;IACtB,qBAAqB,CAAC,IAAY,EAAE,UAAsB;QACxD,IAAI,oBAAoB,GAAG,IAAI,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAEzB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC9E,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;YAEvE,yDAAyD;YACzD,qFAAqF;YACrF,qFAAqF;YACrF,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtD,oBAAoB,GAAG,KAAK,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAElC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC/B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;oBAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,IAAI,oBAAoB,CAAC;IACtD,CAAC;CACF"}
1
+ {"version":3,"file":"tileset-traverser.js","sourceRoot":"","sources":["../../../src/tileset-3d/common/tileset-traverser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import { LOD_METRIC_TYPE, TILE_REFINEMENT } from "../../constants.js";
2
+ /** Global coordinates of a tile in an implicit quadtree or octree. */
3
+ export type ImplicitTileCoordinates = {
4
+ /** Zero-based level relative to the implicit-tile root. */
5
+ level: number;
6
+ /** Zero-based horizontal coordinate at {@link level}. */
7
+ x: number;
8
+ /** Zero-based vertical coordinate at {@link level}. */
9
+ y: number;
10
+ /** Zero-based height coordinate at {@link level}; always zero for quadtrees. */
11
+ z: number;
12
+ };
13
+ /** Serializable information shared by every subtree in one implicit-tile hierarchy. */
14
+ export type ImplicitTilingDescriptor = {
15
+ /** Absolute template URL for render content, or an empty string for a contentless hierarchy. */
16
+ contentUrlTemplate: string;
17
+ /** Absolute templates for every implicit content stream, in source order. */
18
+ contentUrlTemplates?: string[];
19
+ /** Non-URI content metadata inherited by each available implicit content resource. */
20
+ contentHeader?: Record<string, any>;
21
+ /** Metadata inherited by every implicit content stream, in source order. */
22
+ contentHeaders?: Array<Record<string, any>>;
23
+ /** Absolute template URL for subtree availability files. */
24
+ subtreesUrlTemplate: string;
25
+ /** Spatial subdivision used by the hierarchy. */
26
+ subdivisionScheme: 'QUADTREE' | 'OCTREE';
27
+ /** Number of tile levels represented inside each subtree file. */
28
+ subtreeLevels: number;
29
+ /** Last valid global tile level, where the implicit root is level zero. */
30
+ maximumLevel: number;
31
+ /** Refinement mode inherited by generated tiles. */
32
+ refine: TILE_REFINEMENT | string;
33
+ /** LOD metric used by generated tiles. */
34
+ lodMetricType: LOD_METRIC_TYPE.GEOMETRIC_ERROR;
35
+ /** Source geometric error of the implicit root, in local meters. */
36
+ rootLodMetricValue: number;
37
+ /** Bounding volume of the complete implicit hierarchy. */
38
+ rootBoundingVolume: Record<string, any>;
39
+ };
40
+ /** Lazy pointer from a runtime tile to the subtree that defines it and its descendants. */
41
+ export type ImplicitSubtreeReference = {
42
+ /** Global coordinates of the referenced subtree root. */
43
+ coordinates: ImplicitTileCoordinates;
44
+ /** Absolute subtree URL before source-level query inheritance is applied. */
45
+ subtreeUrl: string;
46
+ /** Serializable hierarchy description used to materialize the subtree. */
47
+ descriptor: ImplicitTilingDescriptor;
48
+ };
49
+ /** Constant or bitstream-backed availability declaration from a parsed subtree. */
50
+ export type ImplicitAvailability = {
51
+ /** Constant availability value applied to every addressed element. */
52
+ constant?: number;
53
+ /** Expanded least-significant-bit-first availability buffer. */
54
+ explicitBitstream?: Uint8Array;
55
+ };
56
+ /** Parsed subset of the 3D Tiles subtree schema needed for hierarchy materialization. */
57
+ export type ParsedImplicitSubtree = {
58
+ /** Availability of tiles inside this subtree. */
59
+ tileAvailability: ImplicitAvailability;
60
+ /**
61
+ * Availability of tile content. Array entries correspond to content templates in source order.
62
+ * Omitted availability denotes a metadata-only subtree with no render content.
63
+ */
64
+ contentAvailability?: ImplicitAvailability | ImplicitAvailability[];
65
+ /** Availability of subtree roots immediately below this subtree. */
66
+ childSubtreeAvailability: ImplicitAvailability;
67
+ /** Property-table payloads referenced by subtree metadata declarations. */
68
+ propertyTables?: unknown;
69
+ /** Property-table reference for metadata attached to each available tile. */
70
+ tileMetadata?: unknown;
71
+ /** Property-table references for metadata attached to each content stream. */
72
+ contentMetadata?: unknown;
73
+ /** Metadata entity attached to the subtree itself. */
74
+ subtreeMetadata?: unknown;
75
+ };
76
+ /** Runtime header produced for an available implicit tile. */
77
+ export type ImplicitTileHeader = Record<string, any> & {
78
+ /** Stable source identity, including global implicit coordinates. */
79
+ id: string;
80
+ /** Materialized children that are represented by the same subtree file. */
81
+ children: ImplicitTileHeader[];
82
+ /** Optional lazy reference when this tile begins a child subtree. */
83
+ implicitSubtree?: ImplicitSubtreeReference;
84
+ /** Raw subtree metadata references preserved for application-level interpretation. */
85
+ implicitMetadata?: ImplicitSubtreeMetadata;
86
+ };
87
+ /** Metadata references inherited by generated implicit tile headers. */
88
+ export type ImplicitSubtreeMetadata = {
89
+ /** Property tables declared by the subtree. */
90
+ propertyTables?: unknown;
91
+ /** Tile-level metadata property-table reference. */
92
+ tileMetadata?: unknown;
93
+ /** Content-level metadata property-table references in content order. */
94
+ contentMetadata?: unknown;
95
+ /** Subtree-level metadata entity. */
96
+ subtreeMetadata?: unknown;
97
+ };
98
+ /** Result of materializing exactly one subtree resource. */
99
+ export type MaterializedImplicitSubtree = {
100
+ /** Header for the subtree root, including its in-subtree descendants. */
101
+ root: ImplicitTileHeader;
102
+ /** Number of available headers materialized from this subtree. */
103
+ tileCount: number;
104
+ /** Number of lazy child-subtree references created at the subtree boundary. */
105
+ childSubtreeCount: number;
106
+ };
107
+ /**
108
+ * Creates the lazy reference stored on an implicit subtree-root header.
109
+ *
110
+ * @param descriptor - Shared implicit hierarchy description.
111
+ * @param coordinates - Global coordinates of the subtree root.
112
+ * @returns Serializable reference with its concrete subtree URL.
113
+ */
114
+ export declare function createImplicitSubtreeReference(descriptor: ImplicitTilingDescriptor, coordinates: ImplicitTileCoordinates): ImplicitSubtreeReference;
115
+ /**
116
+ * Materializes the available tiles described by one subtree file without performing I/O.
117
+ *
118
+ * The function deliberately stops at the subtree boundary. Available child subtrees become lazy
119
+ * references so traversal, SSE, request-volume checks, and the request scheduler decide when the
120
+ * next network request is useful.
121
+ *
122
+ * @param subtree - Parsed availability data for one subtree resource.
123
+ * @param reference - Coordinates and hierarchy description for the subtree root.
124
+ * @returns Materialized root and diagnostic counts.
125
+ * @throws If the subtree root is unavailable or the descriptor is invalid.
126
+ */
127
+ export declare function materializeImplicitSubtree(subtree: ParsedImplicitSubtree, reference: ImplicitSubtreeReference): MaterializedImplicitSubtree;
128
+ /**
129
+ * Replaces implicit coordinate placeholders in a content or subtree URL.
130
+ *
131
+ * @param templateUrl - URL containing level/x/y/z placeholders.
132
+ * @param coordinates - Global coordinates to insert.
133
+ * @returns URL with all coordinate placeholders replaced.
134
+ */
135
+ export declare function replaceImplicitUrlTemplate(templateUrl: string, coordinates: ImplicitTileCoordinates): string;
136
+ //# sourceMappingURL=implicit-tiling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implicit-tiling.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/format-3d-tiles/implicit-tiling.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,eAAe,EAAE,eAAe,EAAY,2BAAwB;AAK5E,sEAAsE;AACtE,MAAM,MAAM,uBAAuB,GAAG;IACpC,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,CAAC,EAAE,MAAM,CAAC;IACV,uDAAuD;IACvD,CAAC,EAAE,MAAM,CAAC;IACV,gFAAgF;IAChF,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,wBAAwB,GAAG;IACrC,gGAAgG;IAChG,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,4EAA4E;IAC5E,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5C,4DAA4D;IAC5D,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,iBAAiB,EAAE,UAAU,GAAG,QAAQ,CAAC;IACzC,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC;IACjC,0CAA0C;IAC1C,aAAa,EAAE,eAAe,CAAC,eAAe,CAAC;IAC/C,oEAAoE;IACpE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0DAA0D;IAC1D,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACzC,CAAC;AAEF,2FAA2F;AAC3F,MAAM,MAAM,wBAAwB,GAAG;IACrC,yDAAyD;IACzD,WAAW,EAAE,uBAAuB,CAAC;IACrC,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,UAAU,EAAE,wBAAwB,CAAC;CACtC,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,oBAAoB,GAAG;IACjC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,UAAU,CAAC;CAChC,CAAC;AAEF,yFAAyF;AACzF,MAAM,MAAM,qBAAqB,GAAG;IAClC,iDAAiD;IACjD,gBAAgB,EAAE,oBAAoB,CAAC;IACvC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,CAAC;IACpE,oEAAoE;IACpE,wBAAwB,EAAE,oBAAoB,CAAC;IAC/C,2EAA2E;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sDAAsD;IACtD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IACrD,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,qEAAqE;IACrE,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;CAC5C,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,uBAAuB,GAAG;IACpC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oDAAoD;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qCAAqC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,4DAA4D;AAC5D,MAAM,MAAM,2BAA2B,GAAG;IACxC,yEAAyE;IACzE,IAAI,EAAE,kBAAkB,CAAC;IACzB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,wBAAwB,EACpC,WAAW,EAAE,uBAAuB,GACnC,wBAAwB,CAM1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,wBAAwB,GAClC,2BAA2B,CAoB7B;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,uBAAuB,GACnC,MAAM,CAUR"}