@loaders.gl/3d-tiles 4.0.0-alpha.21 → 4.0.0-alpha.23

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 (123) hide show
  1. package/dist/3d-tiles-archive/3d-tiles-archive-archive.d.ts +30 -0
  2. package/dist/3d-tiles-archive/3d-tiles-archive-archive.d.ts.map +1 -0
  3. package/dist/{tz3/tz3-archive.js → 3d-tiles-archive/3d-tiles-archive-archive.js} +16 -16
  4. package/dist/3d-tiles-archive/3d-tiles-archive-parser.d.ts +10 -0
  5. package/dist/3d-tiles-archive/3d-tiles-archive-parser.d.ts.map +1 -0
  6. package/dist/{tz3/tz3-parser.js → 3d-tiles-archive/3d-tiles-archive-parser.js} +5 -5
  7. package/dist/3d-tiles-archive-loader.d.ts +13 -0
  8. package/dist/3d-tiles-archive-loader.d.ts.map +1 -0
  9. package/dist/3d-tiles-archive-loader.js +31 -0
  10. package/dist/cesium-ion-loader.d.ts.map +1 -1
  11. package/dist/cesium-ion-loader.js +0 -1
  12. package/dist/dist.min.js +2218 -1370
  13. package/dist/es5/3d-tiles-archive/3d-tiles-archive-archive.js +126 -0
  14. package/dist/es5/3d-tiles-archive/3d-tiles-archive-archive.js.map +1 -0
  15. package/dist/es5/{tz3/tz3-parser.js → 3d-tiles-archive/3d-tiles-archive-parser.js} +7 -7
  16. package/dist/es5/3d-tiles-archive/3d-tiles-archive-parser.js.map +1 -0
  17. package/dist/es5/3d-tiles-archive-loader.js +50 -0
  18. package/dist/es5/3d-tiles-archive-loader.js.map +1 -0
  19. package/dist/es5/cesium-ion-loader.js.map +1 -1
  20. package/dist/es5/index.js +14 -7
  21. package/dist/es5/index.js.map +1 -1
  22. package/dist/es5/lib/filesystems/tiles-3d-archive-file-system.js +151 -0
  23. package/dist/es5/lib/filesystems/tiles-3d-archive-file-system.js.map +1 -0
  24. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +3 -3
  25. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
  26. package/dist/es5/lib/parsers/parse-3d-tile-composite.js +3 -1
  27. package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -1
  28. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js +14 -12
  29. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
  30. package/dist/es5/lib/parsers/parse-3d-tile-header.js +2 -1
  31. package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +1 -1
  32. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +6 -6
  33. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
  34. package/dist/es5/lib/parsers/parse-3d-tile.js +3 -1
  35. package/dist/es5/lib/parsers/parse-3d-tile.js.map +1 -1
  36. package/dist/es5/lib/utils/version.js +1 -1
  37. package/dist/es5/tiles-3d-loader.js +2 -0
  38. package/dist/es5/tiles-3d-loader.js.map +1 -1
  39. package/dist/es5/types.js.map +1 -1
  40. package/dist/esm/{tz3/tz3-archive.js → 3d-tiles-archive/3d-tiles-archive-archive.js} +14 -19
  41. package/dist/esm/3d-tiles-archive/3d-tiles-archive-archive.js.map +1 -0
  42. package/dist/esm/{tz3/tz3-parser.js → 3d-tiles-archive/3d-tiles-archive-parser.js} +4 -4
  43. package/dist/esm/3d-tiles-archive/3d-tiles-archive-parser.js.map +1 -0
  44. package/dist/esm/3d-tiles-archive-loader.js +20 -0
  45. package/dist/esm/3d-tiles-archive-loader.js.map +1 -0
  46. package/dist/esm/cesium-ion-loader.js.map +1 -1
  47. package/dist/esm/index.js +2 -1
  48. package/dist/esm/index.js.map +1 -1
  49. package/dist/esm/lib/filesystems/tiles-3d-archive-file-system.js +49 -0
  50. package/dist/esm/lib/filesystems/tiles-3d-archive-file-system.js.map +1 -0
  51. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +5 -6
  52. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
  53. package/dist/esm/lib/parsers/parse-3d-tile-composite.js +3 -1
  54. package/dist/esm/lib/parsers/parse-3d-tile-composite.js.map +1 -1
  55. package/dist/esm/lib/parsers/parse-3d-tile-gltf.js +7 -8
  56. package/dist/esm/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
  57. package/dist/esm/lib/parsers/parse-3d-tile-header.js +2 -1
  58. package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -1
  59. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js +2 -4
  60. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
  61. package/dist/esm/lib/parsers/parse-3d-tile.js +3 -1
  62. package/dist/esm/lib/parsers/parse-3d-tile.js.map +1 -1
  63. package/dist/esm/lib/utils/version.js +1 -1
  64. package/dist/esm/tiles-3d-loader.js +2 -0
  65. package/dist/esm/tiles-3d-loader.js.map +1 -1
  66. package/dist/esm/types.js.map +1 -1
  67. package/dist/index.d.ts +3 -2
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +5 -3
  70. package/dist/lib/filesystems/tiles-3d-archive-file-system.d.ts +32 -0
  71. package/dist/lib/filesystems/tiles-3d-archive-file-system.d.ts.map +1 -0
  72. package/dist/lib/filesystems/tiles-3d-archive-file-system.js +75 -0
  73. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts.map +1 -1
  74. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js +2 -2
  75. package/dist/lib/parsers/parse-3d-tile-composite.js +1 -1
  76. package/dist/lib/parsers/parse-3d-tile-gltf.d.ts +2 -2
  77. package/dist/lib/parsers/parse-3d-tile-gltf.d.ts.map +1 -1
  78. package/dist/lib/parsers/parse-3d-tile-gltf.js +8 -7
  79. package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -1
  80. package/dist/lib/parsers/parse-3d-tile-header.js +2 -1
  81. package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts +1 -1
  82. package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts.map +1 -1
  83. package/dist/lib/parsers/parse-3d-tile-point-cloud.js +10 -2
  84. package/dist/lib/parsers/parse-3d-tile.d.ts +1 -1
  85. package/dist/lib/parsers/parse-3d-tile.d.ts.map +1 -1
  86. package/dist/lib/parsers/parse-3d-tile.js +1 -1
  87. package/dist/tiles-3d-loader.d.ts +2 -1
  88. package/dist/tiles-3d-loader.d.ts.map +1 -1
  89. package/dist/tiles-3d-loader.js +4 -0
  90. package/dist/types.d.ts +2 -0
  91. package/dist/types.d.ts.map +1 -1
  92. package/package.json +8 -7
  93. package/src/{tz3/tz3-archive.ts → 3d-tiles-archive/3d-tiles-archive-archive.ts} +22 -19
  94. package/src/{tz3/tz3-parser.ts → 3d-tiles-archive/3d-tiles-archive-parser.ts} +5 -5
  95. package/src/3d-tiles-archive-loader.ts +47 -0
  96. package/src/cesium-ion-loader.ts +0 -1
  97. package/src/index.ts +3 -2
  98. package/src/lib/filesystems/tiles-3d-archive-file-system.ts +97 -0
  99. package/src/lib/parsers/helpers/parse-3d-tile-gltf-view.ts +8 -3
  100. package/src/lib/parsers/parse-3d-tile-composite.ts +1 -1
  101. package/src/lib/parsers/parse-3d-tile-gltf.ts +11 -10
  102. package/src/lib/parsers/parse-3d-tile-header.ts +2 -1
  103. package/src/lib/parsers/parse-3d-tile-point-cloud.ts +10 -3
  104. package/src/lib/parsers/parse-3d-tile.ts +2 -2
  105. package/src/tiles-3d-loader.ts +16 -4
  106. package/src/types.ts +3 -0
  107. package/dist/es5/tz3/tz3-archive.js +0 -161
  108. package/dist/es5/tz3/tz3-archive.js.map +0 -1
  109. package/dist/es5/tz3/tz3-parser.js.map +0 -1
  110. package/dist/es5/tz3-loader.js +0 -48
  111. package/dist/es5/tz3-loader.js.map +0 -1
  112. package/dist/esm/tz3/tz3-archive.js.map +0 -1
  113. package/dist/esm/tz3/tz3-parser.js.map +0 -1
  114. package/dist/esm/tz3-loader.js +0 -19
  115. package/dist/esm/tz3-loader.js.map +0 -1
  116. package/dist/tz3/tz3-archive.d.ts +0 -23
  117. package/dist/tz3/tz3-archive.d.ts.map +0 -1
  118. package/dist/tz3/tz3-parser.d.ts +0 -10
  119. package/dist/tz3/tz3-parser.d.ts.map +0 -1
  120. package/dist/tz3-loader.d.ts +0 -14
  121. package/dist/tz3-loader.d.ts.map +0 -1
  122. package/dist/tz3-loader.js +0 -30
  123. package/src/tz3-loader.ts +0 -41
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Tiles3DArchive = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+ var _md = _interopRequireDefault(require("md5"));
14
+ var _zip = require("@loaders.gl/zip");
15
+ var _compression = require("@loaders.gl/compression");
16
+ var COMPRESSION_METHODS = {
17
+ 0: function _(data) {
18
+ return new _compression.NoCompression().decompress(data);
19
+ },
20
+ 8: function _(data) {
21
+ return new _compression.DeflateCompression({
22
+ raw: true
23
+ }).decompress(data);
24
+ }
25
+ };
26
+ var Tiles3DArchive = function () {
27
+ function Tiles3DArchive(fileProvider, hashFile) {
28
+ (0, _classCallCheck2.default)(this, Tiles3DArchive);
29
+ (0, _defineProperty2.default)(this, "fileProvider", void 0);
30
+ (0, _defineProperty2.default)(this, "hashArray", void 0);
31
+ this.fileProvider = fileProvider;
32
+ this.hashArray = hashFile;
33
+ }
34
+ (0, _createClass2.default)(Tiles3DArchive, [{
35
+ key: "getFile",
36
+ value: function () {
37
+ var _getFile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(path) {
38
+ var data;
39
+ return _regenerator.default.wrap(function _callee$(_context) {
40
+ while (1) switch (_context.prev = _context.next) {
41
+ case 0:
42
+ _context.next = 2;
43
+ return this.getFileBytes(path.toLocaleLowerCase());
44
+ case 2:
45
+ data = _context.sent;
46
+ if (data) {
47
+ _context.next = 7;
48
+ break;
49
+ }
50
+ _context.next = 6;
51
+ return this.getFileBytes(path);
52
+ case 6:
53
+ data = _context.sent;
54
+ case 7:
55
+ if (data) {
56
+ _context.next = 9;
57
+ break;
58
+ }
59
+ throw new Error('No such file in the archive');
60
+ case 9:
61
+ return _context.abrupt("return", data);
62
+ case 10:
63
+ case "end":
64
+ return _context.stop();
65
+ }
66
+ }, _callee, this);
67
+ }));
68
+ function getFile(_x) {
69
+ return _getFile.apply(this, arguments);
70
+ }
71
+ return getFile;
72
+ }()
73
+ }, {
74
+ key: "getFileBytes",
75
+ value: function () {
76
+ var _getFileBytes = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(path) {
77
+ var nameHash, fileInfo, localFileHeader, compressedFile, compressionMethod;
78
+ return _regenerator.default.wrap(function _callee2$(_context2) {
79
+ while (1) switch (_context2.prev = _context2.next) {
80
+ case 0:
81
+ nameHash = Buffer.from((0, _md.default)(path), 'hex');
82
+ fileInfo = (0, _zip.findBin)(nameHash, this.hashArray);
83
+ if (fileInfo) {
84
+ _context2.next = 4;
85
+ break;
86
+ }
87
+ return _context2.abrupt("return", null);
88
+ case 4:
89
+ _context2.next = 6;
90
+ return (0, _zip.parseZipLocalFileHeader)(fileInfo.offset, this.fileProvider);
91
+ case 6:
92
+ localFileHeader = _context2.sent;
93
+ if (localFileHeader) {
94
+ _context2.next = 9;
95
+ break;
96
+ }
97
+ return _context2.abrupt("return", null);
98
+ case 9:
99
+ _context2.next = 11;
100
+ return this.fileProvider.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
101
+ case 11:
102
+ compressedFile = _context2.sent;
103
+ compressionMethod = COMPRESSION_METHODS[localFileHeader.compressionMethod];
104
+ if (compressionMethod) {
105
+ _context2.next = 15;
106
+ break;
107
+ }
108
+ throw Error('Only Deflation compression is supported');
109
+ case 15:
110
+ return _context2.abrupt("return", compressionMethod(compressedFile));
111
+ case 16:
112
+ case "end":
113
+ return _context2.stop();
114
+ }
115
+ }, _callee2, this);
116
+ }));
117
+ function getFileBytes(_x2) {
118
+ return _getFileBytes.apply(this, arguments);
119
+ }
120
+ return getFileBytes;
121
+ }()
122
+ }]);
123
+ return Tiles3DArchive;
124
+ }();
125
+ exports.Tiles3DArchive = Tiles3DArchive;
126
+ //# sourceMappingURL=3d-tiles-archive-archive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3d-tiles-archive-archive.js","names":["_md","_interopRequireDefault","require","_zip","_compression","COMPRESSION_METHODS","_","data","NoCompression","decompress","DeflateCompression","raw","Tiles3DArchive","fileProvider","hashFile","_classCallCheck2","default","_defineProperty2","hashArray","_createClass2","key","value","_getFile","_asyncToGenerator2","_regenerator","mark","_callee","path","wrap","_callee$","_context","prev","next","getFileBytes","toLocaleLowerCase","sent","Error","abrupt","stop","getFile","_x","apply","arguments","_getFileBytes","_callee2","nameHash","fileInfo","localFileHeader","compressedFile","compressionMethod","_callee2$","_context2","Buffer","from","md5","findBin","parseZipLocalFileHeader","offset","slice","fileDataOffset","compressedSize","_x2","exports"],"sources":["../../../src/3d-tiles-archive/3d-tiles-archive-archive.ts"],"sourcesContent":["import md5 from 'md5';\nimport {FileProvider} from '@loaders.gl/loader-utils';\nimport {parseZipLocalFileHeader, HashElement, findBin} from '@loaders.gl/zip';\nimport {DeflateCompression, NoCompression} from '@loaders.gl/compression';\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 hashArray: HashElement[];\n\n /**\n * creates Tiles3DArchive handler\n * @param fileProvider - FileProvider with the whole file\n * @param hashFile - hash info\n */\n constructor(fileProvider: FileProvider, hashFile: HashElement[]) {\n this.fileProvider = fileProvider;\n this.hashArray = hashFile;\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');\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 nameHash = Buffer.from(md5(path), 'hex');\n const fileInfo = findBin(nameHash, this.hashArray); // implement binary search\n if (!fileInfo) {\n return null;\n }\n\n const localFileHeader = await parseZipLocalFileHeader(fileInfo.offset, 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":"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"}
@@ -4,12 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.parse3tz = void 0;
7
+ exports.parse3DTilesArchive = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _zip = require("@loaders.gl/zip");
11
- var _tz3Archive = require("./tz3-archive");
12
- var parse3tz = function () {
11
+ var _dTilesArchiveArchive = require("./3d-tiles-archive-archive");
12
+ var parse3DTilesArchive = function () {
13
13
  var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(fileProvider, cb) {
14
14
  var hashCDOffset, cdFileHeader, hashData, localFileHeader, fileDataOffset, hashFile;
15
15
  return _regenerator.default.wrap(function _callee$(_context) {
@@ -54,16 +54,16 @@ var parse3tz = function () {
54
54
  hashFile = _context.sent;
55
55
  hashData = (0, _zip.parseHashFile)(hashFile);
56
56
  case 25:
57
- return _context.abrupt("return", new _tz3Archive.TZ3Archive(fileProvider, hashData));
57
+ return _context.abrupt("return", new _dTilesArchiveArchive.Tiles3DArchive(fileProvider, hashData));
58
58
  case 26:
59
59
  case "end":
60
60
  return _context.stop();
61
61
  }
62
62
  }, _callee);
63
63
  }));
