@loaders.gl/i3s 3.1.0-beta.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/bundle.js +306 -253
  2. package/dist/es5/bundle.js +1 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/i3s-attribute-loader.js +147 -62
  5. package/dist/es5/i3s-attribute-loader.js.map +1 -1
  6. package/dist/es5/i3s-building-scene-layer-loader.js +36 -8
  7. package/dist/es5/i3s-building-scene-layer-loader.js.map +1 -1
  8. package/dist/es5/i3s-content-loader.js +36 -10
  9. package/dist/es5/i3s-content-loader.js.map +1 -1
  10. package/dist/es5/i3s-loader.js +175 -51
  11. package/dist/es5/i3s-loader.js.map +1 -1
  12. package/dist/es5/i3s-node-page-loader.js +51 -8
  13. package/dist/es5/i3s-node-page-loader.js.map +1 -1
  14. package/dist/es5/index.js +6 -6
  15. package/dist/es5/index.js.map +1 -1
  16. package/dist/es5/lib/helpers/i3s-nodepages-tiles.js +328 -173
  17. package/dist/es5/lib/helpers/i3s-nodepages-tiles.js.map +1 -1
  18. package/dist/es5/lib/parsers/constants.js +9 -28
  19. package/dist/es5/lib/parsers/constants.js.map +1 -1
  20. package/dist/es5/lib/parsers/parse-i3s-attribute.js +69 -27
  21. package/dist/es5/lib/parsers/parse-i3s-attribute.js.map +1 -1
  22. package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js +62 -28
  23. package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -1
  24. package/dist/es5/lib/parsers/parse-i3s-tile-content.js +416 -314
  25. package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  26. package/dist/es5/lib/parsers/parse-i3s.js +109 -49
  27. package/dist/es5/lib/parsers/parse-i3s.js.map +1 -1
  28. package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js +8 -4
  29. package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -1
  30. package/dist/es5/lib/utils/url-utils.js +14 -17
  31. package/dist/es5/lib/utils/url-utils.js.map +1 -1
  32. package/dist/es5/types.js +10 -2
  33. package/dist/es5/types.js.map +1 -1
  34. package/dist/esm/i3s-attribute-loader.js +1 -1
  35. package/dist/esm/i3s-attribute-loader.js.map +1 -1
  36. package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
  37. package/dist/esm/i3s-building-scene-layer-loader.js.map +1 -1
  38. package/dist/esm/i3s-content-loader.js +1 -1
  39. package/dist/esm/i3s-content-loader.js.map +1 -1
  40. package/dist/esm/i3s-loader.js +1 -1
  41. package/dist/esm/i3s-loader.js.map +1 -1
  42. package/dist/esm/i3s-node-page-loader.js +1 -1
  43. package/dist/esm/i3s-node-page-loader.js.map +1 -1
  44. package/dist/esm/index.js.map +1 -1
  45. package/dist/esm/lib/helpers/i3s-nodepages-tiles.js +33 -23
  46. package/dist/esm/lib/helpers/i3s-nodepages-tiles.js.map +1 -1
  47. package/dist/esm/lib/parsers/constants.js +2 -18
  48. package/dist/esm/lib/parsers/constants.js.map +1 -1
  49. package/dist/esm/lib/parsers/parse-i3s-tile-content.js +44 -61
  50. package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  51. package/dist/esm/lib/parsers/parse-i3s.js +40 -25
  52. package/dist/esm/lib/parsers/parse-i3s.js.map +1 -1
  53. package/dist/esm/lib/utils/url-utils.js +2 -3
  54. package/dist/esm/lib/utils/url-utils.js.map +1 -1
  55. package/dist/esm/types.js +7 -0
  56. package/dist/esm/types.js.map +1 -1
  57. package/dist/i3s-content-worker.js +235 -188
  58. package/dist/index.d.ts +1 -1
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/lib/helpers/i3s-nodepages-tiles.d.ts +20 -20
  61. package/dist/lib/helpers/i3s-nodepages-tiles.d.ts.map +1 -1
  62. package/dist/lib/helpers/i3s-nodepages-tiles.js +33 -32
  63. package/dist/lib/parsers/constants.d.ts +1 -17
  64. package/dist/lib/parsers/constants.d.ts.map +1 -1
  65. package/dist/lib/parsers/constants.js +3 -21
  66. package/dist/lib/parsers/parse-i3s-attribute.d.ts +1 -1
  67. package/dist/lib/parsers/parse-i3s-tile-content.d.ts +2 -2
  68. package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -1
  69. package/dist/lib/parsers/parse-i3s-tile-content.js +35 -61
  70. package/dist/lib/parsers/parse-i3s.d.ts +5 -3
  71. package/dist/lib/parsers/parse-i3s.d.ts.map +1 -1
  72. package/dist/lib/parsers/parse-i3s.js +37 -32
  73. package/dist/lib/utils/url-utils.d.ts +6 -6
  74. package/dist/lib/utils/url-utils.d.ts.map +1 -1
  75. package/dist/lib/utils/url-utils.js +5 -5
  76. package/dist/types.d.ts +289 -74
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/types.js +6 -1
  79. package/package.json +9 -9
  80. package/src/index.ts +3 -3
  81. package/src/lib/helpers/i3s-nodepages-tiles.ts +71 -55
  82. package/src/lib/parsers/constants.ts +2 -22
  83. package/src/lib/parsers/parse-i3s-tile-content.ts +74 -103
  84. package/src/lib/parsers/parse-i3s.ts +48 -37
  85. package/src/lib/utils/url-utils.ts +7 -7
  86. package/src/types.ts +302 -93
