@loaders.gl/3d-tiles 3.1.0-beta.2 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/dist/bundle.js +2399 -193
  2. package/dist/es5/bundle.js +1 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/cesium-ion-loader.js +78 -23
  5. package/dist/es5/cesium-ion-loader.js.map +1 -1
  6. package/dist/es5/index.js +8 -8
  7. package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js +42 -30
  8. package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -1
  9. package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js +59 -57
  10. package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -1
  11. package/dist/es5/lib/classes/tile-3d-batch-table.js +238 -201
  12. package/dist/es5/lib/classes/tile-3d-batch-table.js.map +1 -1
  13. package/dist/es5/lib/classes/tile-3d-feature-table.js +78 -62
  14. package/dist/es5/lib/classes/tile-3d-feature-table.js.map +1 -1
  15. package/dist/es5/lib/constants.js +6 -5
  16. package/dist/es5/lib/constants.js.map +1 -1
  17. package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js +22 -15
  18. package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js.map +1 -1
  19. package/dist/es5/lib/encoders/encode-3d-tile-composite.js +13 -6
  20. package/dist/es5/lib/encoders/encode-3d-tile-composite.js.map +1 -1
  21. package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js +23 -14
  22. package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -1
  23. package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js +22 -15
  24. package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -1
  25. package/dist/es5/lib/encoders/encode-3d-tile.js +3 -3
  26. package/dist/es5/lib/encoders/encode-3d-tile.js.map +1 -1
  27. package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js +6 -6
  28. package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -1
  29. package/dist/es5/lib/ion/ion.js +197 -69
  30. package/dist/es5/lib/ion/ion.js.map +1 -1
  31. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js +18 -17
  32. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -1
  33. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js +3 -3
  34. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -1
  35. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js +3 -3
  36. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -1
  37. package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js +270 -0
  38. package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -0
  39. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +66 -26
  40. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
  41. package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js +4 -3
  42. package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -1
  43. package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js +141 -53
  44. package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -1
  45. package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js +17 -19
  46. package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -1
  47. package/dist/es5/lib/parsers/helpers/parse-utils.js +8 -7
  48. package/dist/es5/lib/parsers/helpers/parse-utils.js.map +1 -1
  49. package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js +36 -10
  50. package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js.map +1 -1
  51. package/dist/es5/lib/parsers/parse-3d-tile-composite.js +48 -12
  52. package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -1
  53. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js +45 -0
  54. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js.map +1 -0
  55. package/dist/es5/lib/parsers/parse-3d-tile-header.js +161 -14
  56. package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +1 -1
  57. package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js +63 -38
  58. package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -1
  59. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +198 -117
  60. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
  61. package/dist/es5/lib/parsers/parse-3d-tile.js +74 -15
  62. package/dist/es5/lib/parsers/parse-3d-tile.js.map +1 -1
  63. package/dist/es5/lib/utils/version.js +1 -1
  64. package/dist/es5/lib/utils/version.js.map +1 -1
  65. package/dist/es5/tile-3d-subtree-loader.js +1 -1
  66. package/dist/es5/tile-3d-subtree-loader.js.map +1 -1
  67. package/dist/es5/tile-3d-writer.js +5 -5
  68. package/dist/es5/tile-3d-writer.js.map +1 -1
  69. package/dist/es5/tiles-3d-loader.js +142 -37
  70. package/dist/es5/tiles-3d-loader.js.map +1 -1
  71. package/dist/esm/lib/constants.js +2 -1
  72. package/dist/esm/lib/constants.js.map +1 -1
  73. package/dist/esm/lib/ion/ion.js.map +1 -1
  74. package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js +173 -0
  75. package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -0
  76. package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -1
  77. package/dist/esm/lib/parsers/parse-3d-tile-gltf.js +10 -0
  78. package/dist/esm/lib/parsers/parse-3d-tile-gltf.js.map +1 -0
  79. package/dist/esm/lib/parsers/parse-3d-tile-header.js +67 -0
  80. package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -1
  81. package/dist/esm/lib/parsers/parse-3d-tile.js +4 -0
  82. package/dist/esm/lib/parsers/parse-3d-tile.js.map +1 -1
  83. package/dist/esm/lib/utils/version.js +1 -1
  84. package/dist/esm/lib/utils/version.js.map +1 -1
  85. package/dist/esm/tiles-3d-loader.js +9 -2
  86. package/dist/esm/tiles-3d-loader.js.map +1 -1
  87. package/dist/lib/constants.d.ts +1 -0
  88. package/dist/lib/constants.d.ts.map +1 -1
  89. package/dist/lib/constants.js +2 -1
  90. package/dist/lib/ion/ion.d.ts +3 -3
  91. package/dist/lib/ion/ion.d.ts.map +1 -1
  92. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.d.ts +39 -0
  93. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.d.ts.map +1 -0
  94. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.js +189 -0
  95. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts +2 -2
  96. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts.map +1 -1
  97. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js +1 -0
  98. package/dist/lib/parsers/parse-3d-tile-batched-model.js +1 -1
  99. package/dist/lib/parsers/parse-3d-tile-gltf.d.ts +2 -0
  100. package/dist/lib/parsers/parse-3d-tile-gltf.d.ts.map +1 -0
  101. package/dist/lib/parsers/parse-3d-tile-gltf.js +18 -0
  102. package/dist/lib/parsers/parse-3d-tile-header.d.ts +16 -0
  103. package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -1
  104. package/dist/lib/parsers/parse-3d-tile-header.js +67 -1
  105. package/dist/lib/parsers/parse-3d-tile.d.ts.map +1 -1
  106. package/dist/lib/parsers/parse-3d-tile.js +3 -0
  107. package/dist/tiles-3d-loader.d.ts.map +1 -1
  108. package/dist/tiles-3d-loader.js +8 -1
  109. package/dist/types.d.ts +6 -2
  110. package/dist/types.d.ts.map +1 -1
  111. package/package.json +8 -8
  112. package/src/lib/constants.ts +2 -1
  113. package/src/lib/ion/{ion.js → ion.ts} +0 -0
  114. package/src/lib/parsers/helpers/parse-3d-implicit-tiles.ts +255 -0
  115. package/src/lib/parsers/helpers/parse-3d-tile-subtree.ts +4 -3
  116. package/src/lib/parsers/parse-3d-tile-gltf.js +16 -0
  117. package/src/lib/parsers/parse-3d-tile-header.ts +82 -1
  118. package/src/lib/parsers/parse-3d-tile.ts +4 -0
  119. package/src/tiles-3d-loader.ts +17 -2
  120. package/src/types.ts +7 -2