64
- return function parse3tz(_x, _x2) {
64
+ return function parse3DTilesArchive(_x, _x2) {
65
65
  return _ref.apply(this, arguments);
66
66
  };
67
67
  }();
68
- exports.parse3tz = parse3tz;
69
- //# sourceMappingURL=tz3-parser.js.map
68
+ exports.parse3DTilesArchive = parse3DTilesArchive;
69
+ //# sourceMappingURL=3d-tiles-archive-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3d-tiles-archive-parser.js","names":["_zip","require","_dTilesArchiveArchive","parse3DTilesArchive","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","fileProvider","cb","hashCDOffset","cdFileHeader","hashData","localFileHeader","fileDataOffset","hashFile","wrap","_callee$","_context","prev","next","searchFromTheEnd","cdHeaderSignature","sent","parseZipCDFileHeader","fileName","generateHashInfo","parseZipLocalFileHeader","localHeaderOffset","Error","slice","compressedSize","parseHashFile","abrupt","Tiles3DArchive","stop","_x","_x2","apply","arguments","exports"],"sources":["../../../src/3d-tiles-archive/3d-tiles-archive-parser.ts"],"sourcesContent":["import {FileProvider} from '@loaders.gl/loader-utils';\nimport {\n HashElement,\n cdSignature as cdHeaderSignature,\n generateHashInfo,\n parseHashFile,\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, cdHeaderSignature);\n\n const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);\n\n let hashData: HashElement[];\n if (cdFileHeader?.fileName !== '@3dtilesIndex1@') {\n cb?.('3tz doesnt contain hash file');\n hashData = await generateHashInfo(fileProvider);\n cb?.('hash info has been composed according to central directory records');\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');\n }\n\n const fileDataOffset = localFileHeader.fileDataOffset;\n const hashFile = await fileProvider.slice(\n fileDataOffset,\n fileDataOffset + localFileHeader.compressedSize\n );\n\n hashData = parseHashFile(hashFile);\n }\n\n return new Tiles3DArchive(fileProvider, hashData);\n};\n"],"mappings":";;;;;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AASA,IAAAC,qBAAA,GAAAD,OAAA;AAQO,IAAME,mBAAmB;EAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAG,SAAAC,QACjCC,YAA0B,EAC1BC,EAA0B;IAAA,IAAAC,YAAA,EAAAC,YAAA,EAAAC,QAAA,EAAAC,eAAA,EAAAC,cAAA,EAAAC,QAAA;IAAA,OAAAV,YAAA,CAAAD,OAAA,CAAAY,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OAEC,IAAAC,qBAAgB,EAACb,YAAY,EAAEc,gBAAiB,CAAC;QAAA;UAAtEZ,YAAY,GAAAQ,QAAA,CAAAK,IAAA;UAAAL,QAAA,CAAAE,IAAA;UAAA,OAES,IAAAI,yBAAoB,EAACd,YAAY,EAAEF,YAAY,CAAC;QAAA;UAArEG,YAAY,GAAAO,QAAA,CAAAK,IAAA;UAAA,MAGd,CAAAZ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEc,QAAQ,MAAK,iBAAiB;YAAAP,QAAA,CAAAE,IAAA;YAAA;UAAA;UAC9CX,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAG,8BAA8B,CAAC;UAACS,QAAA,CAAAE,IAAA;UAAA,OACpB,IAAAM,qBAAgB,EAAClB,YAAY,CAAC;QAAA;UAA/CI,QAAQ,GAAAM,QAAA,CAAAK,IAAA;UACRd,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAG,oEAAoE,CAAC;UAACS,QAAA,CAAAE,IAAA;UAAA;QAAA;UAE3EX,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAG,wBAAwB,CAAC;UAACS,QAAA,CAAAE,IAAA;UAAA,OACD,IAAAO,4BAAuB,EACnDhB,YAAY,CAACiB,iBAAiB,EAC9BpB,YACF,CAAC;QAAA;UAHKK,eAAe,GAAAK,QAAA,CAAAK,IAAA;UAAA,IAIhBV,eAAe;YAAAK,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,MACZ,IAAIS,KAAK,CAAC,eAAe,CAAC;QAAA;UAG5Bf,cAAc,GAAGD,eAAe,CAACC,cAAc;UAAAI,QAAA,CAAAE,IAAA;UAAA,OAC9BZ,YAAY,CAACsB,KAAK,CACvChB,cAAc,EACdA,cAAc,GAAGD,eAAe,CAACkB,cACnC,CAAC;QAAA;UAHKhB,QAAQ,GAAAG,QAAA,CAAAK,IAAA;UAKdX,QAAQ,GAAG,IAAAoB,kBAAa,EAACjB,QAAQ,CAAC;QAAC;UAAA,OAAAG,QAAA,CAAAe,MAAA,WAG9B,IAAIC,oCAAc,CAAC1B,YAAY,EAAEI,QAAQ,CAAC;QAAA;QAAA;UAAA,OAAAM,QAAA,CAAAiB,IAAA;MAAA;IAAA,GAAA5B,OAAA;EAAA,CAClD;EAAA,gBAjCYN,mBAAmBA,CAAAmC,EAAA,EAAAC,GAAA;IAAA,OAAAnC,IAAA,CAAAoC,KAAA,OAAAC,SAAA;EAAA;AAAA,GAiC/B;AAACC,OAAA,CAAAvC,mBAAA,GAAAA,mBAAA"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Tiles3DArchiveFileLoader = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _loaderUtils = require("@loaders.gl/loader-utils");
11
+ var _dTilesArchiveParser = require("./3d-tiles-archive/3d-tiles-archive-parser");
12
+ var VERSION = typeof "4.0.0-alpha.23" !== 'undefined' ? "4.0.0-alpha.23" : 'latest';
13
+ var Tiles3DArchiveFileLoader = {
14
+ name: '3tz',
15
+ id: '3tz',
16
+ module: '3d-tiles',
17
+ version: VERSION,
18
+ mimeTypes: ['application/octet-stream', 'application/vnd.maxar.archive.3tz+zip'],
19
+ parse: parse3DTilesArchive,
20
+ extensions: ['3tz'],
21
+ options: {}
22
+ };
23
+ exports.Tiles3DArchiveFileLoader = Tiles3DArchiveFileLoader;
24
+ function parse3DTilesArchive(_x) {
25
+ return _parse3DTilesArchive.apply(this, arguments);
26
+ }
27
+ function _parse3DTilesArchive() {
28
+ _parse3DTilesArchive = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
29
+ var _options$3dTilesArc, _options$3dTilesArc2;
30
+ var options,
31
+ archive,
32
+ _args = arguments;
33
+ return _regenerator.default.wrap(function _callee$(_context) {
34
+ while (1) switch (_context.prev = _context.next) {
35
+ case 0:
36
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
37
+ _context.next = 3;
38
+ return (0, _dTilesArchiveParser.parse3DTilesArchive)(new _loaderUtils.DataViewFile(new DataView(data)));
39
+ case 3:
40
+ archive = _context.sent;
41
+ return _context.abrupt("return", archive.getFile((_options$3dTilesArc = (_options$3dTilesArc2 = options['3d-tiles-archive']) === null || _options$3dTilesArc2 === void 0 ? void 0 : _options$3dTilesArc2.path) !== null && _options$3dTilesArc !== void 0 ? _options$3dTilesArc : ''));
42
+ case 5:
43
+ case "end":
44
+ return _context.stop();
45
+ }
46
+ }, _callee);
47
+ }));
48
+ return _parse3DTilesArchive.apply(this, arguments);
49
+ }
50
+ //# sourceMappingURL=3d-tiles-archive-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3d-tiles-archive-loader.js","names":["_loaderUtils","require","_dTilesArchiveParser","VERSION","Tiles3DArchiveFileLoader","name","id","module","version","mimeTypes","parse","parse3DTilesArchive","extensions","options","exports","_x","_parse3DTilesArchive","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","_options$3dTilesArc","_options$3dTilesArc2","archive","_args","wrap","_callee$","_context","prev","next","length","undefined","parse3DTilesArchiveFromProvider","DataViewFile","DataView","sent","abrupt","getFile","path","stop"],"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,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAIA,IAAME,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAapE,IAAMC,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,EAAEC,mBAAmB;EAC1BC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,OAAO,EAAE,CAAC;AACZ,CAAC;AAACC,OAAA,CAAAV,wBAAA,GAAAA,wBAAA;AAAA,SAQaO,mBAAmBA,CAAAI,EAAA;EAAA,OAAAC,oBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,qBAAA;EAAAA,oBAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAlC,SAAAC,QACEC,IAAiB;IAAA,IAAAC,mBAAA,EAAAC,oBAAA;IAAA,IAAAb,OAAA;MAAAc,OAAA;MAAAC,KAAA,GAAAV,SAAA;IAAA,OAAAG,YAAA,CAAAD,OAAA,CAAAS,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UACjBpB,OAAwC,GAAAe,KAAA,CAAAM,MAAA,QAAAN,KAAA,QAAAO,SAAA,GAAAP,KAAA,MAAG,CAAC,CAAC;UAAAG,QAAA,CAAAE,IAAA;UAAA,OAEvB,IAAAG,wCAA+B,EAAC,IAAIC,yBAAY,CAAC,IAAIC,QAAQ,CAACd,IAAI,CAAC,CAAC,CAAC;QAAA;UAArFG,OAAO,GAAAI,QAAA,CAAAQ,IAAA;UAAA,OAAAR,QAAA,CAAAS,MAAA,WACNb,OAAO,CAACc,OAAO,EAAAhB,mBAAA,IAAAC,oBAAA,GAACb,OAAO,CAAC,kBAAkB,CAAC,cAAAa,oBAAA,uBAA3BA,oBAAA,CAA6BgB,IAAI,cAAAjB,mBAAA,cAAAA,mBAAA,GAAI,EAAE,CAAC;QAAA;QAAA;UAAA,OAAAM,QAAA,CAAAY,IAAA;MAAA;IAAA,GAAApB,OAAA;EAAA,CAChE;EAAA,OAAAP,oBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"cesium-ion-loader.js","names":["_tiles3dLoader","require","_ion","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","preload","_x","_preload","_asyncToGenerator2","_regenerator","mark","_callee2","url","options","_options","accessToken","assetId","matched","_args2","wrap","_callee2$","_context2","prev","next","undefined","Number","isFinite","match","abrupt","getIonTilesetMetadata","stop","CesiumIonLoader","Tiles3DLoader","id","name","parse","_parse","_callee","data","context","_callee$","_context","loader","_x2","_x3","_x4","exports"],"sources":["../../src/cesium-ion-loader.ts"],"sourcesContent":["import type {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 = {\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 // @ts-expect-error\n ...Tiles3DLoader.options['3d-tiles'],\n accessToken: null\n }\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"cesium-ion-loader.js","names":["_tiles3dLoader","require","_ion","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","preload","_x","_preload","_asyncToGenerator2","_regenerator","mark","_callee2","url","options","_options","accessToken","assetId","matched","_args2","wrap","_callee2$","_context2","prev","next","undefined","Number","isFinite","match","abrupt","getIonTilesetMetadata","stop","CesiumIonLoader","Tiles3DLoader","id","name","parse","_parse","_callee","data","context","_callee$","_context","loader","_x2","_x3","_x4","exports"],"sources":["../../src/cesium-ion-loader.ts"],"sourcesContent":["import type {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 = {\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":"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"}
package/dist/es5/index.js CHANGED
@@ -16,12 +16,6 @@ Object.defineProperty(exports, "TILE3D_TYPE", {
16
16
  return _constants.TILE3D_TYPE;
17
17
  }
18
18
  });