@@ -439,6 +439,9 @@
439
439
  const workerOptions = options[worker.id] || {};
440
440
  const workerFile = `${worker.id}-worker.js`;
441
441
  let url = workerOptions.workerUrl;
442
+ if (!url && worker.id === "compression") {
443
+ url = options.workerUrl;
444
+ }
442
445
  if (options._workerType === "test") {
443
446
  url = `modules/${worker.module}/dist/${workerFile}`;
444
447
  }
@@ -5675,8 +5678,8 @@
5675
5678
  });
5676
5679
  }
5677
5680
 
5678
- // ../textures/src/lib/gl-constants.ts
5679
- var GL = {
5681
+ // ../textures/src/lib/gl-extensions.ts
5682
+ var GL_EXTENSIONS_CONSTANTS = {
5680
5683
  COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
5681
5684
  COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
5682
5685
  COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
@@ -5908,72 +5911,72 @@
5908
5911
 
5909
5912
  // ../textures/src/lib/utils/ktx-format-helper.ts
5910
5913
  var VULKAN_TO_WEBGL_FORMAT_MAP = {
5911
- 131: GL.COMPRESSED_RGB_S3TC_DXT1_EXT,
5912
- 132: GL.COMPRESSED_SRGB_S3TC_DXT1_EXT,
5913
- 133: GL.COMPRESSED_RGBA_S3TC_DXT1_EXT,
5914
- 134: GL.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
5915
- 135: GL.COMPRESSED_RGBA_S3TC_DXT3_EXT,
5916
- 136: GL.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
5917
- 137: GL.COMPRESSED_RGBA_S3TC_DXT5_EXT,
5918
- 138: GL.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
5919
- 139: GL.COMPRESSED_RED_RGTC1_EXT,
5920
- 140: GL.COMPRESSED_SIGNED_RED_RGTC1_EXT,
5921
- 141: GL.COMPRESSED_RED_GREEN_RGTC2_EXT,
5922
- 142: GL.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
5923
- 147: GL.COMPRESSED_RGB8_ETC2,
5924
- 148: GL.COMPRESSED_SRGB8_ETC2,
5925
- 149: GL.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
5926
- 150: GL.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
5927
- 151: GL.COMPRESSED_RGBA8_ETC2_EAC,
5928
- 152: GL.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
5929
- 153: GL.COMPRESSED_R11_EAC,
5930
- 154: GL.COMPRESSED_SIGNED_R11_EAC,
5931
- 155: GL.COMPRESSED_RG11_EAC,
5932
- 156: GL.COMPRESSED_SIGNED_RG11_EAC,
5933
- 157: GL.COMPRESSED_RGBA_ASTC_4x4_KHR,
5934
- 158: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
5935
- 159: GL.COMPRESSED_RGBA_ASTC_5x4_KHR,
5936
- 160: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,
5937
- 161: GL.COMPRESSED_RGBA_ASTC_5x5_KHR,
5938
- 162: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
5939
- 163: GL.COMPRESSED_RGBA_ASTC_6x5_KHR,
5940
- 164: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
5941
- 165: GL.COMPRESSED_RGBA_ASTC_6x6_KHR,
5942
- 166: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
5943
- 167: GL.COMPRESSED_RGBA_ASTC_8x5_KHR,
5944
- 168: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
5945
- 169: GL.COMPRESSED_RGBA_ASTC_8x6_KHR,
5946
- 170: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
5947
- 171: GL.COMPRESSED_RGBA_ASTC_8x8_KHR,
5948
- 172: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
5949
- 173: GL.COMPRESSED_RGBA_ASTC_10x5_KHR,
5950
- 174: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
5951
- 175: GL.COMPRESSED_RGBA_ASTC_10x6_KHR,
5952
- 176: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
5953
- 177: GL.COMPRESSED_RGBA_ASTC_10x8_KHR,
5954
- 178: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
5955
- 179: GL.COMPRESSED_RGBA_ASTC_10x10_KHR,
5956
- 180: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
5957
- 181: GL.COMPRESSED_RGBA_ASTC_12x10_KHR,
5958
- 182: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
5959
- 183: GL.COMPRESSED_RGBA_ASTC_12x12_KHR,
5960
- 184: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
5961
- 1000054e3: GL.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
5962
- 1000054001: GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
5963
- 1000066e3: GL.COMPRESSED_RGBA_ASTC_4x4_KHR,
5964
- 1000066001: GL.COMPRESSED_RGBA_ASTC_5x4_KHR,
5965
- 1000066002: GL.COMPRESSED_RGBA_ASTC_5x5_KHR,
5966
- 1000066003: GL.COMPRESSED_RGBA_ASTC_6x5_KHR,
5967
- 1000066004: GL.COMPRESSED_RGBA_ASTC_6x6_KHR,
5968
- 1000066005: GL.COMPRESSED_RGBA_ASTC_8x5_KHR,
5969
- 1000066006: GL.COMPRESSED_RGBA_ASTC_8x6_KHR,
5970
- 1000066007: GL.COMPRESSED_RGBA_ASTC_8x8_KHR,
5971
- 1000066008: GL.COMPRESSED_RGBA_ASTC_10x5_KHR,
5972
- 1000066009: GL.COMPRESSED_RGBA_ASTC_10x6_KHR,
5973
- 1000066010: GL.COMPRESSED_RGBA_ASTC_10x8_KHR,
5974
- 1000066011: GL.COMPRESSED_RGBA_ASTC_10x10_KHR,
5975
- 1000066012: GL.COMPRESSED_RGBA_ASTC_12x10_KHR,
5976
- 1000066013: GL.COMPRESSED_RGBA_ASTC_12x12_KHR
5914
+ 131: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
5915
+ 132: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_S3TC_DXT1_EXT,
5916
+ 133: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT1_EXT,
5917
+ 134: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
5918
+ 135: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
5919
+ 136: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
5920
+ 137: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
5921
+ 138: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
5922
+ 139: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_RGTC1_EXT,
5923
+ 140: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_RGTC1_EXT,
5924
+ 141: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_GREEN_RGTC2_EXT,
5925
+ 142: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
5926
+ 147: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2,
5927
+ 148: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ETC2,
5928
+ 149: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
5929
+ 150: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
5930
+ 151: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC,
5931
+ 152: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
5932
+ 153: GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC,
5933
+ 154: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_R11_EAC,
5934
+ 155: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC,
5935
+ 156: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RG11_EAC,
5936
+ 157: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,
5937
+ 158: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
5938
+ 159: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,
5939
+ 160: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,
5940
+ 161: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,
5941
+ 162: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
5942
+ 163: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,
5943
+ 164: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
5944
+ 165: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,
5945
+ 166: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
5946
+ 167: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,
5947
+ 168: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
5948
+ 169: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,
5949
+ 170: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
5950
+ 171: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,
5951
+ 172: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
5952
+ 173: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,
5953
+ 174: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
5954
+ 175: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,
5955
+ 176: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
5956
+ 177: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,
5957
+ 178: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
5958
+ 179: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,
5959
+ 180: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
5960
+ 181: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,
5961
+ 182: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
5962
+ 183: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR,
5963
+ 184: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
5964
+ 1000054e3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
5965
+ 1000054001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
5966
+ 1000066e3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,
5967
+ 1000066001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,
5968
+ 1000066002: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,
5969
+ 1000066003: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,
5970
+ 1000066004: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,
5971
+ 1000066005: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,
5972
+ 1000066006: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,
5973
+ 1000066007: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,
5974
+ 1000066008: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,
5975
+ 1000066009: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,
5976
+ 1000066010: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,
5977
+ 1000066011: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,
5978
+ 1000066012: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,
5979
+ 1000066013: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR
5977
5980
  };
5978
5981
  function mapVkFormatToWebGL(vkFormat) {
5979
5982
  return VULKAN_TO_WEBGL_FORMAT_MAP[vkFormat];
@@ -6015,19 +6018,43 @@
6015
6018
  });
6016
6019
  }