@@ -3,7 +3,12 @@ import {path} from '@loaders.gl/loader-utils';
3
3
  import {TILESET_TYPE, LOD_METRIC_TYPE} from '@loaders.gl/tiles';
4
4
  import {VERSION} from './lib/utils/version';
5
5
  import {parse3DTile} from './lib/parsers/parse-3d-tile';
6
- import {normalizeTileHeaders} from './lib/parsers/parse-3d-tile-header';
6
+ import {
7
+ normalizeTileHeaders,
8
+ normalizeImplicitTileHeaders
9
+ } from './lib/parsers/parse-3d-tile-header';
10
+
11
+ const IMPLICIT_TILING_EXTENSION_NAME = '3DTILES_implicit_tiling';
7
12
 
8
13
  /**
9
14
  * Loader for 3D Tiles
@@ -49,7 +54,10 @@ async function parseTileset(data, options, context) {
49
54
  tilesetJson.url = context.url;
50
55
  // base path that non-absolute paths in tileset are relative to.
51
56
  tilesetJson.basePath = getBaseUri(tilesetJson);
52
- tilesetJson.root = normalizeTileHeaders(tilesetJson);
57
+ tilesetJson.root = hasImplicitTilingExtension(tilesetJson)
58
+ ? await normalizeImplicitTileHeaders(tilesetJson)
59
+ : normalizeTileHeaders(tilesetJson);
60
+
53
61
  tilesetJson.type = TILESET_TYPE.TILES3D;
54
62
 
55
63
  tilesetJson.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;
@@ -76,3 +84,10 @@ async function parse(data, options, context) {
76
84
 
77
85
  return data;
78
86
  }
87
+
88
+ function hasImplicitTilingExtension(tilesetJson) {
89
+ return (
90
+ tilesetJson?.extensionsRequired?.includes(IMPLICIT_TILING_EXTENSION_NAME) &&
91
+ tilesetJson?.extensionsUsed?.includes(IMPLICIT_TILING_EXTENSION_NAME)
92
+ );
93
+ }
package/src/types.ts CHANGED
@@ -54,7 +54,7 @@ type BoundingVolume = {
54
54
  * 3DTILES_implicit_tiling types
55
55
  * Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subtree-file-format
56
56
  */
57
- export type SubtreeAvailability = {
57
+ export type Subtree = {
58
58
  buffers: Buffer[];
59
59
  bufferViews: BufferView[];
60
60
  tileAvailability: Availability;
@@ -62,7 +62,7 @@ export type SubtreeAvailability = {
62
62
  childSubtreeAvailability: Availability;
63
63
  };
64
64
 
65
- type Availability = {
65
+ export type Availability = {
66
66
  constant?: 0 | 1;
67
67
  bufferView?: number;
68
68
  // Internal bitstream type
@@ -71,6 +71,11 @@ type Availability = {
71
71
 
72
72
  export type ExplicitBitstream = Uint8Array;
73
73
 
74
+ /**
75
+ * Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subdivision-scheme
76
+ */
77
+ export type SubdivisionScheme = 'QUADTREE' | 'OCTREE';
78
+
74
79
  type Buffer = {
75
80
  name: string;
76
81
  uri?: string;