19
- Object.defineProperty(exports, "TZ3Loader", {
20
- enumerable: true,
21
- get: function get() {
22
- return _tz3Loader.TZ3Loader;
23
- }
24
- });
25
19
  Object.defineProperty(exports, "Tile3DBatchTable", {
26
20
  enumerable: true,
27
21
  get: function get() {
@@ -46,6 +40,18 @@ Object.defineProperty(exports, "Tile3DWriter", {
46
40
  return _tile3dWriter.Tile3DWriter;
47
41
  }
48
42
  });
43
+ Object.defineProperty(exports, "Tiles3DArchiveFileLoader", {
44
+ enumerable: true,
45
+ get: function get() {
46
+ return _dTilesArchiveLoader.Tiles3DArchiveFileLoader;
47
+ }
48
+ });
49
+ Object.defineProperty(exports, "Tiles3DArchiveFileSystem", {
50
+ enumerable: true,
51
+ get: function get() {
52
+ return _tiles3dArchiveFileSystem.Tiles3DArchiveFileSystem;
53
+ }
54
+ });
49
55
  Object.defineProperty(exports, "Tiles3DLoader", {
50
56
  enumerable: true,
51
57
  get: function get() {
@@ -61,7 +67,8 @@ Object.defineProperty(exports, "_getIonTilesetMetadata", {
61
67
  var _tiles3dLoader = require("./tiles-3d-loader");
62
68
  var _cesiumIonLoader = require("./cesium-ion-loader");
63
69
  var _tile3dSubtreeLoader = require("./tile-3d-subtree-loader");
64
- var _tz3Loader = require("./tz3-loader");
70
+ var _dTilesArchiveLoader = require("./3d-tiles-archive-loader");
71
+ var _tiles3dArchiveFileSystem = require("./lib/filesystems/tiles-3d-archive-file-system");
65
72
  var _tile3dWriter = require("./tile-3d-writer");
66
73
  var _tile3dFeatureTable = _interopRequireDefault(require("./lib/classes/tile-3d-feature-table"));
67
74
  var _tile3dBatchTable = _interopRequireDefault(require("./lib/classes/tile-3d-batch-table"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_tiles3dLoader","require","_cesiumIonLoader","_tile3dSubtreeLoader","_tz3Loader","_tile3dWriter","_tile3dFeatureTable","_interopRequireDefault","_tile3dBatchTable","_constants","_ion"],"sources":["../../src/index.ts"],"sourcesContent":["// LOADERS\nexport {Tiles3DLoader} from './tiles-3d-loader';\nexport {CesiumIonLoader} from './cesium-ion-loader';\nexport {Tile3DSubtreeLoader} from './tile-3d-subtree-loader';\nexport type {TZ3LoaderOptions} from './tz3-loader';\nexport {TZ3Loader} from './tz3-loader';\n\n// WRITERS\nexport {Tile3DWriter} from './tile-3d-writer';\n\n// CLASSES\nexport {default as Tile3DFeatureTable} from './lib/classes/tile-3d-feature-table';\nexport {default as Tile3DBatchTable} from './lib/classes/tile-3d-batch-table';\n\n// EXPERIMENTAL\nexport {TILE3D_TYPE} from './lib/constants';\nexport {getIonTilesetMetadata as _getIonTilesetMetadata} from './lib/ion/ion';\nexport type {\n FeatureTableJson,\n B3DMContent,\n Tile3DBoundingVolume,\n Tiles3DTileJSON,\n Tiles3DTileJSONPostprocessed,\n Tiles3DTilesetJSON,\n Tiles3DTilesetJSONPostprocessed,\n Tiles3DTileContent,\n ImplicitTilingExensionData\n} from './types';\nexport type {Tiles3DLoaderOptions} from './tiles-3d-loader';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AAGA,IAAAI,aAAA,GAAAJ,OAAA;AAGA,IAAAK,mBAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAD,sBAAA,CAAAN,OAAA;AAGA,IAAAQ,UAAA,GAAAR,OAAA;AACA,IAAAS,IAAA,GAAAT,OAAA"}
1
+ {"version":3,"file":"index.js","names":["_tiles3dLoader","require","_cesiumIonLoader","_tile3dSubtreeLoader","_dTilesArchiveLoader","_tiles3dArchiveFileSystem","_tile3dWriter","_tile3dFeatureTable","_interopRequireDefault","_tile3dBatchTable","_constants","_ion"],"sources":["../../src/index.ts"],"sourcesContent":["// LOADERS\nexport {Tiles3DLoader} from './tiles-3d-loader';\nexport {CesiumIonLoader} from './cesium-ion-loader';\nexport {Tile3DSubtreeLoader} from './tile-3d-subtree-loader';\nexport type {Tiles3DArchiveFileLoaderOptions} from './3d-tiles-archive-loader';\nexport {Tiles3DArchiveFileLoader} from './3d-tiles-archive-loader';\nexport {Tiles3DArchiveFileSystem} from './lib/filesystems/tiles-3d-archive-file-system';\n\n// WRITERS\nexport {Tile3DWriter} from './tile-3d-writer';\n\n// CLASSES\nexport {default as Tile3DFeatureTable} from './lib/classes/tile-3d-feature-table';\nexport {default as Tile3DBatchTable} from './lib/classes/tile-3d-batch-table';\n\n// EXPERIMENTAL\nexport {TILE3D_TYPE} from './lib/constants';\nexport {getIonTilesetMetadata as _getIonTilesetMetadata} from './lib/ion/ion';\nexport type {\n FeatureTableJson,\n B3DMContent,\n Tile3DBoundingVolume,\n Tiles3DTileJSON,\n Tiles3DTileJSONPostprocessed,\n Tiles3DTilesetJSON,\n Tiles3DTilesetJSONPostprocessed,\n Tiles3DTileContent,\n ImplicitTilingExensionData\n} from './types';\nexport type {Tiles3DLoaderOptions} from './tiles-3d-loader';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AAEA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,yBAAA,GAAAJ,OAAA;AAGA,IAAAK,aAAA,GAAAL,OAAA;AAGA,IAAAM,mBAAA,GAAAC,sBAAA,CAAAP,OAAA;AACA,IAAAQ,iBAAA,GAAAD,sBAAA,CAAAP,OAAA;AAGA,IAAAS,UAAA,GAAAT,OAAA;AACA,IAAAU,IAAA,GAAAV,OAAA"}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Tiles3DArchiveFileSystem = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
16
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+ var _zip = require("@loaders.gl/zip");
19
+ var _dTilesArchiveArchive = require("../../3d-tiles-archive/3d-tiles-archive-archive");
20
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
21
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
22
+ var Tiles3DArchiveFileSystem = function (_ZipFileSystem) {
23
+ (0, _inherits2.default)(Tiles3DArchiveFileSystem, _ZipFileSystem);
24
+ var _super = _createSuper(Tiles3DArchiveFileSystem);
25
+ function Tiles3DArchiveFileSystem(file) {
26
+ var _this;
27
+ (0, _classCallCheck2.default)(this, Tiles3DArchiveFileSystem);
28
+ _this = _super.call(this, file);
29
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hashData", void 0);
30
+ return _this;
31
+ }
32
+ (0, _createClass2.default)(Tiles3DArchiveFileSystem, [{
33
+ key: "fetch",
34
+ value: function () {
35
+ var _fetch = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(filename) {
36
+ var fileProvider, archive, fileData, response;
37
+ return _regenerator.default.wrap(function _callee$(_context) {
38
+ while (1) switch (_context.prev = _context.next) {
39
+ case 0:
40
+ _context.next = 2;
41
+ return this.fileProvider;
42
+ case 2:
43
+ fileProvider = _context.sent;
44
+ if (fileProvider) {
45
+ _context.next = 5;
46
+ break;
47
+ }
48
+ throw new Error('No data detected in the zip archive');
49
+ case 5:
50
+ _context.next = 7;
51
+ return this.parseHashFile();
52
+ case 7:
53
+ if (!this.hashData) {
54
+ _context.next = 15;
55
+ break;
56
+ }
57
+ archive = new _dTilesArchiveArchive.Tiles3DArchive(fileProvider, this.hashData);
58
+ _context.next = 11;
59
+ return archive.getFile(filename);
60
+ case 11:
61
+ fileData = _context.sent;
62
+ response = new Response(fileData);
63
+ Object.defineProperty(response, 'url', {
64
+ value: "".concat(this.fileName || '', "/").concat(filename)
65
+ });
66
+ return _context.abrupt("return", response);
67
+ case 15:
68
+ return _context.abrupt("return", (0, _get2.default)((0, _getPrototypeOf2.default)(Tiles3DArchiveFileSystem.prototype), "fetch", this).call(this, filename));
69
+ case 16:
70
+ case "end":
71
+ return _context.stop();
72
+ }
73
+ }, _callee, this);
74
+ }));
75
+ function fetch(_x) {
76
+ return _fetch.apply(this, arguments);
77
+ }
78
+ return fetch;
79
+ }()
80
+ }, {
81
+ key: "parseHashFile",
82
+ value: function () {
83
+ var _parseHashFile2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {
84
+ var fileProvider, hashCDOffset, cdFileHeader, localFileHeader, fileDataOffset, hashFile;
85
+ return _regenerator.default.wrap(function _callee2$(_context2) {
86
+ while (1) switch (_context2.prev = _context2.next) {
87
+ case 0:
88
+ if (!(this.hashData !== undefined)) {
89
+ _context2.next = 2;
90
+ break;
91
+ }
92
+ return _context2.abrupt("return");
93
+ case 2:
94
+ _context2.next = 4;
95
+ return this.fileProvider;
96
+ case 4:
97
+ fileProvider = _context2.sent;
98
+ if (fileProvider) {
99
+ _context2.next = 7;
100
+ break;
101
+ }
102
+ throw new Error('No data detected in the zip archive');
103
+ case 7:
104
+ _context2.next = 9;
105
+ return (0, _zip.searchFromTheEnd)(fileProvider, _zip.cdSignature);
106
+ case 9:
107
+ hashCDOffset = _context2.sent;
108
+ _context2.next = 12;
109
+ return (0, _zip.parseZipCDFileHeader)(hashCDOffset, fileProvider);
110
+ case 12:
111
+ cdFileHeader = _context2.sent;
112
+ if (!((cdFileHeader === null || cdFileHeader === void 0 ? void 0 : cdFileHeader.fileName) === '@3dtilesIndex1@')) {
113
+ _context2.next = 26;
114
+ break;
115
+ }
116
+ _context2.next = 16;
117
+ return (0, _zip.parseZipLocalFileHeader)(cdFileHeader.localHeaderOffset, fileProvider);
118
+ case 16:
119
+ localFileHeader = _context2.sent;
120
+ if (localFileHeader) {
121
+ _context2.next = 19;
122
+ break;
123
+ }
124
+ throw new Error('corrupted 3tz');
125
+ case 19:
126
+ fileDataOffset = localFileHeader.fileDataOffset;
127
+ _context2.next = 22;
128
+ return fileProvider.slice(fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
129
+ case 22:
130
+ hashFile = _context2.sent;
131
+ this.hashData = (0, _zip.parseHashFile)(hashFile);
132
+ _context2.next = 27;
133
+ break;
134
+ case 26:
135
+ this.hashData = null;
136
+ case 27:
137
+ case "end":
138
+ return _context2.stop();
139
+ }
140
+ }, _callee2, this);
141
+ }));
142
+ function parseHashFile() {
143
+ return _parseHashFile2.apply(this, arguments);
144
+ }
145
+ return parseHashFile;
146
+ }()
147
+ }]);
148
+ return Tiles3DArchiveFileSystem;
149
+ }(_zip.ZipFileSystem);
150
+ exports.Tiles3DArchiveFileSystem = Tiles3DArchiveFileSystem;
151
+ //# sourceMappingURL=tiles-3d-archive-file-system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tiles-3d-archive-file-system.js","names":["_zip","require","_dTilesArchiveArchive","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","Tiles3DArchiveFileSystem","_ZipFileSystem","_inherits2","_super","file","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_createClass2","key","value","_fetch","_asyncToGenerator2","_regenerator","mark","_callee","filename","fileProvider","archive","fileData","response","wrap","_callee$","_context","prev","next","sent","Error","parseHashFile","hashData","Tiles3DArchive","getFile","Response","Object","defineProperty","concat","fileName","abrupt","_get2","stop","fetch","_x","_parseHashFile2","_callee2","hashCDOffset","cdFileHeader","localFileHeader","fileDataOffset","hashFile","_callee2$","_context2","undefined","searchFromTheEnd","cdHeaderSignature","parseZipCDFileHeader","parseZipLocalFileHeader","localHeaderOffset","slice","compressedSize","ZipFileSystem","exports"],"sources":["../../../../src/lib/filesystems/tiles-3d-archive-file-system.ts"],"sourcesContent":["import {FileProvider} from '@loaders.gl/loader-utils';\nimport {\n ZipFileSystem,\n cdSignature as cdHeaderSignature,\n searchFromTheEnd,\n parseZipCDFileHeader,\n HashElement,\n parseHashFile,\n parseZipLocalFileHeader\n} from '@loaders.gl/zip';\nimport {Tiles3DArchive} from '../../3d-tiles-archive/3d-tiles-archive-archive';\n\n/**\n * FileSystem adapter for a 3tz (3D tiles archive format) file\n * Holds FileProvider object that provides random access to archived files.\n * The difference from ZipFileSystem is usage of `@3dtilesIndex1@` index file that increases\n * access speed to archived files\n * @see https://github.com/erikdahlstrom/3tz-specification/blob/master/Specification.md\n */\nexport class Tiles3DArchiveFileSystem extends ZipFileSystem {\n hashData?: HashElement[] | null;\n\n /**\n * Constructor\n * @param file - instance of FileProvider or file path string\n */\n constructor(file: FileProvider | string) {\n super(file);\n }\n\n /**\n * Implementation of fetch against this file system.\n * It tries to take `@3dtilesIndex1@` file from the archive and use it\n * for faster access to archived files\n * @param filename - name of a file\n * @returns - Response with file data\n */\n async fetch(filename: string): Promise<Response> {\n const fileProvider = await this.fileProvider;\n if (!fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n await this.parseHashFile();\n if (this.hashData) {\n const archive = new Tiles3DArchive(fileProvider, this.hashData);\n\n const fileData = await archive.getFile(filename);\n const response = new Response(fileData);\n Object.defineProperty(response, 'url', {value: `${this.fileName || ''}/${filename}`});\n return response;\n }\n return super.fetch(filename);\n }\n\n /**\n * Try to get and parse '@3dtilesIndex1@' file, that allows to get direct access\n * to files inside the archive\n * @returns void\n */\n private async parseHashFile(): Promise<void> {\n if (this.hashData !== undefined) {\n return;\n }\n\n const fileProvider = await this.fileProvider;\n if (!fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n\n const hashCDOffset = await searchFromTheEnd(fileProvider, cdHeaderSignature);\n\n const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);\n\n // '@3dtilesIndex1@' is index file that must be the last in the archive. It allows\n // to improve load and read performance when the archive contains a very large number\n // of files.\n if (cdFileHeader?.fileName === '@3dtilesIndex1@') {\n const localFileHeader = await parseZipLocalFileHeader(\n cdFileHeader.localHeaderOffset,\n fileProvider\n );\n if (!localFileHeader) {\n throw new Error('corrupted 3tz');\n }\n\n const fileDataOffset = localFileHeader.fileDataOffset;\n const hashFile = await fileProvider.slice(\n fileDataOffset,\n fileDataOffset + localFileHeader.compressedSize\n );\n\n this.hashData = parseHashFile(hashFile);\n } else {\n this.hashData = null;\n }\n }\n}\n"],"mappings":"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"}
@@ -36,7 +36,7 @@ function extractGLTF(_x, _x2, _x3, _x4) {
36
36
  }
37
37
  function _extractGLTF() {
38
38
  _extractGLTF = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tile, gltfFormat, options, context) {
39
- var tile3DOptions, parse, fetch, response, gltfWithBuffers;
39
+ var tile3DOptions, fetch, response, gltfWithBuffers;
40
40
  return _regenerator.default.wrap(function _callee$(_context) {
41
41
  while (1) switch (_context.prev = _context.next) {
42
42
  case 0:
@@ -52,11 +52,11 @@ function _extractGLTF() {
52
52
  }
53
53
  return _context.abrupt("return");
54
54
  case 5:
55
- parse = context.parse, fetch = context.fetch;
56
55
  if (!tile.gltfUrl) {
57
56
  _context.next = 14;
58
57
  break;
59
58
  }
59
+ fetch = context.fetch;
60
60
  _context.next = 9;
61
61
  return fetch(tile.gltfUrl, options);
62
62
  case 9:
@@ -72,7 +72,7 @@ function _extractGLTF() {
72
72
  break;
73
73
  }
74
74
  _context.next = 17;
75
- return parse(tile.gltfArrayBuffer, _gltf.GLTFLoader, options, context);
75
+ return (0, _loaderUtils.parseFromContext)(tile.gltfArrayBuffer, _gltf.GLTFLoader, options, context);
76
76
  case 17:
77
77
  gltfWithBuffers = _context.sent;
78
78
  tile.gltf = (0, _gltf.postProcessGLTF)(gltfWithBuffers);
@@ -1 +1 @@
1
- {"version":3,"file":"parse-3d-tile-gltf-view.js","names":["_gltf","require","_loaderUtils","GLTF_FORMAT","URI","EMBEDDED","exports","parse3DTileGLTFViewSync","tile","arrayBuffer","byteOffset","options","rotateYtoZ","gltfByteLength","byteLength","Error","gltfUpAxis","assetGltfUpAxis","gltfArrayBuffer","sliceArrayBuffer","gltfByteOffset","console","warn","concat","type","extractGLTF","_x","_x2","_x3","_x4","_extractGLTF","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","gltfFormat","context","tile3DOptions","parse","fetch","response","gltfWithBuffers","wrap","_callee$","_context","prev","next","extractGLTFBufferOrURL","loadGLTF","abrupt","gltfUrl","sent","GLTFLoader","gltf","postProcessGLTF","gpuMemoryUsageInBytes","_getMemoryUsageGLTF","stop","gltfUrlBytes","Uint8Array","textDecoder","TextDecoder","decode","replace"],"sources":["../../../../../src/lib/parsers/helpers/parse-3d-tile-gltf-view.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\n// TODO - should we automatically parse the embedded glTF or leave it to the app?\n// - I.e. some apps might work directly on a GLB, in that case no need for us to decode...\n// - And if we decode, do we still keep the GLB in case it is needed?\n// - Do we add an option to control this?\n// - Also, should we have hard dependency on gltf module or use injection or auto-discovery for gltf parser?\n\nimport {GLTFLoader, postProcessGLTF, _getMemoryUsageGLTF} from '@loaders.gl/gltf';\nimport {LoaderContext, sliceArrayBuffer} from '@loaders.gl/loader-utils';\nimport {Tiles3DTileContent} from '../../../types';\nimport {Tiles3DLoaderOptions} from '../../../tiles-3d-loader';\n\nexport const GLTF_FORMAT = {\n URI: 0,\n EMBEDDED: 1\n};\n\nexport function parse3DTileGLTFViewSync(\n tile: Tiles3DTileContent,\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n options: Tiles3DLoaderOptions | undefined\n) {\n // Set flags\n // glTF models need to be rotated from Y to Z up\n // https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification#y-up-to-z-up\n tile.rotateYtoZ = true;\n\n // Assume glTF consumes rest of tile\n const gltfByteLength = (tile.byteOffset || 0) + (tile.byteLength || 0) - byteOffset;\n if (gltfByteLength === 0) {\n throw new Error('glTF byte length must be greater than 0.');\n }\n\n // Save gltf up axis\n tile.gltfUpAxis =\n options?.['3d-tiles'] && options['3d-tiles'].assetGltfUpAxis\n ? options['3d-tiles'].assetGltfUpAxis\n : 'Y';\n\n // TODO - We can avoid copy if already 4-byte aligned...\n // However the rest of the code may not be able to accept byteOffsets, so copy anyway\n tile.gltfArrayBuffer = sliceArrayBuffer(arrayBuffer, byteOffset, gltfByteLength);\n tile.gltfByteOffset = 0;\n tile.gltfByteLength = gltfByteLength;\n\n if (byteOffset % 4 === 0) {\n // tile.gltfArrayBuffer = arrayBuffer;\n // tile.gltfByteOffset = byteOffset;\n // tile.gltfByteLength = gltfByteLength;\n } else {\n // Create a copy of the glb so that it is 4-byte aligned\n // eslint-disable-next-line\n console.warn(`${tile.type}: embedded glb is not aligned to a 4-byte boundary.`);\n }\n\n // Entire tile is consumed\n return (tile.byteOffset || 0) + (tile.byteLength || 0);\n}\n\nexport async function extractGLTF(\n tile: Tiles3DTileContent,\n gltfFormat: number,\n options?: Tiles3DLoaderOptions,\n context?: LoaderContext\n): Promise<void> {\n const tile3DOptions = options?.['3d-tiles'] || {};\n\n extractGLTFBufferOrURL(tile, gltfFormat, options);\n\n if (tile3DOptions.loadGLTF) {\n if (!context) {\n return;\n }\n const {parse, fetch} = context;\n if (tile.gltfUrl) {\n const response = await fetch(tile.gltfUrl, options);\n tile.gltfArrayBuffer = await response.arrayBuffer();\n tile.gltfByteOffset = 0;\n }\n if (tile.gltfArrayBuffer) {\n // TODO - Should handle byteOffset... However, not used now...\n const gltfWithBuffers = await parse(tile.gltfArrayBuffer, GLTFLoader, options, context);\n tile.gltf = postProcessGLTF(gltfWithBuffers);\n tile.gpuMemoryUsageInBytes = _getMemoryUsageGLTF(tile.gltf);\n delete tile.gltfArrayBuffer;\n delete tile.gltfByteOffset;\n delete tile.gltfByteLength;\n }\n }\n}\n\nfunction extractGLTFBufferOrURL(\n tile: Tiles3DTileContent,\n gltfFormat: number,\n options: Tiles3DLoaderOptions | undefined\n) {\n switch (gltfFormat) {\n case GLTF_FORMAT.URI:\n // We need to remove padding from the end of the model URL in case this tile was part of a composite tile.\n // This removes all white space and null characters from the end of the string.\n if (tile.gltfArrayBuffer) {\n const gltfUrlBytes = new Uint8Array(tile.gltfArrayBuffer, tile.gltfByteOffset);\n const textDecoder = new TextDecoder();\n const gltfUrl = textDecoder.decode(gltfUrlBytes);\n tile.gltfUrl = gltfUrl.replace(/[\\s\\0]+$/, '');\n }\n delete tile.gltfArrayBuffer;\n delete tile.gltfByteOffset;\n delete tile.gltfByteLength;\n break;\n case GLTF_FORMAT.EMBEDDED:\n break;\n default:\n throw new Error('b3dm: Illegal glTF format field');\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-3d-tile-gltf-view.js","names":["_gltf","require","_loaderUtils","GLTF_FORMAT","URI","EMBEDDED","exports","parse3DTileGLTFViewSync","tile","arrayBuffer","byteOffset","options","rotateYtoZ","gltfByteLength","byteLength","Error","gltfUpAxis","assetGltfUpAxis","gltfArrayBuffer","sliceArrayBuffer","gltfByteOffset","console","warn","concat","type","extractGLTF","_x","_x2","_x3","_x4","_extractGLTF","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","gltfFormat","context","tile3DOptions","fetch","response","gltfWithBuffers","wrap","_callee$","_context","prev","next","extractGLTFBufferOrURL","loadGLTF","abrupt","gltfUrl","sent","parseFromContext","GLTFLoader","gltf","postProcessGLTF","gpuMemoryUsageInBytes","_getMemoryUsageGLTF","stop","gltfUrlBytes","Uint8Array","textDecoder","TextDecoder","decode","replace"],"sources":["../../../../../src/lib/parsers/helpers/parse-3d-tile-gltf-view.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\n// TODO - should we automatically parse the embedded glTF or leave it to the app?\n// - I.e. some apps might work directly on a GLB, in that case no need for us to decode...\n// - And if we decode, do we still keep the GLB in case it is needed?\n// - Do we add an option to control this?\n// - Also, should we have hard dependency on gltf module or use injection or auto-discovery for gltf parser?\n\nimport {GLTFLoader, postProcessGLTF, _getMemoryUsageGLTF} from '@loaders.gl/gltf';\nimport {LoaderContext, sliceArrayBuffer, parseFromContext} from '@loaders.gl/loader-utils';\nimport {Tiles3DTileContent} from '../../../types';\nimport {Tiles3DLoaderOptions} from '../../../tiles-3d-loader';\n\nexport const GLTF_FORMAT = {\n URI: 0,\n EMBEDDED: 1\n};\n\nexport function parse3DTileGLTFViewSync(\n tile: Tiles3DTileContent,\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n options: Tiles3DLoaderOptions | undefined\n) {\n // Set flags\n // glTF models need to be rotated from Y to Z up\n // https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification#y-up-to-z-up\n tile.rotateYtoZ = true;\n\n // Assume glTF consumes rest of tile\n const gltfByteLength = (tile.byteOffset || 0) + (tile.byteLength || 0) - byteOffset;\n if (gltfByteLength === 0) {\n throw new Error('glTF byte length must be greater than 0.');\n }\n\n // Save gltf up axis\n tile.gltfUpAxis =\n options?.['3d-tiles'] && options['3d-tiles'].assetGltfUpAxis\n ? options['3d-tiles'].assetGltfUpAxis\n : 'Y';\n\n // TODO - We can avoid copy if already 4-byte aligned...\n // However the rest of the code may not be able to accept byteOffsets, so copy anyway\n tile.gltfArrayBuffer = sliceArrayBuffer(arrayBuffer, byteOffset, gltfByteLength);\n tile.gltfByteOffset = 0;\n tile.gltfByteLength = gltfByteLength;\n\n if (byteOffset % 4 === 0) {\n // tile.gltfArrayBuffer = arrayBuffer;\n // tile.gltfByteOffset = byteOffset;\n // tile.gltfByteLength = gltfByteLength;\n } else {\n // Create a copy of the glb so that it is 4-byte aligned\n // eslint-disable-next-line\n console.warn(`${tile.type}: embedded glb is not aligned to a 4-byte boundary.`);\n }\n\n // Entire tile is consumed\n return (tile.byteOffset || 0) + (tile.byteLength || 0);\n}\n\nexport async function extractGLTF(\n tile: Tiles3DTileContent,\n gltfFormat: number,\n options?: Tiles3DLoaderOptions,\n context?: LoaderContext\n): Promise<void> {\n const tile3DOptions = options?.['3d-tiles'] || {};\n\n extractGLTFBufferOrURL(tile, gltfFormat, options);\n\n if (tile3DOptions.loadGLTF) {\n if (!context) {\n return;\n }\n if (tile.gltfUrl) {\n const {fetch} = context;\n const response = await fetch(tile.gltfUrl, options);\n tile.gltfArrayBuffer = await response.arrayBuffer();\n tile.gltfByteOffset = 0;\n }\n if (tile.gltfArrayBuffer) {\n // TODO - Should handle byteOffset... However, not used now...\n const gltfWithBuffers = await parseFromContext(\n tile.gltfArrayBuffer,\n GLTFLoader,\n options,\n context\n );\n tile.gltf = postProcessGLTF(gltfWithBuffers);\n tile.gpuMemoryUsageInBytes = _getMemoryUsageGLTF(tile.gltf);\n delete tile.gltfArrayBuffer;\n delete tile.gltfByteOffset;\n delete tile.gltfByteLength;\n }\n }\n}\n\nfunction extractGLTFBufferOrURL(\n tile: Tiles3DTileContent,\n gltfFormat: number,\n options: Tiles3DLoaderOptions | undefined\n) {\n switch (gltfFormat) {\n case GLTF_FORMAT.URI:\n // We need to remove padding from the end of the model URL in case this tile was part of a composite tile.\n // This removes all white space and null characters from the end of the string.\n if (tile.gltfArrayBuffer) {\n const gltfUrlBytes = new Uint8Array(tile.gltfArrayBuffer, tile.gltfByteOffset);\n const textDecoder = new TextDecoder();\n const gltfUrl = textDecoder.decode(gltfUrlBytes);\n tile.gltfUrl = gltfUrl.replace(/[\\s\\0]+$/, '');\n }\n delete tile.gltfArrayBuffer;\n delete tile.gltfByteOffset;\n delete tile.gltfByteLength;\n break;\n case GLTF_FORMAT.EMBEDDED:\n break;\n default:\n throw new Error('b3dm: Illegal glTF format field');\n }\n}\n"],"mappings":"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"}
@@ -27,7 +27,9 @@ function _parseComposite3DTile() {
27
27
  _context.next = 13;
28
28
  break;
29
29
  }
30
- _subtile = {};
30
+ _subtile = {
31
+ shape: 'tile3d'
32
+ };
31
33
  tile.tiles.push(_subtile);
32
34
  _context.next = 10;
33
35
  return parse3DTile(arrayBuffer, byteOffset, options, context, _subtile);
@@ -1 +1 @@
1
- {"version":3,"file":"parse-3d-tile-composite.js","names":["_parse3dTileHeader","require","parseComposite3DTile","_x","_x2","_x3","_x4","_x5","_x6","_parseComposite3DTile","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","tile","arrayBuffer","byteOffset","options","context","parse3DTile","view","_subtile","wrap","_callee$","_context","prev","next","parse3DTileHeaderSync","DataView","tilesLength","getUint32","tiles","length","byteLength","subtile","push","sent","abrupt","stop"],"sources":["../../../../src/lib/parsers/parse-3d-tile-composite.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\n// Reference code:\n// https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Source/Scene/Composite3DTileContent.js#L182\n\nimport type {LoaderContext} from '@loaders.gl/loader-utils';\nimport type {Tiles3DLoaderOptions} from '../../tiles-3d-loader';\nimport {parse3DTileHeaderSync} from './helpers/parse-3d-tile-header';\nimport {Tiles3DTileContent} from '../../types';\n\n/** Resolve circulate dependency by passing in parsing function as argument */\ntype Parse3DTile = (\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n options: Tiles3DLoaderOptions | undefined,\n context: LoaderContext | undefined,\n subtile\n) => Promise<number>;\n\n// eslint-disable-next-line max-params\nexport async function parseComposite3DTile(\n tile: Tiles3DTileContent,\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n options: Tiles3DLoaderOptions | undefined,\n context: LoaderContext | undefined,\n parse3DTile: Parse3DTile\n): Promise<number> {\n byteOffset = parse3DTileHeaderSync(tile, arrayBuffer, byteOffset);\n\n const view = new DataView(arrayBuffer);\n\n // Extract number of tiles\n tile.tilesLength = view.getUint32(byteOffset, true);\n byteOffset += 4;\n\n // extract each tile from the byte stream\n tile.tiles = [];\n while (tile.tiles.length < tile.tilesLength && (tile.byteLength || 0) - byteOffset > 12) {\n const subtile = {};\n tile.tiles.push(subtile);\n byteOffset = await parse3DTile(arrayBuffer, byteOffset, options, context, subtile);\n // TODO - do we need to add any padding in between tiles?\n }\n\n return byteOffset;\n}\n"],"mappings":";;;;;;;;;AAQA,IAAAA,kBAAA,GAAAC,OAAA;AAAqE,SAa/CC,oBAAoBA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,qBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,sBAAA;EAAAA,qBAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAnC,SAAAC,QACLC,IAAwB,EACxBC,WAAwB,EACxBC,UAAkB,EAClBC,OAAyC,EACzCC,OAAkC,EAClCC,WAAwB;IAAA,IAAAC,IAAA,EAAAC,QAAA;IAAA,OAAAV,YAAA,CAAAD,OAAA,CAAAY,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAExBV,UAAU,GAAG,IAAAW,wCAAqB,EAACb,IAAI,EAAEC,WAAW,EAAEC,UAAU,CAAC;UAE3DI,IAAI,GAAG,IAAIQ,QAAQ,CAACb,WAAW,CAAC;UAGtCD,IAAI,CAACe,WAAW,GAAGT,IAAI,CAACU,SAAS,CAACd,UAAU,EAAE,IAAI,CAAC;UACnDA,UAAU,IAAI,CAAC;UAGfF,IAAI,CAACiB,KAAK,GAAG,EAAE;QAAC;UAAA,MACTjB,IAAI,CAACiB,KAAK,CAACC,MAAM,GAAGlB,IAAI,CAACe,WAAW,IAAI,CAACf,IAAI,CAACmB,UAAU,IAAI,CAAC,IAAIjB,UAAU,GAAG,EAAE;YAAAQ,QAAA,CAAAE,IAAA;YAAA;UAAA;UAC/EQ,QAAO,GAAG,CAAC,CAAC;UAClBpB,IAAI,CAACiB,KAAK,CAACI,IAAI,CAACD,QAAO,CAAC;UAACV,QAAA,CAAAE,IAAA;UAAA,OACNP,WAAW,CAACJ,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAEC,OAAO,EAAEgB,QAAO,CAAC;QAAA;UAAlFlB,UAAU,GAAAQ,QAAA,CAAAY,IAAA;UAAAZ,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAA,OAAAF,QAAA,CAAAa,MAAA,WAILrB,UAAU;QAAA;QAAA;UAAA,OAAAQ,QAAA,CAAAc,IAAA;MAAA;IAAA,GAAAzB,OAAA;EAAA,CAClB;EAAA,OAAAP,qBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
1
+ {"version":3,"file":"parse-3d-tile-composite.js","names":["_parse3dTileHeader","require","parseComposite3DTile","_x","_x2","_x3","_x4","_x5","_x6","_parseComposite3DTile","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","tile","arrayBuffer","byteOffset","options","context","parse3DTile","view","_subtile","wrap","_callee$","_context","prev","next","parse3DTileHeaderSync","DataView","tilesLength","getUint32","tiles","length","byteLength","subtile","shape","push","sent","abrupt","stop"],"sources":["../../../../src/lib/parsers/parse-3d-tile-composite.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\n// Reference code:\n// https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Source/Scene/Composite3DTileContent.js#L182\n\nimport type {LoaderContext} from '@loaders.gl/loader-utils';\nimport type {Tiles3DLoaderOptions} from '../../tiles-3d-loader';\nimport {parse3DTileHeaderSync} from './helpers/parse-3d-tile-header';\nimport {Tiles3DTileContent} from '../../types';\n\n/** Resolve circulate dependency by passing in parsing function as argument */\ntype Parse3DTile = (\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n options: Tiles3DLoaderOptions | undefined,\n context: LoaderContext | undefined,\n subtile\n) => Promise<number>;\n\n// eslint-disable-next-line max-params\nexport async function parseComposite3DTile(\n tile: Tiles3DTileContent,\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n options: Tiles3DLoaderOptions | undefined,\n context: LoaderContext | undefined,\n parse3DTile: Parse3DTile\n): Promise<number> {\n byteOffset = parse3DTileHeaderSync(tile, arrayBuffer, byteOffset);\n\n const view = new DataView(arrayBuffer);\n\n // Extract number of tiles\n tile.tilesLength = view.getUint32(byteOffset, true);\n byteOffset += 4;\n\n // extract each tile from the byte stream\n tile.tiles = [];\n while (tile.tiles.length < tile.tilesLength && (tile.byteLength || 0) - byteOffset > 12) {\n const subtile: Tiles3DTileContent = {shape: 'tile3d'};\n tile.tiles.push(subtile);\n byteOffset = await parse3DTile(arrayBuffer, byteOffset, options, context, subtile);\n // TODO - do we need to add any padding in between tiles?\n }\n\n return byteOffset;\n}\n"],"mappings":";;;;;;;;;AAQA,IAAAA,kBAAA,GAAAC,OAAA;AAAqE,SAa/CC,oBAAoBA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,qBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,sBAAA;EAAAA,qBAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAnC,SAAAC,QACLC,IAAwB,EACxBC,WAAwB,EACxBC,UAAkB,EAClBC,OAAyC,EACzCC,OAAkC,EAClCC,WAAwB;IAAA,IAAAC,IAAA,EAAAC,QAAA;IAAA,OAAAV,YAAA,CAAAD,OAAA,CAAAY,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAExBV,UAAU,GAAG,IAAAW,wCAAqB,EAACb,IAAI,EAAEC,WAAW,EAAEC,UAAU,CAAC;UAE3DI,IAAI,GAAG,IAAIQ,QAAQ,CAACb,WAAW,CAAC;UAGtCD,IAAI,CAACe,WAAW,GAAGT,IAAI,CAACU,SAAS,CAACd,UAAU,EAAE,IAAI,CAAC;UACnDA,UAAU,IAAI,CAAC;UAGfF,IAAI,CAACiB,KAAK,GAAG,EAAE;QAAC;UAAA,MACTjB,IAAI,CAACiB,KAAK,CAACC,MAAM,GAAGlB,IAAI,CAACe,WAAW,IAAI,CAACf,IAAI,CAACmB,UAAU,IAAI,CAAC,IAAIjB,UAAU,GAAG,EAAE;YAAAQ,QAAA,CAAAE,IAAA;YAAA;UAAA;UAC/EQ,QAA2B,GAAG;YAACC,KAAK,EAAE;UAAQ,CAAC;UACrDrB,IAAI,CAACiB,KAAK,CAACK,IAAI,CAACF,QAAO,CAAC;UAACV,QAAA,CAAAE,IAAA;UAAA,OACNP,WAAW,CAACJ,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAEC,OAAO,EAAEgB,QAAO,CAAC;QAAA;UAAlFlB,UAAU,GAAAQ,QAAA,CAAAa,IAAA;UAAAb,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAA,OAAAF,QAAA,CAAAc,MAAA,WAILtB,UAAU;QAAA;QAAA;UAAA,OAAAQ,QAAA,CAAAe,IAAA;MAAA;IAAA,GAAA1B,OAAA;EAAA,CAClB;EAAA,OAAAP,qBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}