6017
6020
 
6018
- // ../textures/src/lib/parsers/parse-basis.js
6021
+ // ../textures/src/lib/parsers/parse-basis.ts
6019
6022
  var OutputFormat = {
6020
- etc1: { basisFormat: 0, compressed: true, format: GL.COMPRESSED_RGB_ETC1_WEBGL },
6023
+ etc1: {
6024
+ basisFormat: 0,
6025
+ compressed: true,
6026
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
6027
+ },
6021
6028
  etc2: { basisFormat: 1, compressed: true },
6022
- bc1: { basisFormat: 2, compressed: true, format: GL.COMPRESSED_RGB_S3TC_DXT1_EXT },
6023
- bc3: { basisFormat: 3, compressed: true, format: GL.COMPRESSED_RGBA_S3TC_DXT5_EXT },
6029
+ bc1: {
6030
+ basisFormat: 2,
6031
+ compressed: true,
6032
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
6033
+ },
6034
+ bc3: {
6035
+ basisFormat: 3,
6036
+ compressed: true,
6037
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
6038
+ },
6024
6039
  bc4: { basisFormat: 4, compressed: true },
6025
6040
  bc5: { basisFormat: 5, compressed: true },
6026
6041
  "bc7-m6-opaque-only": { basisFormat: 6, compressed: true },
6027
6042
  "bc7-m5": { basisFormat: 7, compressed: true },
6028
- "pvrtc1-4-rgb": { basisFormat: 8, compressed: true, format: GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG },
6029
- "pvrtc1-4-rgba": { basisFormat: 9, compressed: true, format: GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG },
6030
- "astc-4x4": { basisFormat: 10, compressed: true, format: GL.COMPRESSED_RGBA_ASTC_4X4_KHR },
6043
+ "pvrtc1-4-rgb": {
6044
+ basisFormat: 8,
6045
+ compressed: true,
6046
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
6047
+ },
6048
+ "pvrtc1-4-rgba": {
6049
+ basisFormat: 9,
6050
+ compressed: true,
6051
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
6052
+ },
6053
+ "astc-4x4": {
6054
+ basisFormat: 10,
6055
+ compressed: true,
6056
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
6057
+ },
6031
6058
  "atc-rgb": { basisFormat: 11, compressed: true },
6032
6059
  "atc-rgba-interpolated-alpha": { basisFormat: 12, compressed: true },
6033
6060
  rgba32: { basisFormat: 13, compressed: false },
@@ -6210,12 +6237,12 @@
6210
6237
  DDPF_FOURCC: 4
6211
6238
  };
