@loaders.gl/3d-tiles 4.1.0-alpha.1 → 4.1.0-alpha.11

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 (152) hide show
  1. package/dist/3d-tiles-archive/3d-tiles-archive-archive.d.ts.map +1 -1
  2. package/dist/3d-tiles-archive/3d-tiles-archive-archive.js.map +1 -1
  3. package/dist/3d-tiles-archive/3d-tiles-archive-parser.d.ts.map +1 -1
  4. package/dist/3d-tiles-archive/3d-tiles-archive-parser.js.map +1 -1
  5. package/dist/3d-tiles-archive-loader.d.ts.map +1 -1
  6. package/dist/3d-tiles-archive-loader.js +1 -1
  7. package/dist/3d-tiles-archive-loader.js.map +1 -1
  8. package/dist/cesium-ion-loader.d.ts.map +1 -1
  9. package/dist/cesium-ion-loader.js.map +1 -1
  10. package/dist/dist.dev.js +208 -44
  11. package/dist/index.cjs +29 -20
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/lib/classes/helpers/tile-3d-accessor-utils.d.ts.map +1 -1
  15. package/dist/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -1
  16. package/dist/lib/classes/tile-3d-batch-table-hierarchy.d.ts.map +1 -1
  17. package/dist/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -1
  18. package/dist/lib/classes/tile-3d-batch-table.d.ts.map +1 -1
  19. package/dist/lib/classes/tile-3d-batch-table.js.map +1 -1
  20. package/dist/lib/classes/tile-3d-feature-table.d.ts.map +1 -1
  21. package/dist/lib/classes/tile-3d-feature-table.js.map +1 -1
  22. package/dist/lib/constants.d.ts.map +1 -1
  23. package/dist/lib/constants.js.map +1 -1
  24. package/dist/lib/encoders/encode-3d-tile-batched-model.d.ts.map +1 -1
  25. package/dist/lib/encoders/encode-3d-tile-batched-model.js.map +1 -1
  26. package/dist/lib/encoders/encode-3d-tile-composite.d.ts.map +1 -1
  27. package/dist/lib/encoders/encode-3d-tile-composite.js.map +1 -1
  28. package/dist/lib/encoders/encode-3d-tile-instanced-model.d.ts.map +1 -1
  29. package/dist/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -1
  30. package/dist/lib/encoders/encode-3d-tile-point-cloud.d.ts.map +1 -1
  31. package/dist/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -1
  32. package/dist/lib/encoders/encode-3d-tile.d.ts.map +1 -1
  33. package/dist/lib/encoders/encode-3d-tile.js.map +1 -1
  34. package/dist/lib/encoders/helpers/encode-3d-tile-header.d.ts.map +1 -1
  35. package/dist/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -1
  36. package/dist/lib/filesystems/tiles-3d-archive-file-system.d.ts.map +1 -1
  37. package/dist/lib/filesystems/tiles-3d-archive-file-system.js.map +1 -1
  38. package/dist/lib/ion/ion.d.ts.map +1 -1
  39. package/dist/lib/ion/ion.js.map +1 -1
  40. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.d.ts.map +1 -1
  41. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -1
  42. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.d.ts.map +1 -1
  43. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -1
  44. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.d.ts.map +1 -1
  45. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -1
  46. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.d.ts.map +1 -1
  47. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.js +21 -19
  48. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -1
  49. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts.map +1 -1
  50. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
  51. package/dist/lib/parsers/helpers/parse-3d-tile-header.d.ts.map +1 -1
  52. package/dist/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -1
  53. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts +9 -1
  54. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts.map +1 -1
  55. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js +3 -2
  56. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -1
  57. package/dist/lib/parsers/helpers/parse-3d-tile-tables.d.ts.map +1 -1
  58. package/dist/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -1
  59. package/dist/lib/parsers/helpers/parse-utils.d.ts.map +1 -1
  60. package/dist/lib/parsers/helpers/parse-utils.js.map +1 -1
  61. package/dist/lib/parsers/parse-3d-tile-batched-model.d.ts.map +1 -1
  62. package/dist/lib/parsers/parse-3d-tile-batched-model.js.map +1 -1
  63. package/dist/lib/parsers/parse-3d-tile-composite.d.ts.map +1 -1
  64. package/dist/lib/parsers/parse-3d-tile-composite.js.map +1 -1
  65. package/dist/lib/parsers/parse-3d-tile-gltf.d.ts.map +1 -1
  66. package/dist/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
  67. package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -1
  68. package/dist/lib/parsers/parse-3d-tile-header.js +6 -5
  69. package/dist/lib/parsers/parse-3d-tile-header.js.map +1 -1
  70. package/dist/lib/parsers/parse-3d-tile-instanced-model.d.ts.map +1 -1
  71. package/dist/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -1
  72. package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts.map +1 -1
  73. package/dist/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
  74. package/dist/lib/parsers/parse-3d-tile.d.ts.map +1 -1
  75. package/dist/lib/parsers/parse-3d-tile.js.map +1 -1
  76. package/dist/lib/utils/obb/s2-corners-to-obb.d.ts.map +1 -1
  77. package/dist/lib/utils/obb/s2-corners-to-obb.js.map +1 -1
  78. package/dist/lib/utils/s2/converters/s2-to-boundary.d.ts.map +1 -1
  79. package/dist/lib/utils/s2/converters/s2-to-boundary.js.map +1 -1
  80. package/dist/lib/utils/s2/converters/s2-to-obb-points.d.ts.map +1 -1
  81. package/dist/lib/utils/s2/converters/s2-to-obb-points.js.map +1 -1
  82. package/dist/lib/utils/s2/converters/s2-to-region.d.ts.map +1 -1
  83. package/dist/lib/utils/s2/converters/s2-to-region.js.map +1 -1
  84. package/dist/lib/utils/s2/index.d.ts.map +1 -1
  85. package/dist/lib/utils/s2/index.js.map +1 -1
  86. package/dist/lib/utils/s2/s2-geometry-functions.d.ts.map +1 -1
  87. package/dist/lib/utils/s2/s2-geometry-functions.js.map +1 -1
  88. package/dist/lib/utils/s2/s2-token-functions.d.ts.map +1 -1
  89. package/dist/lib/utils/s2/s2-token-functions.js.map +1 -1
  90. package/dist/lib/utils/s2/s2geometry/s2-cell-utils.d.ts.map +1 -1
  91. package/dist/lib/utils/s2/s2geometry/s2-cell-utils.js.map +1 -1
  92. package/dist/lib/utils/s2/s2geometry/s2-geometry.d.ts.map +1 -1
  93. package/dist/lib/utils/s2/s2geometry/s2-geometry.js.map +1 -1
  94. package/dist/lib/utils/version.js +1 -1
  95. package/dist/lib/utils/version.js.map +1 -1
  96. package/dist/tile-3d-subtree-loader.d.ts.map +1 -1
  97. package/dist/tile-3d-subtree-loader.js.map +1 -1
  98. package/dist/tile-3d-writer.d.ts.map +1 -1
  99. package/dist/tile-3d-writer.js.map +1 -1
  100. package/dist/tiles-3d-loader.d.ts.map +1 -1
  101. package/dist/tiles-3d-loader.js.map +1 -1
  102. package/dist/types.d.ts +4 -4
  103. package/dist/types.d.ts.map +1 -1
  104. package/dist/types.js.map +1 -1
  105. package/package.json +10 -10
  106. package/src/3d-tiles-archive/3d-tiles-archive-archive.ts +4 -0
  107. package/src/3d-tiles-archive/3d-tiles-archive-parser.ts +4 -0
  108. package/src/3d-tiles-archive-loader.ts +4 -0
  109. package/src/cesium-ion-loader.ts +4 -0
  110. package/src/index.ts +4 -0
  111. package/src/lib/classes/helpers/tile-3d-accessor-utils.ts +4 -0
  112. package/src/lib/classes/tile-3d-batch-table-hierarchy.ts +4 -0
  113. package/src/lib/classes/tile-3d-batch-table.ts +4 -0
  114. package/src/lib/classes/tile-3d-feature-table.ts +4 -0
  115. package/src/lib/constants.ts +4 -0
  116. package/src/lib/encoders/encode-3d-tile-batched-model.ts +4 -0
  117. package/src/lib/encoders/encode-3d-tile-composite.ts +4 -0
  118. package/src/lib/encoders/encode-3d-tile-instanced-model.ts +4 -0
  119. package/src/lib/encoders/encode-3d-tile-point-cloud.ts +4 -0
  120. package/src/lib/encoders/encode-3d-tile.ts +4 -0
  121. package/src/lib/encoders/helpers/encode-3d-tile-header.ts +4 -0
  122. package/src/lib/filesystems/tiles-3d-archive-file-system.ts +4 -0
  123. package/src/lib/ion/ion.ts +4 -0
  124. package/src/lib/parsers/helpers/normalize-3d-tile-colors.ts +4 -0
  125. package/src/lib/parsers/helpers/normalize-3d-tile-normals.ts +4 -0
  126. package/src/lib/parsers/helpers/normalize-3d-tile-positions.ts +4 -0
  127. package/src/lib/parsers/helpers/parse-3d-implicit-tiles.ts +25 -16
  128. package/src/lib/parsers/helpers/parse-3d-tile-gltf-view.ts +4 -0
  129. package/src/lib/parsers/helpers/parse-3d-tile-header.ts +4 -0
  130. package/src/lib/parsers/helpers/parse-3d-tile-subtree.ts +11 -2
  131. package/src/lib/parsers/helpers/parse-3d-tile-tables.ts +4 -0
  132. package/src/lib/parsers/helpers/parse-utils.ts +4 -0
  133. package/src/lib/parsers/parse-3d-tile-batched-model.ts +4 -0
  134. package/src/lib/parsers/parse-3d-tile-composite.ts +4 -0
  135. package/src/lib/parsers/parse-3d-tile-gltf.ts +2 -1
  136. package/src/lib/parsers/parse-3d-tile-header.ts +11 -3
  137. package/src/lib/parsers/parse-3d-tile-instanced-model.ts +4 -0
  138. package/src/lib/parsers/parse-3d-tile-point-cloud.ts +4 -0
  139. package/src/lib/parsers/parse-3d-tile.ts +4 -0
  140. package/src/lib/utils/obb/s2-corners-to-obb.ts +4 -0
  141. package/src/lib/utils/s2/converters/s2-to-boundary.ts +4 -0
  142. package/src/lib/utils/s2/converters/s2-to-obb-points.ts +4 -0
  143. package/src/lib/utils/s2/converters/s2-to-region.ts +4 -0
  144. package/src/lib/utils/s2/index.ts +3 -1
  145. package/src/lib/utils/s2/s2-geometry-functions.ts +3 -1
  146. package/src/lib/utils/s2/s2-token-functions.ts +3 -2
  147. package/src/lib/utils/s2/s2geometry/s2-cell-utils.ts +3 -1
  148. package/src/lib/utils/s2/s2geometry/s2-geometry.ts +4 -1
  149. package/src/tile-3d-subtree-loader.ts +4 -0
  150. package/src/tile-3d-writer.ts +4 -0
  151. package/src/tiles-3d-loader.ts +4 -0
  152. package/src/types.ts +8 -4