6212
6239
  var DDS_PIXEL_FORMATS = {
6213
- DXT1: GL.COMPRESSED_RGB_S3TC_DXT1_EXT,
6214
- DXT3: GL.COMPRESSED_RGBA_S3TC_DXT3_EXT,
6215
- DXT5: GL.COMPRESSED_RGBA_S3TC_DXT5_EXT,
6216
- "ATC ": GL.COMPRESSED_RGB_ATC_WEBGL,
6217
- ATCA: GL.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,
6218
- ATCI: GL.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
6240
+ DXT1: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
6241
+ DXT3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
6242
+ DXT5: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
6243
+ "ATC ": GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ATC_WEBGL,
6244
+ ATCA: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,
6245
+ ATCI: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
6219
6246
  };
6220
6247
  var getATCLevelSize = getDxt1LevelSize;
6221
6248
  var getATCALevelSize = getDxtXLevelSize;
@@ -6282,33 +6309,75 @@
6282
6309
  METADATA_SIZE_INDEX: 12
6283
6310
  };
6284
6311
  var PVR_PIXEL_FORMATS = {
6285
- 0: [GL.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],
6286
- 1: [GL.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],
6287
- 2: [GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],
6288
- 3: [GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],
6289
- 6: [GL.COMPRESSED_RGB_ETC1_WEBGL],
6290
- 7: [GL.COMPRESSED_RGB_S3TC_DXT1_EXT],
6291
- 9: [GL.COMPRESSED_RGBA_S3TC_DXT3_EXT],
6292
- 11: [GL.COMPRESSED_RGBA_S3TC_DXT5_EXT],
6293
- 22: [GL.COMPRESSED_RGB8_ETC2],
6294
- 23: [GL.COMPRESSED_RGBA8_ETC2_EAC],
6295
- 24: [GL.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],
6296
- 25: [GL.COMPRESSED_R11_EAC],
6297
- 26: [GL.COMPRESSED_RG11_EAC],
6298
- 27: [GL.COMPRESSED_RGBA_ASTC_4X4_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR],
6299
- 28: [GL.COMPRESSED_RGBA_ASTC_5X4_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR],
6300
- 29: [GL.COMPRESSED_RGBA_ASTC_5X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR],
6301
- 30: [GL.COMPRESSED_RGBA_ASTC_6X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR],
6302
- 31: [GL.COMPRESSED_RGBA_ASTC_6X6_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR],
6303
- 32: [GL.COMPRESSED_RGBA_ASTC_8X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR],
6304
- 33: [GL.COMPRESSED_RGBA_ASTC_8X6_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR],
6305
- 34: [GL.COMPRESSED_RGBA_ASTC_8X8_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR],
6306
- 35: [GL.COMPRESSED_RGBA_ASTC_10X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR],
6307
- 36: [GL.COMPRESSED_RGBA_ASTC_10X6_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR],
6308
- 37: [GL.COMPRESSED_RGBA_ASTC_10X8_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR],
6309
- 38: [GL.COMPRESSED_RGBA_ASTC_10X10_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR],
6310
- 39: [GL.COMPRESSED_RGBA_ASTC_12X10_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR],
6311
- 40: [GL.COMPRESSED_RGBA_ASTC_12X12_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR]
6312
+ 0: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],
6313
+ 1: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],
6314
+ 2: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],
6315
+ 3: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],
6316
+ 6: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL],
6317
+ 7: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT],
6318
+ 9: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT],
6319
+ 11: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT],
6320
+ 22: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2],
6321
+ 23: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC],
6322
+ 24: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],
6323
+ 25: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC],
6324
+ 26: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC],
6325
+ 27: [
6326
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR,
6327
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR
6328
+ ],
6329
+ 28: [
6330
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X4_KHR,
6331
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR
6332
+ ],
6333
+ 29: [
6334
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X5_KHR,
6335
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR
6336
+ ],
6337
+ 30: [
6338
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X5_KHR,
6339
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR
6340
+ ],
6341
+ 31: [
6342
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X6_KHR,
6343
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR
6344
+ ],
6345
+ 32: [
6346
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X5_KHR,
6347
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR
6348
+ ],
6349
+ 33: [
6350
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X6_KHR,
6351
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR
6352
+ ],
6353
+ 34: [
6354
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X8_KHR,
6355
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR
6356
+ ],
6357
+ 35: [
6358
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X5_KHR,
6359
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR
6360
+ ],
6361
+ 36: [
6362
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X6_KHR,
6363
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR
6364
+ ],
6365
+ 37: [
6366
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X8_KHR,
6367
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR
6368
+ ],
6369
+ 38: [
6370
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X10_KHR,
6371
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR
6372
+ ],
6373
+ 39: [
6374
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X10_KHR,
6375
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR
6376
+ ],
6377
+ 40: [
6378
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X12_KHR,
6379
+ GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR
6380
+ ]
6312
6381
  };
6313
6382
  var PVR_SIZE_FUNCTIONS = {
6314
6383
  0: pvrtc2bppSize,
@@ -6482,6 +6551,25 @@
6482
6551
  }
6483
6552
  };
6484
6553
 
6554
+ // src/types.ts
6555
+ var DATA_TYPE;
6556
+ (function(DATA_TYPE2) {
6557
+ DATA_TYPE2["UInt8"] = "UInt8";
6558
+ DATA_TYPE2["UInt16"] = "UInt16";
6559
+ DATA_TYPE2["UInt32"] = "UInt32";
6560
+ DATA_TYPE2["UInt64"] = "UInt64";
6561
+ DATA_TYPE2["Int16"] = "Int16";
6562
+ DATA_TYPE2["Int32"] = "Int32";
6563
+ DATA_TYPE2["Int64"] = "Int64";
6564
+ DATA_TYPE2["Float32"] = "Float32";
6565
+ DATA_TYPE2["Float64"] = "Float64";
6566
+ })(DATA_TYPE || (DATA_TYPE = {}));
6567
+ var HeaderAttributeProperty;
6568
+ (function(HeaderAttributeProperty2) {
6569
+ HeaderAttributeProperty2["vertexCount"] = "vertexCount";
6570
+ HeaderAttributeProperty2["featureCount"] = "featureCount";
6571
+ })(HeaderAttributeProperty || (HeaderAttributeProperty = {}));
6572
+
6485
6573
  // src/lib/utils/url-utils.ts
6486
6574
  function getUrlWithToken(url, token = null) {
6487
6575
  return token ? `${url}?token=${token}` : url;
@@ -7105,20 +7193,6 @@
7105
7193
  GPU_DISJOINT_EXT: 36795
7106
7194
  };
7107
7195
 