@@ -1 +1 @@
1
- {"version":3,"file":"3d-tiles-archive-archive.d.ts","sourceRoot":"","sources":["../../src/3d-tiles-archive/3d-tiles-archive-archive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAiBtD;;GAEG;AACH,qBAAa,cAAc;IACzB,uCAAuC;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,gBAAgB;IAChB,OAAO,CAAC,SAAS,CAAyB;IAE1C;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAKzE;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAcjD;;;;OAIG;YACW,YAAY;CAyB3B"}
1
+ {"version":3,"file":"3d-tiles-archive-archive.d.ts","sourceRoot":"","sources":["../../src/3d-tiles-archive/3d-tiles-archive-archive.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAiBtD;;GAEG;AACH,qBAAa,cAAc;IACzB,uCAAuC;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,gBAAgB;IAChB,OAAO,CAAC,SAAS,CAAyB;IAE1C;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAKzE;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAcjD;;;;OAIG;YACW,YAAY;CAyB3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"3d-tiles-archive-archive.js","names":["MD5Hash","DeflateCompression","NoCompression","parseZipLocalFileHeader","COMPRESSION_METHODS","data","decompress","raw","Tiles3DArchive","constructor","fileProvider","hashTable","getFile","path","getFileBytes","toLocaleLowerCase","Error","arrayBuffer","TextEncoder","encode","buffer","nameHash","hash","byteOffset","undefined","localFileHeader","compressedFile","slice","fileDataOffset","compressedSize","compressionMethod"],"sources":["../../src/3d-tiles-archive/3d-tiles-archive-archive.ts"],"sourcesContent":["import {FileProvider} from '@loaders.gl/loader-utils';\nimport {MD5Hash} from '@loaders.gl/crypto';\nimport {DeflateCompression, NoCompression} from '@loaders.gl/compression';\nimport {parseZipLocalFileHeader} from '@loaders.gl/zip';\n\ntype CompressionHandler = (compressedFile: ArrayBuffer) => Promise<ArrayBuffer>;\n\n/**\n * Handling different compression types in zip\n */\nconst COMPRESSION_METHODS: {[key: number]: CompressionHandler} = {\n /** No compression */\n 0: (data) => new NoCompression().decompress(data),\n /** Deflation */\n 8: (data) => new DeflateCompression({raw: true}).decompress(data)\n};\n\n/**\n * Class for handling information about 3tz file\n */\nexport class Tiles3DArchive {\n /** FileProvider with whe whole file */\n private fileProvider: FileProvider;\n /** hash info */\n private hashTable: Record<string, bigint>;\n\n /**\n * creates Tiles3DArchive handler\n * @param fileProvider - FileProvider with the whole file\n * @param hashTable - hash info\n */\n constructor(fileProvider: FileProvider, hashTable: Record<string, bigint>) {\n this.fileProvider = fileProvider;\n this.hashTable = hashTable;\n }\n\n /**\n * Returns file with the given path from 3tz archive\n * @param path - path inside the 3tz\n * @returns buffer with ready to use file\n */\n async getFile(path: string): Promise<ArrayBuffer> {\n // sometimes paths are not in lower case when hash file is created,\n // so first we're looking for lower case file name and then for original one\n let data = await this.getFileBytes(path.toLocaleLowerCase());\n if (!data) {\n data = await this.getFileBytes(path);\n }\n if (!data) {\n throw new Error(`No such file in the archive: ${path}`);\n }\n\n return data;\n }\n\n /**\n * Trying to get raw file data by adress\n * @param path - path inside the archive\n * @returns buffer with the raw file data\n */\n private async getFileBytes(path: string): Promise<ArrayBuffer | null> {\n const arrayBuffer = new TextEncoder().encode(path).buffer;\n const nameHash = await new MD5Hash().hash(arrayBuffer, 'hex');\n const byteOffset = this.hashTable[nameHash];\n if (byteOffset === undefined) {\n return null;\n }\n\n const localFileHeader = await parseZipLocalFileHeader(byteOffset, this.fileProvider);\n if (!localFileHeader) {\n return null;\n }\n\n const compressedFile = await this.fileProvider.slice(\n localFileHeader.fileDataOffset,\n localFileHeader.fileDataOffset + localFileHeader.compressedSize\n );\n\n const compressionMethod = COMPRESSION_METHODS[localFileHeader.compressionMethod];\n if (!compressionMethod) {\n throw Error('Only Deflation compression is supported');\n }\n\n return compressionMethod(compressedFile);\n }\n}\n"],"mappings":"AACA,SAAQA,OAAO,QAAO,oBAAoB;AAC1C,SAAQC,kBAAkB,EAAEC,aAAa,QAAO,yBAAyB;AACzE,SAAQC,uBAAuB,QAAO,iBAAiB;AAOvD,MAAMC,mBAAwD,GAAG;EAE/D,CAAC,EAAGC,IAAI,IAAK,IAAIH,aAAa,CAAC,CAAC,CAACI,UAAU,CAACD,IAAI,CAAC;EAEjD,CAAC,EAAGA,IAAI,IAAK,IAAIJ,kBAAkB,CAAC;IAACM,GAAG,EAAE;EAAI,CAAC,CAAC,CAACD,UAAU,CAACD,IAAI;AAClE,CAAC;AAKD,OAAO,MAAMG,cAAc,CAAC;EAW1BC,WAAWA,CAACC,YAA0B,EAAEC,SAAiC,EAAE;IAAA,KATnED,YAAY;IAAA,KAEZC,SAAS;IAQf,IAAI,CAACD,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC5B;EAOA,MAAMC,OAAOA,CAACC,IAAY,EAAwB;IAGhD,IAAIR,IAAI,GAAG,MAAM,IAAI,CAACS,YAAY,CAACD,IAAI,CAACE,iBAAiB,CAAC,CAAC,CAAC;IAC5D,IAAI,CAACV,IAAI,EAAE;MACTA,IAAI,GAAG,MAAM,IAAI,CAACS,YAAY,CAACD,IAAI,CAAC;IACtC;IACA,IAAI,CAACR,IAAI,EAAE;MACT,MAAM,IAAIW,KAAK,CAAE,gCAA+BH,IAAK,EAAC,CAAC;IACzD;IAEA,OAAOR,IAAI;EACb;EAOA,MAAcS,YAAYA,CAACD,IAAY,EAA+B;IACpE,MAAMI,WAAW,GAAG,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACN,IAAI,CAAC,CAACO,MAAM;IACzD,MAAMC,QAAQ,GAAG,MAAM,IAAIrB,OAAO,CAAC,CAAC,CAACsB,IAAI,CAACL,WAAW,EAAE,KAAK,CAAC;IAC7D,MAAMM,UAAU,GAAG,IAAI,CAACZ,SAAS,CAACU,QAAQ,CAAC;IAC3C,IAAIE,UAAU,KAAKC,SAAS,EAAE;MAC5B,OAAO,IAAI;IACb;IAEA,MAAMC,eAAe,GAAG,MAAMtB,uBAAuB,CAACoB,UAAU,EAAE,IAAI,CAACb,YAAY,CAAC;IACpF,IAAI,CAACe,eAAe,EAAE;MACpB,OAAO,IAAI;IACb;IAEA,MAAMC,cAAc,GAAG,MAAM,IAAI,CAAChB,YAAY,CAACiB,KAAK,CAClDF,eAAe,CAACG,cAAc,EAC9BH,eAAe,CAACG,cAAc,GAAGH,eAAe,CAACI,cACnD,CAAC;IAED,MAAMC,iBAAiB,GAAG1B,mBAAmB,CAACqB,eAAe,CAACK,iBAAiB,CAAC;IAChF,IAAI,CAACA,iBAAiB,EAAE;MACtB,MAAMd,KAAK,CAAC,yCAAyC,CAAC;IACxD;IAEA,OAAOc,iBAAiB,CAACJ,cAAc,CAAC;EAC1C;AACF"}
1
+ {"version":3,"file":"3d-tiles-archive-archive.js","names":["MD5Hash","DeflateCompression","NoCompression","parseZipLocalFileHeader","COMPRESSION_METHODS","data","decompress","raw","Tiles3DArchive","constructor","fileProvider","hashTable","getFile","path","getFileBytes","toLocaleLowerCase","Error","arrayBuffer","TextEncoder","encode","buffer","nameHash","hash","byteOffset","undefined","localFileHeader","compressedFile","slice","fileDataOffset","compressedSize","compressionMethod"],"sources":["../../src/3d-tiles-archive/3d-tiles-archive-archive.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n\nimport {FileProvider} from '@loaders.gl/loader-utils';\nimport {MD5Hash} from '@loaders.gl/crypto';\nimport {DeflateCompression, NoCompression} from '@loaders.gl/compression';\nimport {parseZipLocalFileHeader} from '@loaders.gl/zip';\n\ntype CompressionHandler = (compressedFile: ArrayBuffer) => Promise<ArrayBuffer>;\n\n/**\n * Handling different compression types in zip\n */\nconst COMPRESSION_METHODS: {[key: number]: CompressionHandler} = {\n /** No compression */\n 0: (data) => new NoCompression().decompress(data),\n /** Deflation */\n 8: (data) => new DeflateCompression({raw: true}).decompress(data)\n};\n\n/**\n * Class for handling information about 3tz file\n */\nexport class Tiles3DArchive {\n /** FileProvider with whe whole file */\n private fileProvider: FileProvider;\n /** hash info */\n private hashTable: Record<string, bigint>;\n\n /**\n * creates Tiles3DArchive handler\n * @param fileProvider - FileProvider with the whole file\n * @param hashTable - hash info\n */\n constructor(fileProvider: FileProvider, hashTable: Record<string, bigint>) {\n this.fileProvider = fileProvider;\n this.hashTable = hashTable;\n }\n\n /**\n * Returns file with the given path from 3tz archive\n * @param path - path inside the 3tz\n * @returns buffer with ready to use file\n */\n async getFile(path: string): Promise<ArrayBuffer> {\n // sometimes paths are not in lower case when hash file is created,\n // so first we're looking for lower case file name and then for original one\n let data = await this.getFileBytes(path.toLocaleLowerCase());\n if (!data) {\n data = await this.getFileBytes(path);\n }\n if (!data) {\n throw new Error(`No such file in the archive: ${path}`);\n }\n\n return data;\n }\n\n /**\n * Trying to get raw file data by adress\n * @param path - path inside the archive\n * @returns buffer with the raw file data\n */\n private async getFileBytes(path: string): Promise<ArrayBuffer | null> {\n const arrayBuffer = new TextEncoder().encode(path).buffer;\n const nameHash = await new MD5Hash().hash(arrayBuffer, 'hex');\n const byteOffset = this.hashTable[nameHash];\n if (byteOffset === undefined) {\n return null;\n }\n\n const localFileHeader = await parseZipLocalFileHeader(byteOffset, this.fileProvider);\n if (!localFileHeader) {\n return null;\n }\n\n const compressedFile = await this.fileProvider.slice(\n localFileHeader.fileDataOffset,\n localFileHeader.fileDataOffset + localFileHeader.compressedSize\n );\n\n const compressionMethod = COMPRESSION_METHODS[localFileHeader.compressionMethod];\n if (!compressionMethod) {\n throw Error('Only Deflation compression is supported');\n }\n\n return compressionMethod(compressedFile);\n }\n}\n"],"mappings":"AAKA,SAAQA,OAAO,QAAO,oBAAoB;AAC1C,SAAQC,kBAAkB,EAAEC,aAAa,QAAO,yBAAyB;AACzE,SAAQC,uBAAuB,QAAO,iBAAiB;AAOvD,MAAMC,mBAAwD,GAAG;EAE/D,CAAC,EAAGC,IAAI,IAAK,IAAIH,aAAa,CAAC,CAAC,CAACI,UAAU,CAACD,IAAI,CAAC;EAEjD,CAAC,EAAGA,IAAI,IAAK,IAAIJ,kBAAkB,CAAC;IAACM,GAAG,EAAE;EAAI,CAAC,CAAC,CAACD,UAAU,CAACD,IAAI;AAClE,CAAC;AAKD,OAAO,MAAMG,cAAc,CAAC;EAW1BC,WAAWA,CAACC,YAA0B,EAAEC,SAAiC,EAAE;IAAA,KATnED,YAAY;IAAA,KAEZC,SAAS;IAQf,IAAI,CAACD,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC5B;EAOA,MAAMC,OAAOA,CAACC,IAAY,EAAwB;IAGhD,IAAIR,IAAI,GAAG,MAAM,IAAI,CAACS,YAAY,CAACD,IAAI,CAACE,iBAAiB,CAAC,CAAC,CAAC;IAC5D,IAAI,CAACV,IAAI,EAAE;MACTA,IAAI,GAAG,MAAM,IAAI,CAACS,YAAY,CAACD,IAAI,CAAC;IACtC;IACA,IAAI,CAACR,IAAI,EAAE;MACT,MAAM,IAAIW,KAAK,CAAE,gCAA+BH,IAAK,EAAC,CAAC;IACzD;IAEA,OAAOR,IAAI;EACb;EAOA,MAAcS,YAAYA,CAACD,IAAY,EAA+B;IACpE,MAAMI,WAAW,GAAG,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACN,IAAI,CAAC,CAACO,MAAM;IACzD,MAAMC,QAAQ,GAAG,MAAM,IAAIrB,OAAO,CAAC,CAAC,CAACsB,IAAI,CAACL,WAAW,EAAE,KAAK,CAAC;IAC7D,MAAMM,UAAU,GAAG,IAAI,CAACZ,SAAS,CAACU,QAAQ,CAAC;IAC3C,IAAIE,UAAU,KAAKC,SAAS,EAAE;MAC5B,OAAO,IAAI;IACb;IAEA,MAAMC,eAAe,GAAG,MAAMtB,uBAAuB,CAACoB,UAAU,EAAE,IAAI,CAACb,YAAY,CAAC;IACpF,IAAI,CAACe,eAAe,EAAE;MACpB,OAAO,IAAI;IACb;IAEA,MAAMC,cAAc,GAAG,MAAM,IAAI,CAAChB,YAAY,CAACiB,KAAK,CAClDF,eAAe,CAACG,cAAc,EAC9BH,eAAe,CAACG,cAAc,GAAGH,eAAe,CAACI,cACnD,CAAC;IAED,MAAMC,iBAAiB,GAAG1B,mBAAmB,CAACqB,eAAe,CAACK,iBAAiB,CAAC;IAChF,IAAI,CAACA,iBAAiB,EAAE;MACtB,MAAMd,KAAK,CAAC,yCAAyC,CAAC;IACxD;IAEA,OAAOc,iBAAiB,CAACJ,cAAc,CAAC;EAC1C;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"3d-tiles-archive-parser.d.ts","sourceRoot":"","sources":["../../src/3d-tiles-archive/3d-tiles-archive-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAStD,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,iBAChB,YAAY,cACf,MAAM,KAAK,IAAI,kBACzB,QAAQ,cAAc,CA+BxB,CAAC"}
1
+ {"version":3,"file":"3d-tiles-archive-parser.d.ts","sourceRoot":"","sources":["../../src/3d-tiles-archive/3d-tiles-archive-parser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAStD,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,iBAChB,YAAY,cACf,MAAM,KAAK,IAAI,kBACzB,QAAQ,cAAc,CA+BxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"3d-tiles-archive-parser.js","names":["CD_HEADER_SIGNATURE","makeHashTableFromZipHeaders","parseHashTable","parseZipCDFileHeader","parseZipLocalFileHeader","searchFromTheEnd","Tiles3DArchive","parse3DTilesArchive","fileProvider","cb","hashCDOffset","cdFileHeader","hashTable","fileName","localFileHeader","localHeaderOffset","Error","fileDataOffset","hashFile","slice","compressedSize"],"sources":["../../src/3d-tiles-archive/3d-tiles-archive-parser.ts"],"sourcesContent":["import {FileProvider} from '@loaders.gl/loader-utils';\nimport {\n CD_HEADER_SIGNATURE,\n makeHashTableFromZipHeaders,\n parseHashTable,\n parseZipCDFileHeader,\n parseZipLocalFileHeader,\n searchFromTheEnd\n} from '@loaders.gl/zip';\nimport {Tiles3DArchive} from './3d-tiles-archive-archive';\n\n/**\n * Creates 3tz file handler from raw file\n * @param fileProvider raw file data\n * @param cb is called with information message during parsing\n * @returns 3tz file handler\n */\nexport const parse3DTilesArchive = async (\n fileProvider: FileProvider,\n cb?: (msg: string) => void\n): Promise<Tiles3DArchive> => {\n const hashCDOffset = await searchFromTheEnd(fileProvider, CD_HEADER_SIGNATURE);\n\n const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);\n\n let hashTable: Record<string, bigint>;\n if (cdFileHeader?.fileName !== '@3dtilesIndex1@') {\n hashTable = await makeHashTableFromZipHeaders(fileProvider);\n cb?.(\n '3tz doesnt contain hash file, hash info has been composed according to zip archive headers'\n );\n } else {\n // cb?.('3tz contains hash file');\n const localFileHeader = await parseZipLocalFileHeader(\n cdFileHeader.localHeaderOffset,\n fileProvider\n );\n if (!localFileHeader) {\n throw new Error('corrupted 3tz zip archive');\n }\n\n const fileDataOffset = localFileHeader.fileDataOffset;\n const hashFile = await fileProvider.slice(\n fileDataOffset,\n fileDataOffset + localFileHeader.compressedSize\n );\n\n hashTable = parseHashTable(hashFile);\n }\n\n return new Tiles3DArchive(fileProvider, hashTable);\n};\n"],"mappings":"AACA,SACEA,mBAAmB,EACnBC,2BAA2B,EAC3BC,cAAc,EACdC,oBAAoB,EACpBC,uBAAuB,EACvBC,gBAAgB,QACX,iBAAiB;AAAC,SACjBC,cAAc;AAQtB,OAAO,MAAMC,mBAAmB,GAAG,MAAAA,CACjCC,YAA0B,EAC1BC,EAA0B,KACE;EAC5B,MAAMC,YAAY,GAAG,MAAML,gBAAgB,CAACG,YAAY,EAAER,mBAAmB,CAAC;EAE9E,MAAMW,YAAY,GAAG,MAAMR,oBAAoB,CAACO,YAAY,EAAEF,YAAY,CAAC;EAE3E,IAAII,SAAiC;EACrC,IAAI,CAAAD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEE,QAAQ,MAAK,iBAAiB,EAAE;IAChDD,SAAS,GAAG,MAAMX,2BAA2B,CAACO,YAAY,CAAC;IAC3DC,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CACA,4FACF,CAAC;EACH,CAAC,MAAM;IAEL,MAAMK,eAAe,GAAG,MAAMV,uBAAuB,CACnDO,YAAY,CAACI,iBAAiB,EAC9BP,YACF,CAAC;IACD,IAAI,CAACM,eAAe,EAAE;MACpB,MAAM,IAAIE,KAAK,CAAC,2BAA2B,CAAC;IAC9C;IAEA,MAAMC,cAAc,GAAGH,eAAe,CAACG,cAAc;IACrD,MAAMC,QAAQ,GAAG,MAAMV,YAAY,CAACW,KAAK,CACvCF,cAAc,EACdA,cAAc,GAAGH,eAAe,CAACM,cACnC,CAAC;IAEDR,SAAS,GAAGV,cAAc,CAACgB,QAAQ,CAAC;EACtC;EAEA,OAAO,IAAIZ,cAAc,CAACE,YAAY,EAAEI,SAAS,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"3d-tiles-archive-parser.js","names":["CD_HEADER_SIGNATURE","makeHashTableFromZipHeaders","parseHashTable","parseZipCDFileHeader","parseZipLocalFileHeader","searchFromTheEnd","Tiles3DArchive","parse3DTilesArchive","fileProvider","cb","hashCDOffset","cdFileHeader","hashTable","fileName","localFileHeader","localHeaderOffset","Error","fileDataOffset","hashFile","slice","compressedSize"],"sources":["../../src/3d-tiles-archive/3d-tiles-archive-parser.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n\nimport {FileProvider} from '@loaders.gl/loader-utils';\nimport {\n CD_HEADER_SIGNATURE,\n makeHashTableFromZipHeaders,\n parseHashTable,\n parseZipCDFileHeader,\n parseZipLocalFileHeader,\n searchFromTheEnd\n} from '@loaders.gl/zip';\nimport {Tiles3DArchive} from './3d-tiles-archive-archive';\n\n/**\n * Creates 3tz file handler from raw file\n * @param fileProvider raw file data\n * @param cb is called with information message during parsing\n * @returns 3tz file handler\n */\nexport const parse3DTilesArchive = async (\n fileProvider: FileProvider,\n cb?: (msg: string) => void\n): Promise<Tiles3DArchive> => {\n const hashCDOffset = await searchFromTheEnd(fileProvider, CD_HEADER_SIGNATURE);\n\n const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);\n\n let hashTable: Record<string, bigint>;\n if (cdFileHeader?.fileName !== '@3dtilesIndex1@') {\n hashTable = await makeHashTableFromZipHeaders(fileProvider);\n cb?.(\n '3tz doesnt contain hash file, hash info has been composed according to zip archive headers'\n );\n } else {\n // cb?.('3tz contains hash file');\n const localFileHeader = await parseZipLocalFileHeader(\n cdFileHeader.localHeaderOffset,\n fileProvider\n );\n if (!localFileHeader) {\n throw new Error('corrupted 3tz zip archive');\n }\n\n const fileDataOffset = localFileHeader.fileDataOffset;\n const hashFile = await fileProvider.slice(\n fileDataOffset,\n fileDataOffset + localFileHeader.compressedSize\n );\n\n hashTable = parseHashTable(hashFile);\n }\n\n return new Tiles3DArchive(fileProvider, hashTable);\n};\n"],"mappings":"AAKA,SACEA,mBAAmB,EACnBC,2BAA2B,EAC3BC,cAAc,EACdC,oBAAoB,EACpBC,uBAAuB,EACvBC,gBAAgB,QACX,iBAAiB;AAAC,SACjBC,cAAc;AAQtB,OAAO,MAAMC,mBAAmB,GAAG,MAAAA,CACjCC,YAA0B,EAC1BC,EAA0B,KACE;EAC5B,MAAMC,YAAY,GAAG,MAAML,gBAAgB,CAACG,YAAY,EAAER,mBAAmB,CAAC;EAE9E,MAAMW,YAAY,GAAG,MAAMR,oBAAoB,CAACO,YAAY,EAAEF,YAAY,CAAC;EAE3E,IAAII,SAAiC;EACrC,IAAI,CAAAD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEE,QAAQ,MAAK,iBAAiB,EAAE;IAChDD,SAAS,GAAG,MAAMX,2BAA2B,CAACO,YAAY,CAAC;IAC3DC,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CACA,4FACF,CAAC;EACH,CAAC,MAAM;IAEL,MAAMK,eAAe,GAAG,MAAMV,uBAAuB,CACnDO,YAAY,CAACI,iBAAiB,EAC9BP,YACF,CAAC;IACD,IAAI,CAACM,eAAe,EAAE;MACpB,MAAM,IAAIE,KAAK,CAAC,2BAA2B,CAAC;IAC9C;IAEA,MAAMC,cAAc,GAAGH,eAAe,CAACG,cAAc;IACrD,MAAMC,QAAQ,GAAG,MAAMV,YAAY,CAACW,KAAK,CACvCF,cAAc,EACdA,cAAc,GAAGH,eAAe,CAACM,cACnC,CAAC;IAEDR,SAAS,GAAGV,cAAc,CAACgB,QAAQ,CAAC;EACtC;EAEA,OAAO,IAAIZ,cAAc,CAACE,YAAY,EAAEI,SAAS,CAAC;AACpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"3d-tiles-archive-loader.d.ts","sourceRoot":"","sources":["../src/3d-tiles-archive-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAQ9E,oCAAoC;AACpC,MAAM,MAAM,+BAA+B,GAAG,aAAa,GAAG;IAC5D,kBAAkB,CAAC,EAAE;QACnB,kCAAkC;QAClC,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,CACrD,WAAW,EACX,KAAK,EACL,+BAA+B,CAUhC,CAAC"}
1
+ {"version":3,"file":"3d-tiles-archive-loader.d.ts","sourceRoot":"","sources":["../src/3d-tiles-archive-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAQ9E,oCAAoC;AACpC,MAAM,MAAM,+BAA+B,GAAG,aAAa,GAAG;IAC5D,kBAAkB,CAAC,EAAE;QACnB,kCAAkC;QAClC,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,CACrD,WAAW,EACX,KAAK,EACL,+BAA+B,CAUhC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { DataViewFile } from '@loaders.gl/loader-utils';
2
2
  import { parse3DTilesArchive as parse3DTilesArchiveFromProvider } from "./3d-tiles-archive/3d-tiles-archive-parser.js";
3
- const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
3
+ const VERSION = typeof "4.1.0-alpha.11" !== 'undefined' ? "4.1.0-alpha.11" : 'latest';
4
4
  export const Tiles3DArchiveFileLoader = {
5
5
  name: '3tz',
6
6
  id: '3tz',
@@ -1 +1 @@
1
- {"version":3,"file":"3d-tiles-archive-loader.js","names":["DataViewFile","parse3DTilesArchive","parse3DTilesArchiveFromProvider","VERSION","__VERSION__","Tiles3DArchiveFileLoader","name","id","module","version","mimeTypes","parse","extensions","options","data","_options$3dTilesArc","_options$3dTilesArc2","arguments","length","undefined","archive","DataView","getFile","path"],"sources":["../src/3d-tiles-archive-loader.ts"],"sourcesContent":["import type {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {DataViewFile} from '@loaders.gl/loader-utils';\nimport {parse3DTilesArchive as parse3DTilesArchiveFromProvider} from './3d-tiles-archive/3d-tiles-archive-parser';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/** options to load data from 3tz */\nexport type Tiles3DArchiveFileLoaderOptions = LoaderOptions & {\n '3d-tiles-archive'?: {\n /** path inside the 3tz archive */\n path?: string;\n };\n};\n\n/**\n * Loader for 3tz packages\n */\nexport const Tiles3DArchiveFileLoader: LoaderWithParser<\n ArrayBuffer,\n never,\n Tiles3DArchiveFileLoaderOptions\n> = {\n name: '3tz',\n id: '3tz',\n module: '3d-tiles',\n version: VERSION,\n mimeTypes: ['application/octet-stream', 'application/vnd.maxar.archive.3tz+zip'],\n parse: parse3DTilesArchive,\n extensions: ['3tz'],\n options: {}\n};\n\n/**\n * returns a single file from the 3tz archive\n * @param data 3tz archive data\n * @param options options\n * @returns requested file\n */\nasync function parse3DTilesArchive(\n data: ArrayBuffer,\n options: Tiles3DArchiveFileLoaderOptions = {}\n): Promise<ArrayBuffer> {\n const archive = await parse3DTilesArchiveFromProvider(new DataViewFile(new DataView(data)));\n return archive.getFile(options['3d-tiles-archive']?.path ?? '');\n}\n"],"mappings":"AACA,SAAQA,YAAY,QAAO,0BAA0B;AAAC,SAC9CC,mBAAmB,IAAIC,+BAA+B;AAI9D,MAAMC,OAAO,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAGA,WAAW,GAAG,QAAQ;AAa3E,OAAO,MAAMC,wBAIZ,GAAG;EACFC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEN,OAAO;EAChBO,SAAS,EAAE,CAAC,0BAA0B,EAAE,uCAAuC,CAAC;EAChFC,KAAK,EAAEV,mBAAmB;EAC1BW,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,OAAO,EAAE,CAAC;AACZ,CAAC;AAQD,eAAeZ,mBAAmBA,CAChCa,IAAiB,EAEK;EAAA,IAAAC,mBAAA,EAAAC,oBAAA;EAAA,IADtBH,OAAwC,GAAAI,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAE7C,MAAMG,OAAO,GAAG,MAAMlB,+BAA+B,CAAC,IAAIF,YAAY,CAAC,IAAIqB,QAAQ,CAACP,IAAI,CAAC,CAAC,CAAC;EAC3F,OAAOM,OAAO,CAACE,OAAO,EAAAP,mBAAA,IAAAC,oBAAA,GAACH,OAAO,CAAC,kBAAkB,CAAC,cAAAG,oBAAA,uBAA3BA,oBAAA,CAA6BO,IAAI,cAAAR,mBAAA,cAAAA,mBAAA,GAAI,EAAE,CAAC;AACjE"}
1
+ {"version":3,"file":"3d-tiles-archive-loader.js","names":["DataViewFile","parse3DTilesArchive","parse3DTilesArchiveFromProvider","VERSION","Tiles3DArchiveFileLoader","name","id","module","version","mimeTypes","parse","extensions","options","data","_options$3dTilesArc","_options$3dTilesArc2","arguments","length","undefined","archive","DataView","getFile","path"],"sources":["../src/3d-tiles-archive-loader.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n\nimport type {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {DataViewFile} from '@loaders.gl/loader-utils';\nimport {parse3DTilesArchive as parse3DTilesArchiveFromProvider} from './3d-tiles-archive/3d-tiles-archive-parser';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/** options to load data from 3tz */\nexport type Tiles3DArchiveFileLoaderOptions = LoaderOptions & {\n '3d-tiles-archive'?: {\n /** path inside the 3tz archive */\n path?: string;\n };\n};\n\n/**\n * Loader for 3tz packages\n */\nexport const Tiles3DArchiveFileLoader: LoaderWithParser<\n ArrayBuffer,\n never,\n Tiles3DArchiveFileLoaderOptions\n> = {\n name: '3tz',\n id: '3tz',\n module: '3d-tiles',\n version: VERSION,\n mimeTypes: ['application/octet-stream', 'application/vnd.maxar.archive.3tz+zip'],\n parse: parse3DTilesArchive,\n extensions: ['3tz'],\n options: {}\n};\n\n/**\n * returns a single file from the 3tz archive\n * @param data 3tz archive data\n * @param options options\n * @returns requested file\n */\nasync function parse3DTilesArchive(\n data: ArrayBuffer,\n options: Tiles3DArchiveFileLoaderOptions = {}\n): Promise<ArrayBuffer> {\n const archive = await parse3DTilesArchiveFromProvider(new DataViewFile(new DataView(data)));\n return archive.getFile(options['3d-tiles-archive']?.path ?? '');\n}\n"],"mappings":"AAKA,SAAQA,YAAY,QAAO,0BAA0B;AAAC,SAC9CC,mBAAmB,IAAIC,+BAA+B;AAI9D,MAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAa3E,OAAO,MAAMC,wBAIZ,GAAG;EACFC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEL,OAAO;EAChBM,SAAS,EAAE,CAAC,0BAA0B,EAAE,uCAAuC,CAAC;EAChFC,KAAK,EAAET,mBAAmB;EAC1BU,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,OAAO,EAAE,CAAC;AACZ,CAAC;AAQD,eAAeX,mBAAmBA,CAChCY,IAAiB,EAEK;EAAA,IAAAC,mBAAA,EAAAC,oBAAA;EAAA,IADtBH,OAAwC,GAAAI,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAE7C,MAAMG,OAAO,GAAG,MAAMjB,+BAA+B,CAAC,IAAIF,YAAY,CAAC,IAAIoB,QAAQ,CAACP,IAAI,CAAC,CAAC,CAAC;EAC3F,OAAOM,OAAO,CAACE,OAAO,EAAAP,mBAAA,IAAAC,oBAAA,GAACH,OAAO,CAAC,kBAAkB,CAAC,cAAAG,oBAAA,uBAA3BA,oBAAA,CAA6BO,IAAI,cAAAR,mBAAA,cAAAA,mBAAA,GAAI,EAAE,CAAC;AACjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"cesium-ion-loader.d.ts","sourceRoot":"","sources":["../src/cesium-ion-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAiB9E;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAmB3E,CAAC"}
1
+ {"version":3,"file":"cesium-ion-loader.d.ts","sourceRoot":"","sources":["../src/cesium-ion-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAiB9E;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAmB3E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cesium-ion-loader.js","names":["Tiles3DLoader","getIonTilesetMetadata","preload","url","options","arguments","length","undefined","accessToken","assetId","Number","isFinite","matched","match","CesiumIonLoader","id","name","parse","data","context","loader"],"sources":["../src/cesium-ion-loader.ts"],"sourcesContent":["import type {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {Tiles3DLoader} from './tiles-3d-loader';\nimport {getIonTilesetMetadata} from './lib/ion/ion';\n\nasync function preload(url, options = {}) {\n options = options['cesium-ion'] || {};\n // @ts-ignore\n const {accessToken} = options;\n // @ts-ignore\n let assetId = options.assetId;\n if (!Number.isFinite(assetId)) {\n const matched = url.match(/\\/([0-9]+)\\/tileset.json/);\n assetId = matched && matched[1];\n }\n return getIonTilesetMetadata(accessToken, assetId);\n}\n\n/**\n * Loader for 3D tiles from Cesium ION\n */\nexport const CesiumIonLoader: LoaderWithParser<unknown, never, LoaderOptions> = {\n ...Tiles3DLoader,\n id: 'cesium-ion',\n name: 'Cesium Ion',\n // @ts-ignore\n preload,\n parse: async (data, options?, context?) => {\n options = {...options};\n options['3d-tiles'] = options['cesium-ion'];\n // @ts-ignore\n options.loader = CesiumIonLoader;\n return Tiles3DLoader.parse(data, options, context); // , loader);\n },\n options: {\n 'cesium-ion': {\n ...Tiles3DLoader.options['3d-tiles'],\n accessToken: null\n }\n }\n};\n"],"mappings":"SACQA,aAAa;AAAA,SACbC,qBAAqB;AAE7B,eAAeC,OAAOA,CAACC,GAAG,EAAgB;EAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACtCD,OAAO,GAAGA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;EAErC,MAAM;IAACI;EAAW,CAAC,GAAGJ,OAAO;EAE7B,IAAIK,OAAO,GAAGL,OAAO,CAACK,OAAO;EAC7B,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,OAAO,CAAC,EAAE;IAC7B,MAAMG,OAAO,GAAGT,GAAG,CAACU,KAAK,CAAC,0BAA0B,CAAC;IACrDJ,OAAO,GAAGG,OAAO,IAAIA,OAAO,CAAC,CAAC,CAAC;EACjC;EACA,OAAOX,qBAAqB,CAACO,WAAW,EAAEC,OAAO,CAAC;AACpD;AAKA,OAAO,MAAMK,eAAgE,GAAG;EAC9E,GAAGd,aAAa;EAChBe,EAAE,EAAE,YAAY;EAChBC,IAAI,EAAE,YAAY;EAElBd,OAAO;EACPe,KAAK,EAAE,MAAAA,CAAOC,IAAI,EAAEd,OAAQ,EAAEe,OAAQ,KAAK;IACzCf,OAAO,GAAG;MAAC,GAAGA;IAAO,CAAC;IACtBA,OAAO,CAAC,UAAU,CAAC,GAAGA,OAAO,CAAC,YAAY,CAAC;IAE3CA,OAAO,CAACgB,MAAM,GAAGN,eAAe;IAChC,OAAOd,aAAa,CAACiB,KAAK,CAACC,IAAI,EAAEd,OAAO,EAAEe,OAAO,CAAC;EACpD,CAAC;EACDf,OAAO,EAAE;IACP,YAAY,EAAE;MACZ,GAAGJ,aAAa,CAACI,OAAO,CAAC,UAAU,CAAC;MACpCI,WAAW,EAAE;IACf;EACF;AACF,CAAC"}
1
+ {"version":3,"file":"cesium-ion-loader.js","names":["Tiles3DLoader","getIonTilesetMetadata","preload","url","options","arguments","length","undefined","accessToken","assetId","Number","isFinite","matched","match","CesiumIonLoader","id","name","parse","data","context","loader"],"sources":["../src/cesium-ion-loader.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n\nimport type {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {Tiles3DLoader} from './tiles-3d-loader';\nimport {getIonTilesetMetadata} from './lib/ion/ion';\n\nasync function preload(url, options = {}) {\n options = options['cesium-ion'] || {};\n // @ts-ignore\n const {accessToken} = options;\n // @ts-ignore\n let assetId = options.assetId;\n if (!Number.isFinite(assetId)) {\n const matched = url.match(/\\/([0-9]+)\\/tileset.json/);\n assetId = matched && matched[1];\n }\n return getIonTilesetMetadata(accessToken, assetId);\n}\n\n/**\n * Loader for 3D tiles from Cesium ION\n */\nexport const CesiumIonLoader: LoaderWithParser<unknown, never, LoaderOptions> = {\n ...Tiles3DLoader,\n id: 'cesium-ion',\n name: 'Cesium Ion',\n // @ts-ignore\n preload,\n parse: async (data, options?, context?) => {\n options = {...options};\n options['3d-tiles'] = options['cesium-ion'];\n // @ts-ignore\n options.loader = CesiumIonLoader;\n return Tiles3DLoader.parse(data, options, context); // , loader);\n },\n options: {\n 'cesium-ion': {\n ...Tiles3DLoader.options['3d-tiles'],\n accessToken: null\n }\n }\n};\n"],"mappings":"SAKQA,aAAa;AAAA,SACbC,qBAAqB;AAE7B,eAAeC,OAAOA,CAACC,GAAG,EAAgB;EAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACtCD,OAAO,GAAGA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;EAErC,MAAM;IAACI;EAAW,CAAC,GAAGJ,OAAO;EAE7B,IAAIK,OAAO,GAAGL,OAAO,CAACK,OAAO;EAC7B,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,OAAO,CAAC,EAAE;IAC7B,MAAMG,OAAO,GAAGT,GAAG,CAACU,KAAK,CAAC,0BAA0B,CAAC;IACrDJ,OAAO,GAAGG,OAAO,IAAIA,OAAO,CAAC,CAAC,CAAC;EACjC;EACA,OAAOX,qBAAqB,CAACO,WAAW,EAAEC,OAAO,CAAC;AACpD;AAKA,OAAO,MAAMK,eAAgE,GAAG;EAC9E,GAAGd,aAAa;EAChBe,EAAE,EAAE,YAAY;EAChBC,IAAI,EAAE,YAAY;EAElBd,OAAO;EACPe,KAAK,EAAE,MAAAA,CAAOC,IAAI,EAAEd,OAAQ,EAAEe,OAAQ,KAAK;IACzCf,OAAO,GAAG;MAAC,GAAGA;IAAO,CAAC;IACtBA,OAAO,CAAC,UAAU,CAAC,GAAGA,OAAO,CAAC,YAAY,CAAC;IAE3CA,OAAO,CAACgB,MAAM,GAAGN,eAAe;IAChC,OAAOd,aAAa,CAACiB,KAAK,CAACC,IAAI,EAAEd,OAAO,EAAEe,OAAO,CAAC;EACpD,CAAC;EACDf,OAAO,EAAE;IACP,YAAY,EAAE;MACZ,GAAGJ,aAAa,CAACI,OAAO,CAAC,UAAU,CAAC;MACpCI,WAAW,EAAE;IACf;EACF;AACF,CAAC"}
package/dist/dist.dev.js CHANGED
@@ -4302,15 +4302,14 @@ var __exports__ = (() => {
4302
4302
  var nodeVersion = matches && parseFloat(matches[1]) || 0;
4303
4303
 
4304
4304
  // ../worker-utils/src/lib/env-utils/version.ts
4305
- var NPM_TAG = "latest";
4306
4305
  function getVersion() {
4307
4306
  if (!globalThis._loadersgl_?.version) {
4308
4307
  globalThis._loadersgl_ = globalThis._loadersgl_ || {};
4309
- if (typeof __VERSION__ === "undefined") {
4308
+ if (false) {
4310
4309
  console.warn("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
4311
4310
  globalThis._loadersgl_.version = NPM_TAG;
4312
4311
  } else {
4313
- globalThis._loadersgl_.version = __VERSION__;
4312
+ globalThis._loadersgl_.version = "4.1.0-alpha.11";
4314
4313
  }
4315
4314
  }
4316
4315
  return globalThis._loadersgl_.version;
@@ -4472,6 +4471,9 @@ var __exports__ = (() => {
4472
4471
  return true;
4473
4472
  }
4474
4473
  function concatenateArrayBuffers(...sources) {
4474
+ return concatenateArrayBuffersFromArray(sources);
4475
+ }
4476
+ function concatenateArrayBuffersFromArray(sources) {
4475
4477
  const sourceArrays = sources.map((source2) => source2 instanceof ArrayBuffer ? new Uint8Array(source2) : source2);
4476
4478
  const byteLength = sourceArrays.reduce((length4, typedArray) => length4 + typedArray.byteLength, 0);
4477
4479
  const result = new Uint8Array(byteLength);
@@ -4815,6 +4817,12 @@ var __exports__ = (() => {
4815
4817
  async stat() {
4816
4818
  throw NOT_IMPLEMENTED;
4817
4819
  }
4820
+ async truncate(length4) {
4821
+ throw NOT_IMPLEMENTED;
4822
+ }
4823
+ async append(data) {
4824
+ throw NOT_IMPLEMENTED;
4825
+ }
4818
4826
  async close() {
4819
4827
  }
4820
4828
  };
@@ -4826,9 +4834,14 @@ var __exports__ = (() => {
4826
4834
 
4827
4835
  // ../loader-utils/src/lib/file-provider/file-handle-file.ts
4828
4836
  var FileHandleFile = class {
4829
- constructor(path) {
4830
- this.file = new NodeFileFacade(path, "r");
4831
- this.size = this.file.bigsize;
4837
+ constructor(path, append = false) {
4838
+ this.file = new NodeFileFacade(path, append ? "a+" : "r");
4839
+ }
4840
+ async truncate(length4) {
4841
+ await this.file.truncate(length4);
4842
+ }
4843
+ async append(buffer) {
4844
+ await this.file.append(buffer);
4832
4845
  }
4833
4846
  async destroy() {
4834
4847
  await this.file.close();
@@ -4874,7 +4887,7 @@ var __exports__ = (() => {
4874
4887
  return await this.file.read(startOffset, length4);
4875
4888
  }
4876
4889
  get length() {
4877
- return this.size;
4890
+ return this.file.bigsize;
4878
4891
  }
4879
4892
  };
4880
4893
 
@@ -10073,7 +10086,7 @@ var __exports__ = (() => {
10073
10086
  }({});
10074
10087
 
10075
10088
  // src/lib/utils/version.ts
10076
- var VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
10089
+ var VERSION2 = true ? "4.1.0-alpha.11" : "latest";
10077
10090
 
10078
10091
  // src/lib/constants.ts
10079
10092
  var TILE3D_TYPE = {
@@ -10107,7 +10120,7 @@ var __exports__ = (() => {
10107
10120
  }
10108
10121
 
10109
10122
  // ../draco/src/lib/utils/version.ts
10110
- var VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
10123
+ var VERSION3 = true ? "4.1.0-alpha.11" : "latest";
10111
10124
 
10112
10125
  // ../draco/src/draco-loader.ts
10113
10126
  var DracoLoader = {
@@ -11809,7 +11822,7 @@ var __exports__ = (() => {
11809
11822
  });
11810
11823
 
11811
11824
  // ../images/src/lib/utils/version.ts
11812
- var VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
11825
+ var VERSION4 = true ? "4.1.0-alpha.11" : "latest";
11813
11826
 
11814
11827
  // ../images/src/lib/category-api/image-type.ts
11815
11828
  var parseImageNode = globalThis.loaders?.parseImageNode;
@@ -13518,10 +13531,10 @@ var __exports__ = (() => {
13518
13531
  }
13519
13532
 
13520
13533
  // ../gltf/src/lib/utils/version.ts
13521
- var VERSION5 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
13534
+ var VERSION5 = true ? "4.1.0-alpha.11" : "latest";
13522
13535
 
13523
13536
  // ../textures/src/lib/utils/version.ts
13524
- var VERSION6 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
13537
+ var VERSION6 = true ? "4.1.0-alpha.11" : "latest";
13525
13538
 
13526
13539
  // ../textures/src/lib/parsers/basis-module-loader.ts
13527
13540
  var BASIS_EXTERNAL_LIBRARIES = {
@@ -15906,7 +15919,8 @@ var __exports__ = (() => {
15906
15919
  availabilityObject.explicitBitstream = new Uint8Array(data, bufferView.byteOffset, bufferView.byteLength);
15907
15920
  return;
15908
15921
  }
15909
- availabilityObject.explicitBitstream = new Uint8Array(internalBinaryBuffer, bufferView.byteOffset, bufferView.byteLength);
15922
+ const bufferStart = subtree.buffers.slice(0, bufferView.buffer).reduce((offset, buf) => offset + buf.byteLength, 0);
15923
+ availabilityObject.explicitBitstream = new Uint8Array(internalBinaryBuffer.slice(bufferStart, bufferStart + buffer.byteLength), bufferView.byteOffset, bufferView.byteLength);
15910
15924
  }
15911
15925
  function parseUint64Value(buffer) {
15912
15926
  const dataView = new DataView(buffer);
@@ -17658,11 +17672,11 @@ var __exports__ = (() => {
17658
17672
  }
17659
17673
 
17660
17674
  // src/lib/parsers/helpers/parse-3d-implicit-tiles.ts
17661
- var QUADTREE_DEVISION_COUNT = 4;
17662
- var OCTREE_DEVISION_COUNT = 8;
17675
+ var QUADTREE_DIVISION_COUNT = 4;
17676
+ var OCTREE_DIVISION_COUNT = 8;
17663
17677
  var SUBDIVISION_COUNT_MAP = {
17664
- QUADTREE: QUADTREE_DEVISION_COUNT,
17665
- OCTREE: OCTREE_DEVISION_COUNT
17678
+ QUADTREE: QUADTREE_DIVISION_COUNT,
17679
+ OCTREE: OCTREE_DIVISION_COUNT
17666
17680
  };
17667
17681
  function getChildS2VolumeBox(s2VolumeBox, index, subdivisionScheme) {
17668
17682
  if (s2VolumeBox?.box) {
@@ -17704,19 +17718,19 @@ var __exports__ = (() => {
17704
17718
  z: 0
17705
17719
  },
17706
17720
  childIndex = 0,
17721
+ s2VolumeBox,
17722
+ loaderOptions
17723
+ } = params;
17724
+ let {
17725
+ subtree,
17726
+ level = 0,
17707
17727
  globalData = {
17708
17728
  level: 0,
17709
17729
  mortonIndex: 0,
17710
17730
  x: 0,
17711
17731
  y: 0,
17712
17732
  z: 0
17713
- },
17714
- s2VolumeBox,
17715
- loaderOptions
17716
- } = params;
17717
- let {
17718
- subtree,
17719
- level = 0
17733
+ }
17720
17734
  } = params;
17721
17735
  const {
17722
17736
  subdivisionScheme,
@@ -17754,19 +17768,21 @@ var __exports__ = (() => {
17754
17768
  if (level >= subtreeLevels) {
17755
17769
  isChildSubtreeAvailable = getAvailabilityResult(subtree.childSubtreeAvailability, childTileMortonIndex);
17756
17770
  }
17757
- const x = concatBits(globalData.x, childTileX, level * bitsPerTile);
17758
- const y = concatBits(globalData.y, childTileY, level * bitsPerTile);
17759
- const z = concatBits(globalData.z, childTileZ, level * bitsPerTile);
17771
+ const x = concatBits(globalData.x, childTileX, level);
17772
+ const y = concatBits(globalData.y, childTileY, level);
17773
+ const z = concatBits(globalData.z, childTileZ, level);
17760
17774
  if (isChildSubtreeAvailable) {
17761
17775
  const subtreePath = `${basePath}/${subtreesUriTemplate}`;
17762
17776
  const childSubtreeUrl = replaceContentUrlTemplate(subtreePath, lev, x, y, z);
17763
17777
  const childSubtree = await (0, import_core22.load)(childSubtreeUrl, Tile3DSubtreeLoader, loaderOptions);
17764
17778
  subtree = childSubtree;
17765
- globalData.mortonIndex = childTileMortonIndex;
17766
- globalData.x = childTileX;
17767
- globalData.y = childTileY;
17768
- globalData.z = childTileZ;
17769
- globalData.level = level;
17779
+ globalData = {
17780
+ mortonIndex: childTileMortonIndex,
17781
+ x: childTileX,
17782
+ y: childTileY,
17783
+ z: childTileZ,
17784
+ level
17785
+ };
17770
17786
  childTileMortonIndex = 0;
17771
17787
  tileAvailabilityIndex = 0;
17772
17788
  childTileX = 0;
@@ -17947,7 +17963,7 @@ var __exports__ = (() => {
17947
17963
  return refine;
17948
17964
  }
17949
17965
  }
17950
- function resolveUri(uri = "", basePath) {
17966
+ function resolveUri(uri, basePath) {
17951
17967
  const urlSchemeRegex = /^[a-z][0-9a-z+.-]*:/i;
17952
17968
  if (urlSchemeRegex.test(basePath)) {
17953
17969
  const url = new URL(uri, `${basePath}/`);
@@ -17964,7 +17980,9 @@ var __exports__ = (() => {
17964
17980
  let tileContentUrl;
17965
17981
  if (tile.content) {
17966
17982
  const contentUri = tile.content.uri || tile.content?.url;
17967
- tileContentUrl = resolveUri(contentUri, basePath);
17983
+ if (typeof contentUri !== "undefined") {
17984
+ tileContentUrl = resolveUri(contentUri, basePath);
17985
+ }
17968
17986
  }
17969
17987
  const tilePostprocessed = {
17970
17988
  ...tile,
@@ -18022,7 +18040,8 @@ var __exports__ = (() => {
18022
18040
  const replacedUrlTemplate = replaceContentUrlTemplate(subtreesUriTemplate, 0, 0, 0, 0);
18023
18041
  const subtreeUrl = resolveUri(replacedUrlTemplate, basePath);
18024
18042
  const subtree = await (0, import_core23.load)(subtreeUrl, Tile3DSubtreeLoader, options);
18025
- const contentUrlTemplate = resolveUri(tile.content?.uri, basePath);
18043
+ const tileContentUri = tile.content?.uri;
18044
+ const contentUrlTemplate = tileContentUri ? resolveUri(tileContentUri, basePath) : "";
18026
18045
  const refine = tileset?.root?.refine;
18027
18046
  const rootLodMetricValue = tile.geometricError;
18028
18047
  const s2VolumeInfo = tile.boundingVolume.extensions?.["3DTILES_bounding_volume_S2"];
@@ -18280,25 +18299,121 @@ var __exports__ = (() => {
18280
18299
  const zipEoCDOffset = await searchFromTheEnd(file, eoCDSignature);
18281
18300
  let cdRecordsNumber = BigInt(await file.getUint16(zipEoCDOffset + CD_RECORDS_NUMBER_OFFSET));
18282
18301
  let cdStartOffset = BigInt(await file.getUint32(zipEoCDOffset + CD_START_OFFSET_OFFSET));
18283
- if (cdStartOffset === BigInt(4294967295) || cdRecordsNumber === BigInt(4294967295)) {
18284
- const zip64EoCDLocatorOffset = zipEoCDOffset - 20n;
18285
- const magicBytes = await file.slice(zip64EoCDLocatorOffset, zip64EoCDLocatorOffset + 4n);
18286
- if (!compareArrayBuffers(magicBytes, zip64EoCDLocatorSignature)) {
18287
- throw new Error("zip64 EoCD locator not found");
18288
- }
18289
- const zip64EoCDOffset = await file.getBigUint64(zip64EoCDLocatorOffset + ZIP64_EOCD_START_OFFSET_OFFSET);
18302
+ let zip64EoCDLocatorOffset = zipEoCDOffset - 20n;
18303
+ let zip64EoCDOffset = 0n;
18304
+ const magicBytes = await file.slice(zip64EoCDLocatorOffset, zip64EoCDLocatorOffset + 4n);
18305
+ if (compareArrayBuffers(magicBytes, zip64EoCDLocatorSignature)) {
18306
+ zip64EoCDOffset = await file.getBigUint64(zip64EoCDLocatorOffset + ZIP64_EOCD_START_OFFSET_OFFSET);
18290
18307
  const endOfCDMagicBytes = await file.slice(zip64EoCDOffset, zip64EoCDOffset + 4n);
18291
18308
  if (!compareArrayBuffers(endOfCDMagicBytes, zip64EoCDSignature.buffer)) {
18292
18309
  throw new Error("zip64 EoCD not found");
18293
18310
  }
18294
18311
  cdRecordsNumber = await file.getBigUint64(zip64EoCDOffset + ZIP64_CD_RECORDS_NUMBER_OFFSET);
18295
18312
  cdStartOffset = await file.getBigUint64(zip64EoCDOffset + ZIP64_CD_START_OFFSET_OFFSET);
18313
+ } else {
18314
+ zip64EoCDLocatorOffset = 0n;
18296
18315
  }
18297
18316
  return {
18298
18317
  cdRecordsNumber,
18299
- cdStartOffset
18318
+ cdStartOffset,
18319
+ offsets: {
18320
+ zip64EoCDOffset,
18321
+ zip64EoCDLocatorOffset,
18322
+ zipEoCDOffset
18323
+ }
18300
18324
  };
18301
18325
  };
18326
+ var EOCD_FIELDS = [{
18327
+ offset: 0,
18328
+ size: 4,
18329
+ default: new DataView(eoCDSignature.buffer).getUint32(0, true)
18330
+ }, {
18331
+ offset: 4,
18332
+ size: 2,
18333
+ default: 0
18334
+ }, {
18335
+ offset: 6,
18336
+ size: 2,
18337
+ default: 0
18338
+ }, {
18339
+ offset: 8,
18340
+ size: 2,
18341
+ name: "recordsNumber"
18342
+ }, {
18343
+ offset: 10,
18344
+ size: 2,
18345
+ name: "recordsNumber"
18346
+ }, {
18347
+ offset: 12,
18348
+ size: 4,
18349
+ name: "cdSize"
18350
+ }, {
18351
+ offset: 16,
18352
+ size: 4,
18353
+ name: "cdOffset"
18354
+ }, {
18355
+ offset: 20,
18356
+ size: 2,
18357
+ default: 0
18358
+ }];
18359
+ var ZIP64_EOCD_LOCATOR_FIELDS = [{
18360
+ offset: 0,
18361
+ size: 4,
18362
+ default: new DataView(zip64EoCDLocatorSignature.buffer).getUint32(0, true)
18363
+ }, {
18364
+ offset: 4,
18365
+ size: 4,
18366
+ default: 0
18367
+ }, {
18368
+ offset: 8,
18369
+ size: 8,
18370
+ name: "eoCDStart"
18371
+ }, {
18372
+ offset: 16,
18373
+ size: 4,
18374
+ default: 1
18375
+ }];
18376
+ var ZIP64_EOCD_FIELDS = [{
18377
+ offset: 0,
18378
+ size: 4,
18379
+ default: new DataView(zip64EoCDSignature.buffer).getUint32(0, true)
18380
+ }, {
18381
+ offset: 4,
18382
+ size: 8,
18383
+ default: 44
18384
+ }, {
18385
+ offset: 12,
18386
+ size: 2,
18387
+ default: 45
18388
+ }, {
18389
+ offset: 14,
18390
+ size: 2,
18391
+ default: 45
18392
+ }, {
18393
+ offset: 16,
18394
+ size: 4,
18395
+ default: 0
18396
+ }, {
18397
+ offset: 20,
18398
+ size: 4,
18399
+ default: 0
18400
+ }, {
18401
+ offset: 24,
18402
+ size: 8,
18403
+ name: "recordsNumber"
18404
+ }, {
18405
+ offset: 32,
18406
+ size: 8,
18407
+ name: "recordsNumber"
18408
+ }, {
18409
+ offset: 40,
18410
+ size: 8,
18411
+ name: "cdSize"
18412
+ }, {
18413
+ offset: 48,
18414
+ size: 8,
18415
+ name: "cdOffset"
18416
+ }];
18302
18417
 
18303
18418
  // ../zip/src/parse-zip/cd-file-header.ts
18304
18419
  var CD_COMPRESSED_SIZE_OFFSET = 20n;
@@ -18510,6 +18625,52 @@ var __exports__ = (() => {
18510
18625
  compressionMethod
18511
18626
  };
18512
18627
  };
18628
+ var ZIP_HEADER_FIELDS2 = [{
18629
+ offset: 0,
18630
+ size: 4,
18631
+ default: new DataView(signature2.buffer).getUint32(0, true)
18632
+ }, {
18633
+ offset: 4,
18634
+ size: 2,
18635
+ default: 45
18636
+ }, {
18637
+ offset: 6,
18638
+ size: 2,
18639
+ default: 0
18640
+ }, {
18641
+ offset: 8,
18642
+ size: 2,
18643
+ default: 0
18644
+ }, {
18645
+ offset: 10,
18646
+ size: 2,
18647
+ default: 0
18648
+ }, {
18649
+ offset: 12,
18650
+ size: 2,
18651
+ default: 0
18652
+ }, {
18653
+ offset: 14,
18654
+ size: 4,
18655
+ name: "crc32"
18656
+ }, {
18657
+ offset: 18,
18658
+ size: 4,
18659
+ name: "length"
18660
+ }, {
18661
+ offset: 22,
18662
+ size: 4,
18663
+ name: "length"
18664
+ }, {
18665
+ offset: 26,
18666
+ size: 2,
18667
+ name: "fnlength"
18668
+ }, {
18669
+ offset: 28,
18670
+ size: 2,
18671
+ default: 0,
18672
+ name: "extraLength"
18673
+ }];
18513
18674
 
18514
18675
  // ../crypto/src/lib/hash.ts
18515
18676
  var Hash = class {
@@ -19045,6 +19206,9 @@ var __exports__ = (() => {
19045
19206
  }
19046
19207
  async function makeHashTableFromZipHeaders(fileProvider) {
19047
19208
  const zipCDIterator = makeZipCDHeaderIterator(fileProvider);
19209
+ return getHashTable(zipCDIterator);
19210
+ }
19211
+ async function getHashTable(zipCDIterator) {
19048
19212
  const md5Hash = new MD5Hash();
19049
19213
  const textEncoder = new TextEncoder();
19050
19214
  const hashTable = {};
@@ -19379,7 +19543,7 @@ var __exports__ = (() => {
19379
19543
  };
19380
19544
 
19381
19545
  // src/3d-tiles-archive-loader.ts
19382
- var VERSION8 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
19546
+ var VERSION8 = true ? "4.1.0-alpha.11" : "latest";
19383
19547
  var Tiles3DArchiveFileLoader = {
19384
19548
  name: "3tz",
19385
19549
  id: "3tz",
package/dist/index.cjs CHANGED
@@ -1548,8 +1548,9 @@ async function loadExplicitBitstream(subtree, availabilityObject, internalBinary
1548
1548
  );
1549
1549
  return;
1550
1550
  }
1551
+ const bufferStart = subtree.buffers.slice(0, bufferView.buffer).reduce((offset, buf) => offset + buf.byteLength, 0);
1551
1552
  availabilityObject.explicitBitstream = new Uint8Array(
1552
- internalBinaryBuffer,
1553
+ internalBinaryBuffer.slice(bufferStart, bufferStart + buffer.byteLength),
1553
1554
  bufferView.byteOffset,
1554
1555
  bufferView.byteLength
1555
1556
  );
@@ -1886,11 +1887,11 @@ function convertS2BoundingVolumetoOBB(s2VolumeInfo) {
1886
1887
  }
1887
1888
 
1888
1889
  // src/lib/parsers/helpers/parse-3d-implicit-tiles.ts
1889
- var QUADTREE_DEVISION_COUNT = 4;
1890
- var OCTREE_DEVISION_COUNT = 8;
1890
+ var QUADTREE_DIVISION_COUNT = 4;
1891
+ var OCTREE_DIVISION_COUNT = 8;
1891
1892
  var SUBDIVISION_COUNT_MAP = {
1892
- QUADTREE: QUADTREE_DEVISION_COUNT,
1893
- OCTREE: OCTREE_DEVISION_COUNT
1893
+ QUADTREE: QUADTREE_DIVISION_COUNT,
1894
+ OCTREE: OCTREE_DIVISION_COUNT
1894
1895
  };
1895
1896
  function getChildS2VolumeBox(s2VolumeBox, index, subdivisionScheme) {
1896
1897
  if (s2VolumeBox == null ? void 0 : s2VolumeBox.box) {
@@ -1930,17 +1931,20 @@ async function parseImplicitTiles(params) {
1930
1931
  z: 0
1931
1932
  },
1932
1933
  childIndex = 0,
1934
+ s2VolumeBox,
1935
+ loaderOptions
1936
+ } = params;
1937
+ let {
1938
+ subtree,
1939
+ level = 0,
1933
1940
  globalData = {
1934
1941
  level: 0,
1935
1942
  mortonIndex: 0,
1936
1943
  x: 0,
1937
1944
  y: 0,
1938
1945
  z: 0
1939
- },
1940
- s2VolumeBox,
1941
- loaderOptions
1946
+ }
1942
1947
  } = params;
1943
- let { subtree, level = 0 } = params;
1944
1948
  const {
1945
1949
  subdivisionScheme,
1946
1950
  subtreeLevels,
@@ -1978,19 +1982,21 @@ async function parseImplicitTiles(params) {
1978
1982
  childTileMortonIndex
1979
1983
  );
1980
1984
  }
1981
- const x = concatBits(globalData.x, childTileX, level * bitsPerTile);
1982
- const y = concatBits(globalData.y, childTileY, level * bitsPerTile);
1983
- const z = concatBits(globalData.z, childTileZ, level * bitsPerTile);
1985
+ const x = concatBits(globalData.x, childTileX, level);
1986
+ const y = concatBits(globalData.y, childTileY, level);
1987
+ const z = concatBits(globalData.z, childTileZ, level);
1984
1988
  if (isChildSubtreeAvailable) {
1985
1989
  const subtreePath = `${basePath}/${subtreesUriTemplate}`;
1986
1990
  const childSubtreeUrl = replaceContentUrlTemplate(subtreePath, lev, x, y, z);
1987
1991
  const childSubtree = await (0, import_core7.load)(childSubtreeUrl, Tile3DSubtreeLoader, loaderOptions);
1988
1992
  subtree = childSubtree;
1989
- globalData.mortonIndex = childTileMortonIndex;
1990
- globalData.x = childTileX;
1991
- globalData.y = childTileY;
1992
- globalData.z = childTileZ;
1993
- globalData.level = level;
1993
+ globalData = {
1994
+ mortonIndex: childTileMortonIndex,
1995
+ x: childTileX,
1996
+ y: childTileY,
1997
+ z: childTileZ,
1998
+ level
1999
+ };
1994
2000
  childTileMortonIndex = 0;
1995
2001
  tileAvailabilityIndex = 0;
1996
2002
  childTileX = 0;
@@ -2167,7 +2173,7 @@ function getRefine(refine) {
2167
2173
  return refine;
2168
2174
  }
2169
2175
  }
2170
- function resolveUri(uri = "", basePath) {
2176
+ function resolveUri(uri, basePath) {
2171
2177
  const urlSchemeRegex = /^[a-z][0-9a-z+.-]*:/i;
2172
2178
  if (urlSchemeRegex.test(basePath)) {
2173
2179
  const url = new URL(uri, `${basePath}/`);
@@ -2185,7 +2191,9 @@ function normalizeTileData(tile, basePath) {
2185
2191
  let tileContentUrl;
2186
2192
  if (tile.content) {
2187
2193
  const contentUri = tile.content.uri || ((_a = tile.content) == null ? void 0 : _a.url);
2188
- tileContentUrl = resolveUri(contentUri, basePath);
2194
+ if (typeof contentUri !== "undefined") {
2195
+ tileContentUrl = resolveUri(contentUri, basePath);
2196
+ }
2189
2197
  }
2190
2198
  const tilePostprocessed = {
2191
2199
  ...tile,
@@ -2254,7 +2262,8 @@ async function normalizeImplicitTileHeaders(tile, tileset, basePath, implicitTil
2254
2262
  const replacedUrlTemplate = replaceContentUrlTemplate(subtreesUriTemplate, 0, 0, 0, 0);
2255
2263
  const subtreeUrl = resolveUri(replacedUrlTemplate, basePath);
2256
2264
  const subtree = await (0, import_core8.load)(subtreeUrl, Tile3DSubtreeLoader, options);
2257
- const contentUrlTemplate = resolveUri((_a = tile.content) == null ? void 0 : _a.uri, basePath);
2265
+ const tileContentUri = (_a = tile.content) == null ? void 0 : _a.uri;
2266
+ const contentUrlTemplate = tileContentUri ? resolveUri(tileContentUri, basePath) : "";
2258
2267
  const refine = (_b = tileset == null ? void 0 : tileset.root) == null ? void 0 : _b.refine;
2259
2268
  const rootLodMetricValue = tile.geometricError;
2260
2269
  const s2VolumeInfo = (_c = tile.boundingVolume.extensions) == null ? void 0 : _c["3DTILES_bounding_volume_S2"];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAC,+BAA+B,EAAC,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAC,wBAAwB,EAAC,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAC,wBAAwB,EAAC,MAAM,gDAAgD,CAAC;AAGxF,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,mCAAmC,CAAC;AAG9E,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,qBAAqB,IAAI,sBAAsB,EAAC,MAAM,eAAe,CAAC;AAC9E,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,4BAA4B,EAC5B,kBAAkB,EAClB,+BAA+B,EAC/B,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AACjB,YAAY,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAC,+BAA+B,EAAC,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAC,wBAAwB,EAAC,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAC,wBAAwB,EAAC,MAAM,gDAAgD,CAAC;AAGxF,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,mCAAmC,CAAC;AAG9E,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,qBAAqB,IAAI,sBAAsB,EAAC,MAAM,eAAe,CAAC;AAC9E,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,4BAA4B,EAC5B,kBAAkB,EAClB,+BAA+B,EAC/B,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AACjB,YAAY,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC"}