7108
- // src/types.ts
7109
- var DATA_TYPE;
7110
- (function(DATA_TYPE2) {
7111
- DATA_TYPE2["UInt8"] = "UInt8";
7112
- DATA_TYPE2["UInt16"] = "UInt16";
7113
- DATA_TYPE2["UInt32"] = "UInt32";
7114
- DATA_TYPE2["UInt64"] = "UInt64";
7115
- DATA_TYPE2["Int16"] = "Int16";
7116
- DATA_TYPE2["Int32"] = "Int32";
7117
- DATA_TYPE2["Int64"] = "Int64";
7118
- DATA_TYPE2["Float32"] = "Float32";
7119
- DATA_TYPE2["Float64"] = "Float64";
7120
- })(DATA_TYPE || (DATA_TYPE = {}));
7121
-
7122
7196
  // src/lib/parsers/constants.ts
7123
7197
  function getConstructorForDataFormat(dataType) {
7124
7198
  switch (dataType) {
@@ -7133,7 +7207,7 @@
7133
7207
  case DATA_TYPE.UInt64:
7134
7208
  return Float64Array;
7135
7209
  default:
7136
- return null;
7210
+ throw new Error(`parse i3s tile content: unknown type of data: ${dataType}`);
7137
7211
  }
7138
7212
  }
7139
7213
  var GL_TYPE_MAP = {
@@ -7143,22 +7217,6 @@
7143
7217
  UInt32: esm_default2.UNSIGNED_INT,
7144
7218
  UInt64: esm_default2.DOUBLE
7145
7219
  };
7146
- var I3S_NAMED_VERTEX_ATTRIBUTES = {
7147
- position: "position",
7148
- normal: "normal",
7149
- uv0: "uv0",
7150
- color: "color",
7151
- region: "region"
7152
- };
7153
- var I3S_NAMED_GEOMETRY_ATTRIBUTES = {
7154
- vertexAttributes: "vertexAttributes",
7155
- featureAttributeOrder: "featureAttributeOrder",
7156
- featureAttributes: "featureAttributes"
7157
- };
7158
- var I3S_NAMED_HEADER_ATTRIBUTES = {
7159
- vertexCount: "vertexCount",
7160
- featureCount: "featureCount"
7161
- };
7162
7220
  function sizeOf(dataType) {
7163
7221
  switch (dataType) {
7164
7222
  case DATA_TYPE.UInt8:
@@ -7175,7 +7233,7 @@
7175
7233
  case DATA_TYPE.Float64:
7176
7234
  return 8;
7177
7235
  default:
7178
- return NaN;
7236
+ throw new Error(`parse i3s tile content: unknown size of data: ${dataType}`);
7179
7237
  }
7180
7238
  }
7181
7239
  var COORDINATE_SYSTEM;
@@ -7191,27 +7249,25 @@
7191
7249
  var scratchVector5 = new Vector3([0, 0, 0]);
7192
7250
  function getLoaderForTextureFormat(textureFormat) {
7193
7251
  switch (textureFormat) {
7194
- case "jpeg":
7195
- case "png":
7196
- return ImageLoader;
7197
7252
  case "ktx-etc2":
7198
7253
  case "dds":
7199
7254
  return CompressedTextureLoader;
7200
7255
  case "ktx2":
7201
7256
  return BasisLoader;
7257
+ case "jpg":
7258
+ case "png":
7202
7259
  default:
7203
- return null;
7260
+ return ImageLoader;
7204
7261
  }
7205
7262
  }
7206
7263
  var I3S_ATTRIBUTE_TYPE = "i3s-attribute-type";
7207
7264
  async function parseI3STileContent(arrayBuffer, tile, tileset, options, context) {
7208
7265
  tile.content = tile.content || {};
7209
7266
  tile.content.featureIds = tile.content.featureIds || null;
7210
- tile.content.featureData = constructFeatureDataStruct(tileset);
7211
7267
  tile.content.attributes = {};
7212
7268
  if (tile.textureUrl) {
7213
7269
  const url = getUrlWithToken(tile.textureUrl, options?.i3s?.token);
7214
- const loader = getLoaderForTextureFormat(tile.textureFormat) || ImageLoader;
7270
+ const loader = getLoaderForTextureFormat(tile.textureFormat);
7215
7271
  const response = await fetch(url);
7216
7272
  const arrayBuffer2 = await response.arrayBuffer();
7217
7273
  if (options?.i3s.decodeTextures) {
@@ -7240,9 +7296,9 @@
7240
7296
  if (tile.content.material) {
7241
7297
  tile.content.texture = null;
7242
7298
  }
7243
- return await parseI3SNodeGeometry(arrayBuffer, tile, options);
7299
+ return await parseI3SNodeGeometry(arrayBuffer, tile, tileset, options);
7244
7300
  }
7245
- async function parseI3SNodeGeometry(arrayBuffer, tile, options) {
7301
+ async function parseI3SNodeGeometry(arrayBuffer, tile, tileset, options) {
7246
7302
  if (!tile.content) {
7247
7303
  return tile;
7248
7304
  }
@@ -7251,6 +7307,7 @@
7251
7307
  let vertexCount;
7252
7308
  let byteOffset = 0;
7253
7309
  let featureCount = 0;
7310
+ let indices;
7254
7311
  if (tile.isDracoGeometry) {
7255
7312
  const decompressedGeometry = await parse(arrayBuffer, DracoLoader2, {
7256
7313
  draco: {
@@ -7258,7 +7315,7 @@
7258
7315
  }
7259
7316
  });
7260
7317
  vertexCount = decompressedGeometry.header.vertexCount;
7261
- const indices = decompressedGeometry.indices.value;
7318
+ indices = decompressedGeometry.indices?.value;
7262
7319
  const {
7263
7320
  POSITION,
7264
7321
  NORMAL,
@@ -7273,8 +7330,7 @@
7273
7330
  color: COLOR_0,
7274
7331
  uv0: TEXCOORD_0,
7275
7332
  uvRegion,
7276
- id: featureIndex,
7277
- indices
7333
+ id: featureIndex
7278
7334
  };
7279
7335
  updateAttributesMetadata(attributes, decompressedGeometry);
7280
7336
  const featureIds = getFeatureIdsFromFeatureIndexMetadata(featureIndex);
@@ -7282,8 +7338,13 @@
7282
7338
  flattenFeatureIdsByFeatureIndices(attributes, featureIds);
7283
7339
  }
7284
7340
  } else {
7285
- const { vertexAttributes, attributesOrder, featureAttributes, featureAttributeOrder } = content.featureData;
7286
- const headers = parseHeaders(content, arrayBuffer);
7341
+ const {
7342
+ vertexAttributes,
7343
+ ordering: attributesOrder,
7344
+ featureAttributes,
7345
+ featureAttributeOrder
7346
+ } = tileset.store.defaultGeometrySchema;
7347
+ const headers = parseHeaders(tileset, arrayBuffer);
7287
7348
  byteOffset = headers.byteOffset;
7288
7349
  vertexCount = headers.vertexCount;
7289
7350
  featureCount = headers.featureCount;
@@ -7307,7 +7368,7 @@
7307
7368
  texCoords: attributes.uv0,
7308
7369
  uvRegions: normalizeAttribute(attributes.uvRegion)
7309
7370
  };
7310
- content.indices = attributes.indices || null;
7371
+ content.indices = indices || null;
7311
7372
  if (attributes.id && attributes.id.value) {
7312
7373
  tile.content.featureIds = attributes.id.value;
7313
7374
  }
@@ -7345,41 +7406,25 @@
7345
7406
  attribute.normalized = true;
7346
7407
  return attribute;
7347
7408
  }
7348
- function constructFeatureDataStruct(tileset) {
7349
- const defaultGeometrySchema = tileset.store.defaultGeometrySchema;
7350
- const featureData = defaultGeometrySchema;
7351
- for (const geometryAttribute in I3S_NAMED_GEOMETRY_ATTRIBUTES) {
7352
- for (const namedAttribute in I3S_NAMED_VERTEX_ATTRIBUTES) {
7353
- const attribute = defaultGeometrySchema[geometryAttribute][namedAttribute];
7354
- if (attribute) {
7355
- const { byteOffset = 0, count = 0, valueType, valuesPerElement } = attribute;
7356
- featureData[geometryAttribute][namedAttribute] = {
7357
- valueType,
7358
- valuesPerElement,
7359
- byteOffset,
7360
- count
7361
- };
7362
- }
7363
- }
7364
- }
7365
- featureData.attributesOrder = defaultGeometrySchema.ordering;
7366
- return featureData;
7367
- }
7368
- function parseHeaders(content, arrayBuffer) {
7409
+ function parseHeaders(tileset, arrayBuffer) {
7369
7410
  let byteOffset = 0;
7370
7411
  let vertexCount = 0;
7371
7412
  let featureCount = 0;
7372
- content.featureData.header.forEach(({ property, type }) => {
7413
+ for (const { property, type } of tileset.store.defaultGeometrySchema.header) {
7373
7414
  const TypedArrayTypeHeader = getConstructorForDataFormat(type);
7374
- if (property === I3S_NAMED_HEADER_ATTRIBUTES.vertexCount) {
7375
- vertexCount = new TypedArrayTypeHeader(arrayBuffer, 0, 4)[0];
7376
- byteOffset += sizeOf(type);
7377
- }
7378
- if (property === I3S_NAMED_HEADER_ATTRIBUTES.featureCount) {
7379
- featureCount = new TypedArrayTypeHeader(arrayBuffer, 4, 4)[0];
7380
- byteOffset += sizeOf(type);
7415
+ switch (property) {
7416
+ case HeaderAttributeProperty.vertexCount:
7417
+ vertexCount = new TypedArrayTypeHeader(arrayBuffer, 0, 4)[0];
7418
+ byteOffset += sizeOf(type);
7419
+ break;
7420
+ case HeaderAttributeProperty.featureCount:
7421
+ featureCount = new TypedArrayTypeHeader(arrayBuffer, 4, 4)[0];
7422
+ byteOffset += sizeOf(type);
7423
+ break;
7424
+ default:
7425
+ break;
7381
7426
  }
7382
- });
7427
+ }
7383
7428
  return {
7384
7429
  vertexCount,
7385
7430
  featureCount,
@@ -7396,7 +7441,7 @@
7396
7441
  break;
7397
7442
  }
7398
7443
  const buffer = arrayBuffer.slice(byteOffset);
7399
- let value = [];
7444
+ let value;
7400
7445
  if (valueType === "UInt64") {
7401
7446
  value = parseUint64Values(buffer, count * valuesPerElement, sizeOf(valueType));
7402
7447
  } else {
@@ -7433,7 +7478,7 @@
7433
7478
  values.push(value);
7434
7479
  offset += attributeSize;
7435
7480
  }
7436
- return values;
7481
+ return new Uint32Array(values);
7437
7482
  }
7438
7483
  function parsePositions(attribute, tile) {
7439
7484
  const mbs = tile.mbs;
@@ -7500,7 +7545,9 @@
7500
7545
  if (pbrMaterial.pbrMetallicRoughness && pbrMaterial.pbrMetallicRoughness.baseColorFactor) {
7501
7546
  pbrMaterial.pbrMetallicRoughness.baseColorFactor = convertColorFormat(pbrMaterial.pbrMetallicRoughness.baseColorFactor);
7502
7547
  }
7503
- setMaterialTexture(pbrMaterial, texture);
7548
+ if (texture) {
7549
+ setMaterialTexture(pbrMaterial, texture);
7550
+ }
7504
7551
  return pbrMaterial;
7505
7552
  }
7506
7553
  function convertColorFormat(colorFactor) {
@@ -7562,7 +7609,7 @@
7562
7609
  attributes.id.value = result;
7563
7610
  }
7564
7611
  function getFeatureIdsFromFeatureIndexMetadata(featureIndex) {
7565
- return featureIndex && featureIndex.metadata && featureIndex.metadata["i3s-feature-ids"] && featureIndex.metadata["i3s-feature-ids"].intArray;
7612
+ return featureIndex?.metadata?.["i3s-feature-ids"]?.intArray;
7566
7613
  }
7567
7614
 
7568
7615
  // src/i3s-content-loader.ts
package/dist/index.d.ts CHANGED
@@ -2,6 +2,6 @@ export { I3SLoader } from './i3s-loader';
2
2
  export { I3SContentLoader } from './i3s-content-loader';
3
3
  export { I3SAttributeLoader, loadFeatureAttributes } from './i3s-attribute-loader';
4
4
  export { I3SBuildingSceneLayerLoader } from './i3s-building-scene-layer-loader';
5
- export type { BoundingVolumes, Mbs, Obb, SceneLayer3D, AttributeStorageInfo, Field, ESRIField, PopupInfo, Node3DIndexDocument, LodSelection, NodeReference, Resource, I3SGeometry, MaxScreenThresholdSQ, NodeInPage, SharedResources, TextureImage, Attribute, Extent, FeatureAttribute } from './types';
5
+ export type { BoundingVolumes, Mbs, Obb, SceneLayer3D, AttributeStorageInfo, Field, ESRIField, PopupInfo, Node3DIndexDocument, LodSelection, NodeReference, Resource, MaxScreenThresholdSQ, NodeInPage, SharedResources, Attribute, Extent, FeatureAttribute, FieldInfo, I3SMaterialDefinition } from './types';
6
6
  export { COORDINATE_SYSTEM } from './lib/parsers/constants';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,YAAY,EACV,eAAe,EACf,GAAG,EACH,GAAG,EACH,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,SAAS,EACT,MAAM,EACN,gBAAgB,EACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,YAAY,EACV,eAAe,EACf,GAAG,EACH,GAAG,EACH,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC"}