@loaders.gl/i3s 3.1.0-alpha.4 → 3.1.0-beta.5
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.
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +10364 -0
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/i3s-attribute-loader.js +89 -138
- package/dist/es5/i3s-attribute-loader.js.map +1 -1
- package/dist/es5/i3s-building-scene-layer-loader.js +8 -36
- package/dist/es5/i3s-building-scene-layer-loader.js.map +1 -1
- package/dist/es5/i3s-content-loader.js +10 -36
- package/dist/es5/i3s-content-loader.js.map +1 -1
- package/dist/es5/i3s-loader.js +56 -176
- package/dist/es5/i3s-loader.js.map +1 -1
- package/dist/es5/i3s-node-page-loader.js +8 -51
- package/dist/es5/i3s-node-page-loader.js.map +1 -1
- package/dist/es5/index.js +13 -5
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/helpers/i3s-nodepages-tiles.js +172 -325
- package/dist/es5/lib/helpers/i3s-nodepages-tiles.js.map +1 -1
- package/dist/es5/lib/parsers/constants.js +71 -25
- package/dist/es5/lib/parsers/constants.js.map +1 -1
- package/dist/es5/lib/parsers/parse-i3s-attribute.js +34 -68
- package/dist/es5/lib/parsers/parse-i3s-attribute.js.map +1 -1
- package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js +28 -59
- package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -1
- package/dist/es5/lib/parsers/parse-i3s-tile-content.js +314 -415
- package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +1 -1
- package/dist/es5/lib/parsers/parse-i3s.js +31 -70
- package/dist/es5/lib/parsers/parse-i3s.js.map +1 -1
- package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js +4 -8
- package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -1
- package/dist/es5/lib/utils/url-utils.js +17 -14
- package/dist/es5/lib/utils/url-utils.js.map +1 -1
- package/dist/es5/types.js +19 -0
- package/dist/es5/types.js.map +1 -1
- package/dist/esm/i3s-attribute-loader.js +44 -14
- package/dist/esm/i3s-attribute-loader.js.map +1 -1
- package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
- package/dist/esm/i3s-building-scene-layer-loader.js.map +1 -1
- package/dist/esm/i3s-content-loader.js +1 -1
- package/dist/esm/i3s-content-loader.js.map +1 -1
- package/dist/esm/i3s-loader.js +5 -2
- package/dist/esm/i3s-loader.js.map +1 -1
- package/dist/esm/i3s-node-page-loader.js +1 -1
- package/dist/esm/i3s-node-page-loader.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/helpers/i3s-nodepages-tiles.js +3 -3
- package/dist/esm/lib/helpers/i3s-nodepages-tiles.js.map +1 -1
- package/dist/esm/lib/parsers/constants.js +55 -15
- package/dist/esm/lib/parsers/constants.js.map +1 -1
- package/dist/esm/lib/parsers/parse-i3s-attribute.js +9 -1
- package/dist/esm/lib/parsers/parse-i3s-attribute.js.map +1 -1
- package/dist/esm/lib/parsers/parse-i3s-building-scene-layer.js +3 -1
- package/dist/esm/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -1
- package/dist/esm/lib/parsers/parse-i3s-tile-content.js +87 -61
- package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +1 -1
- package/dist/esm/lib/parsers/parse-i3s.js +4 -4
- package/dist/esm/lib/parsers/parse-i3s.js.map +1 -1
- package/dist/esm/lib/utils/url-utils.js +3 -3
- package/dist/esm/lib/utils/url-utils.js.map +1 -1
- package/dist/esm/types.js +13 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/i3s-attribute-loader.d.ts +14 -0
- package/dist/i3s-attribute-loader.d.ts.map +1 -0
- package/dist/i3s-attribute-loader.js +177 -0
- package/dist/i3s-building-scene-layer-loader.d.ts +6 -0
- package/dist/i3s-building-scene-layer-loader.d.ts.map +1 -0
- package/dist/i3s-building-scene-layer-loader.js +26 -0
- package/dist/i3s-content-loader.d.ts +6 -0
- package/dist/i3s-content-loader.d.ts.map +1 -0
- package/dist/i3s-content-loader.js +28 -0
- package/dist/i3s-content-worker.js +7657 -2
- package/dist/i3s-loader.d.ts +6 -0
- package/dist/i3s-loader.d.ts.map +1 -0
- package/dist/i3s-loader.js +100 -0
- package/dist/i3s-node-page-loader.d.ts +6 -0
- package/dist/i3s-node-page-loader.d.ts.map +1 -0
- package/dist/i3s-node-page-loader.js +26 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/lib/helpers/i3s-nodepages-tiles.d.ts +73 -0
- package/dist/lib/helpers/i3s-nodepages-tiles.d.ts.map +1 -0
- package/dist/lib/helpers/i3s-nodepages-tiles.js +231 -0
- package/dist/lib/parsers/constants.d.ts +56 -0
- package/dist/lib/parsers/constants.d.ts.map +1 -0
- package/dist/lib/parsers/constants.js +107 -0
- package/dist/lib/parsers/parse-i3s-attribute.d.ts +10 -0
- package/dist/lib/parsers/parse-i3s-attribute.d.ts.map +1 -0
- package/dist/lib/parsers/parse-i3s-attribute.js +98 -0
- package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts +9 -0
- package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts.map +1 -0
- package/dist/lib/parsers/parse-i3s-building-scene-layer.js +46 -0
- package/dist/lib/parsers/parse-i3s-tile-content.d.ts +4 -0
- package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -0
- package/dist/lib/parsers/parse-i3s-tile-content.js +508 -0
- package/dist/lib/parsers/parse-i3s.d.ts +4 -0
- package/dist/lib/parsers/parse-i3s.d.ts.map +1 -0
- package/dist/lib/parsers/parse-i3s.js +84 -0
- package/dist/lib/utils/convert-i3s-obb-to-mbs.d.ts +2 -0
- package/dist/lib/utils/convert-i3s-obb-to-mbs.d.ts.map +1 -0
- package/dist/lib/utils/convert-i3s-obb-to-mbs.js +20 -0
- package/dist/lib/utils/url-utils.d.ts +22 -0
- package/dist/lib/utils/url-utils.d.ts.map +1 -0
- package/dist/lib/utils/url-utils.js +44 -0
- package/dist/types.d.ts +429 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +15 -0
- package/dist/workers/i3s-content-worker.d.ts +2 -0
- package/dist/workers/i3s-content-worker.d.ts.map +1 -0
- package/dist/workers/i3s-content-worker.js +5 -0
- package/package.json +14 -12
- package/src/i3s-attribute-loader.ts +56 -19
- package/src/i3s-loader.ts +4 -1
- package/src/index.ts +1 -0
- package/src/lib/parsers/constants.ts +73 -18
- package/src/lib/parsers/parse-i3s-attribute.ts +19 -1
- package/src/lib/parsers/parse-i3s-building-scene-layer.ts +2 -1
- package/src/lib/parsers/parse-i3s-tile-content.ts +159 -109
- package/src/lib/utils/url-utils.ts +1 -1
- package/src/types.ts +153 -22
- package/dist/dist.min.js +0 -2
- package/dist/dist.min.js.map +0 -1
- package/dist/i3s-content-worker.js.map +0 -1
package/dist/es5/i3s-loader.js
CHANGED
|
@@ -1,29 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
6
|
exports.I3SLoader = void 0;
|
|
9
7
|
|
|
10
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
|
|
12
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
-
|
|
14
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
-
|
|
16
8
|
var _core = require("@loaders.gl/core");
|
|
17
9
|
|
|
18
10
|
var _i3sContentLoader = require("./i3s-content-loader");
|
|
19
11
|
|
|
20
12
|
var _parseI3s = require("./lib/parsers/parse-i3s");
|
|
21
13
|
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
var _constants = require("./lib/parsers/constants");
|
|
15
|
+
|
|
16
|
+
const VERSION = typeof "3.1.0-beta.5" !== 'undefined' ? "3.1.0-beta.5" : 'latest';
|
|
17
|
+
const TILESET_REGEX = /layers\/[0-9]+$/;
|
|
18
|
+
const TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
|
|
19
|
+
const SLPK_HEX = '504b0304';
|
|
20
|
+
const I3SLoader = {
|
|
27
21
|
name: 'I3S (Indexed Scene Layers)',
|
|
28
22
|
id: 'i3s',
|
|
29
23
|
module: 'i3s',
|
|
@@ -40,188 +34,74 @@ var I3SLoader = {
|
|
|
40
34
|
tile: null,
|
|
41
35
|
tileset: null,
|
|
42
36
|
useDracoGeometry: true,
|
|
43
|
-
useCompressedTextures: true
|
|
37
|
+
useCompressedTextures: true,
|
|
38
|
+
decodeTextures: true,
|
|
39
|
+
coordinateSystem: _constants.COORDINATE_SYSTEM.METER_OFFSETS
|
|
44
40
|
}
|
|
45
41
|
}
|
|
46
42
|
};
|
|
47
43
|
exports.I3SLoader = I3SLoader;
|
|
48
44
|
|
|
49
|
-
function parseI3S(
|
|
50
|
-
|
|
51
|
-
}
|
|
45
|
+
async function parseI3S(data, options, context) {
|
|
46
|
+
const url = context.url;
|
|
47
|
+
options.i3s = options.i3s || {};
|
|
48
|
+
const magicNumber = getMagicNumber(data);
|
|
52
49
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
57
|
-
while (1) {
|
|
58
|
-
switch (_context.prev = _context.next) {
|
|
59
|
-
case 0:
|
|
60
|
-
url = context.url;
|
|
61
|
-
options.i3s = options.i3s || {};
|
|
62
|
-
magicNumber = getMagicNumber(data);
|
|
63
|
-
|
|
64
|
-
if (!(magicNumber === SLPK_HEX)) {
|
|
65
|
-
_context.next = 5;
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
throw new Error('Files with .slpk extention currently are not supported by I3SLoader');
|
|
70
|
-
|
|
71
|
-
case 5:
|
|
72
|
-
if (options.i3s.isTileset === 'auto') {
|
|
73
|
-
isTileset = TILESET_REGEX.test(url);
|
|
74
|
-
} else {
|
|
75
|
-
isTileset = options.i3s.isTileset;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (options.isTileHeader === 'auto') {
|
|
79
|
-
isTileHeader = TILE_HEADER_REGEX.test(url);
|
|
80
|
-
} else {
|
|
81
|
-
isTileHeader = options.i3s.isTileHeader;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if (!isTileset) {
|
|
85
|
-
_context.next = 13;
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
_context.next = 10;
|
|
90
|
-
return parseTileset(data, options, context);
|
|
91
|
-
|
|
92
|
-
case 10:
|
|
93
|
-
data = _context.sent;
|
|
94
|
-
_context.next = 26;
|
|
95
|
-
break;
|
|
96
|
-
|
|
97
|
-
case 13:
|
|
98
|
-
if (!isTileHeader) {
|
|
99
|
-
_context.next = 23;
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
_context.next = 16;
|
|
104
|
-
return parseTile(data, options, context);
|
|
105
|
-
|
|
106
|
-
case 16:
|
|
107
|
-
data = _context.sent;
|
|
108
|
-
|
|
109
|
-
if (!options.i3s.loadContent) {
|
|
110
|
-
_context.next = 21;
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
options.i3s.tile = data;
|
|
115
|
-
_context.next = 21;
|
|
116
|
-
return (0, _core.load)(data.contentUrl, I3SLoader, options);
|
|
117
|
-
|
|
118
|
-
case 21:
|
|
119
|
-
_context.next = 26;
|
|
120
|
-
break;
|
|
121
|
-
|
|
122
|
-
case 23:
|
|
123
|
-
_context.next = 25;
|
|
124
|
-
return parseTileContent(data, options);
|
|
125
|
-
|
|
126
|
-
case 25:
|
|
127
|
-
data = _context.sent;
|
|
128
|
-
|
|
129
|
-
case 26:
|
|
130
|
-
return _context.abrupt("return", data);
|
|
131
|
-
|
|
132
|
-
case 27:
|
|
133
|
-
case "end":
|
|
134
|
-
return _context.stop();
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}, _callee);
|
|
138
|
-
}));
|
|
139
|
-
return _parseI3S.apply(this, arguments);
|
|
140
|
-
}
|
|
50
|
+
if (magicNumber === SLPK_HEX) {
|
|
51
|
+
throw new Error('Files with .slpk extention currently are not supported by I3SLoader');
|
|
52
|
+
}
|
|
141
53
|
|
|
142
|
-
|
|
143
|
-
return _parseTileContent.apply(this, arguments);
|
|
144
|
-
}
|
|
54
|
+
let isTileset;
|
|
145
55
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
56
|
+
if (options.i3s.isTileset === 'auto') {
|
|
57
|
+
isTileset = TILESET_REGEX.test(url);
|
|
58
|
+
} else {
|
|
59
|
+
isTileset = options.i3s.isTileset;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
let isTileHeader;
|
|
63
|
+
|
|
64
|
+
if (options.isTileHeader === 'auto') {
|
|
65
|
+
isTileHeader = TILE_HEADER_REGEX.test(url);
|
|
66
|
+
} else {
|
|
67
|
+
isTileHeader = options.i3s.isTileHeader;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (isTileset) {
|
|
71
|
+
data = await parseTileset(data, options, context);
|
|
72
|
+
} else if (isTileHeader) {
|
|
73
|
+
data = await parseTile(data, options, context);
|
|
74
|
+
|
|
75
|
+
if (options.i3s.loadContent) {
|
|
76
|
+
options.i3s.tile = data;
|
|
77
|
+
await (0, _core.load)(data.contentUrl, I3SLoader, options);
|
|
78
|
+
}
|
|
79
|
+
} else {
|
|
80
|
+
data = await parseTileContent(data, options);
|
|
81
|
+
}
|
|
167
82
|
|
|
168
|
-
|
|
169
|
-
return _parseTileset.apply(this, arguments);
|
|
83
|
+
return data;
|
|
170
84
|
}
|
|
171
85
|
|
|
172
|
-
function
|
|
173
|
-
|
|
174
|
-
var tilesetJson;
|
|
175
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
176
|
-
while (1) {
|
|
177
|
-
switch (_context3.prev = _context3.next) {
|
|
178
|
-
case 0:
|
|
179
|
-
tilesetJson = JSON.parse(new TextDecoder().decode(data));
|
|
180
|
-
tilesetJson.loader = I3SLoader;
|
|
181
|
-
_context3.next = 4;
|
|
182
|
-
return (0, _parseI3s.normalizeTilesetData)(tilesetJson, options, context);
|
|
183
|
-
|
|
184
|
-
case 4:
|
|
185
|
-
return _context3.abrupt("return", tilesetJson);
|
|
186
|
-
|
|
187
|
-
case 5:
|
|
188
|
-
case "end":
|
|
189
|
-
return _context3.stop();
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}, _callee3);
|
|
193
|
-
}));
|
|
194
|
-
return _parseTileset.apply(this, arguments);
|
|
86
|
+
async function parseTileContent(arrayBuffer, options) {
|
|
87
|
+
return await (0, _core.parse)(arrayBuffer, _i3sContentLoader.I3SContentLoader, options);
|
|
195
88
|
}
|
|
196
89
|
|
|
197
|
-
function
|
|
198
|
-
|
|
90
|
+
async function parseTileset(data, options, context) {
|
|
91
|
+
const tilesetJson = JSON.parse(new TextDecoder().decode(data));
|
|
92
|
+
tilesetJson.loader = I3SLoader;
|
|
93
|
+
await (0, _parseI3s.normalizeTilesetData)(tilesetJson, options, context);
|
|
94
|
+
return tilesetJson;
|
|
199
95
|
}
|
|
200
96
|
|
|
201
|
-
function
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
while (1) {
|
|
205
|
-
switch (_context4.prev = _context4.next) {
|
|
206
|
-
case 0:
|
|
207
|
-
data = JSON.parse(new TextDecoder().decode(data));
|
|
208
|
-
return _context4.abrupt("return", (0, _parseI3s.normalizeTileData)(data, options, context));
|
|
209
|
-
|
|
210
|
-
case 2:
|
|
211
|
-
case "end":
|
|
212
|
-
return _context4.stop();
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}, _callee4);
|
|
216
|
-
}));
|
|
217
|
-
return _parseTile.apply(this, arguments);
|
|
97
|
+
async function parseTile(data, options, context) {
|
|
98
|
+
data = JSON.parse(new TextDecoder().decode(data));
|
|
99
|
+
return (0, _parseI3s.normalizeTileData)(data, options, context);
|
|
218
100
|
}
|
|
219
101
|
|
|
220
102
|
function getMagicNumber(data) {
|
|
221
103
|
if (data instanceof ArrayBuffer) {
|
|
222
|
-
return
|
|
223
|
-
return value.toString(16).padStart(2, '0');
|
|
224
|
-
}).join('');
|
|
104
|
+
return [...new Uint8Array(data, 0, 4)].map(value => value.toString(16).padStart(2, '0')).join('');
|
|
225
105
|
}
|
|
226
106
|
|
|
227
107
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/i3s-loader.ts"],"names":["VERSION","TILESET_REGEX","TILE_HEADER_REGEX","SLPK_HEX","I3SLoader","name","id","module","version","mimeTypes","parse","parseI3S","extensions","options","i3s","loadContent","token","isTileset","isTileHeader","tile","tileset","useDracoGeometry","useCompressedTextures","data","context","url","magicNumber","getMagicNumber","Error","test","parseTileset","parseTile","contentUrl","parseTileContent","arrayBuffer","I3SContentLoader","tilesetJson","JSON","TextDecoder","decode","loader","ArrayBuffer","Uint8Array","map","value","toString","padStart","join"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/i3s-loader.ts"],"names":["VERSION","TILESET_REGEX","TILE_HEADER_REGEX","SLPK_HEX","I3SLoader","name","id","module","version","mimeTypes","parse","parseI3S","extensions","options","i3s","loadContent","token","isTileset","isTileHeader","tile","tileset","useDracoGeometry","useCompressedTextures","decodeTextures","coordinateSystem","COORDINATE_SYSTEM","METER_OFFSETS","data","context","url","magicNumber","getMagicNumber","Error","test","parseTileset","parseTile","contentUrl","parseTileContent","arrayBuffer","I3SContentLoader","tilesetJson","JSON","TextDecoder","decode","loader","ArrayBuffer","Uint8Array","map","value","toString","padStart","join"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AACA;;AAIA,MAAMA,OAAO,GAAG,0BAAuB,WAAvB,oBAAmD,QAAnE;AAEA,MAAMC,aAAa,GAAG,iBAAtB;AACA,MAAMC,iBAAiB,GAAG,wBAA1B;AACA,MAAMC,QAAQ,GAAG,UAAjB;AAKO,MAAMC,SAA2B,GAAG;AACzCC,EAAAA,IAAI,EAAE,4BADmC;AAEzCC,EAAAA,EAAE,EAAE,KAFqC;AAGzCC,EAAAA,MAAM,EAAE,KAHiC;AAIzCC,EAAAA,OAAO,EAAER,OAJgC;AAKzCS,EAAAA,SAAS,EAAE,CAAC,0BAAD,CAL8B;AAMzCC,EAAAA,KAAK,EAAEC,QANkC;AAOzCC,EAAAA,UAAU,EAAE,CAAC,KAAD,CAP6B;AAQzCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AACHC,MAAAA,WAAW,EAAE,IADV;AAEHC,MAAAA,KAAK,EAAE,IAFJ;AAGHC,MAAAA,SAAS,EAAE,MAHR;AAIHC,MAAAA,YAAY,EAAE,MAJX;AAKHC,MAAAA,IAAI,EAAE,IALH;AAMHC,MAAAA,OAAO,EAAE,IANN;AAOHC,MAAAA,gBAAgB,EAAE,IAPf;AAQHC,MAAAA,qBAAqB,EAAE,IARpB;AASHC,MAAAA,cAAc,EAAE,IATb;AAUHC,MAAAA,gBAAgB,EAAEC,6BAAkBC;AAVjC;AADE;AARgC,CAApC;;;AAwBP,eAAef,QAAf,CAAwBgB,IAAxB,EAA8Bd,OAA9B,EAAuCe,OAAvC,EAAgD;AAC9C,QAAMC,GAAG,GAAGD,OAAO,CAACC,GAApB;AACAhB,EAAAA,OAAO,CAACC,GAAR,GAAcD,OAAO,CAACC,GAAR,IAAe,EAA7B;AACA,QAAMgB,WAAW,GAAGC,cAAc,CAACJ,IAAD,CAAlC;;AAGA,MAAIG,WAAW,KAAK3B,QAApB,EAA8B;AAC5B,UAAM,IAAI6B,KAAJ,CAAU,qEAAV,CAAN;AACD;;AAGD,MAAIf,SAAJ;;AACA,MAAIJ,OAAO,CAACC,GAAR,CAAYG,SAAZ,KAA0B,MAA9B,EAAsC;AACpCA,IAAAA,SAAS,GAAGhB,aAAa,CAACgC,IAAd,CAAmBJ,GAAnB,CAAZ;AACD,GAFD,MAEO;AACLZ,IAAAA,SAAS,GAAGJ,OAAO,CAACC,GAAR,CAAYG,SAAxB;AACD;;AAED,MAAIC,YAAJ;;AACA,MAAIL,OAAO,CAACK,YAAR,KAAyB,MAA7B,EAAqC;AACnCA,IAAAA,YAAY,GAAGhB,iBAAiB,CAAC+B,IAAlB,CAAuBJ,GAAvB,CAAf;AACD,GAFD,MAEO;AACLX,IAAAA,YAAY,GAAGL,OAAO,CAACC,GAAR,CAAYI,YAA3B;AACD;;AAED,MAAID,SAAJ,EAAe;AACbU,IAAAA,IAAI,GAAG,MAAMO,YAAY,CAACP,IAAD,EAAOd,OAAP,EAAgBe,OAAhB,CAAzB;AACD,GAFD,MAEO,IAAIV,YAAJ,EAAkB;AACvBS,IAAAA,IAAI,GAAG,MAAMQ,SAAS,CAACR,IAAD,EAAOd,OAAP,EAAgBe,OAAhB,CAAtB;;AACA,QAAIf,OAAO,CAACC,GAAR,CAAYC,WAAhB,EAA6B;AAC3BF,MAAAA,OAAO,CAACC,GAAR,CAAYK,IAAZ,GAAmBQ,IAAnB;AACA,YAAM,gBAAKA,IAAI,CAACS,UAAV,EAAsBhC,SAAtB,EAAiCS,OAAjC,CAAN;AACD;AACF,GANM,MAMA;AACLc,IAAAA,IAAI,GAAG,MAAMU,gBAAgB,CAACV,IAAD,EAAOd,OAAP,CAA7B;AACD;;AAED,SAAOc,IAAP;AACD;;AAED,eAAeU,gBAAf,CAAgCC,WAAhC,EAA6CzB,OAA7C,EAAsD;AACpD,SAAO,MAAM,iBAAMyB,WAAN,EAAmBC,kCAAnB,EAAqC1B,OAArC,CAAb;AACD;;AAED,eAAeqB,YAAf,CAA4BP,IAA5B,EAAkCd,OAAlC,EAA2Ce,OAA3C,EAAoD;AAClD,QAAMY,WAAW,GAAGC,IAAI,CAAC/B,KAAL,CAAW,IAAIgC,WAAJ,GAAkBC,MAAlB,CAAyBhB,IAAzB,CAAX,CAApB;AAEAa,EAAAA,WAAW,CAACI,MAAZ,GAAqBxC,SAArB;AACA,QAAM,oCAAqBoC,WAArB,EAAkC3B,OAAlC,EAA2Ce,OAA3C,CAAN;AAEA,SAAOY,WAAP;AACD;;AAED,eAAeL,SAAf,CAAyBR,IAAzB,EAA+Bd,OAA/B,EAAwCe,OAAxC,EAAiD;AAC/CD,EAAAA,IAAI,GAAGc,IAAI,CAAC/B,KAAL,CAAW,IAAIgC,WAAJ,GAAkBC,MAAlB,CAAyBhB,IAAzB,CAAX,CAAP;AACA,SAAO,iCAAkBA,IAAlB,EAAwBd,OAAxB,EAAiCe,OAAjC,CAAP;AACD;;AAED,SAASG,cAAT,CAAwBJ,IAAxB,EAA8B;AAC5B,MAAIA,IAAI,YAAYkB,WAApB,EAAiC;AAE/B,WAAO,CAAC,GAAG,IAAIC,UAAJ,CAAenB,IAAf,EAAqB,CAArB,EAAwB,CAAxB,CAAJ,EACJoB,GADI,CACCC,KAAD,IAAWA,KAAK,CAACC,QAAN,CAAe,EAAf,EAAmBC,QAAnB,CAA4B,CAA5B,EAA+B,GAA/B,CADX,EAEJC,IAFI,CAEC,EAFD,CAAP;AAGD;;AACD,SAAO,IAAP;AACD","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {load, parse} from '@loaders.gl/core';\nimport {I3SContentLoader} from './i3s-content-loader';\nimport {normalizeTileData, normalizeTilesetData} from './lib/parsers/parse-i3s';\nimport {COORDINATE_SYSTEM} from './lib/parsers/constants';\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\nconst TILESET_REGEX = /layers\\/[0-9]+$/;\nconst TILE_HEADER_REGEX = /nodes\\/([0-9-]+|root)$/;\nconst SLPK_HEX = '504b0304';\n\n/**\n * Loader for I3S - Indexed 3D Scene Layer\n */\nexport const I3SLoader: LoaderWithParser = {\n name: 'I3S (Indexed Scene Layers)',\n id: 'i3s',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse: parseI3S,\n extensions: ['bin'],\n options: {\n i3s: {\n loadContent: true,\n token: null,\n isTileset: 'auto',\n isTileHeader: 'auto',\n tile: null,\n tileset: null,\n useDracoGeometry: true,\n useCompressedTextures: true,\n decodeTextures: true,\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS\n }\n }\n};\n\nasync function parseI3S(data, options, context) {\n const url = context.url;\n options.i3s = options.i3s || {};\n const magicNumber = getMagicNumber(data);\n\n // check if file is slpk\n if (magicNumber === SLPK_HEX) {\n throw new Error('Files with .slpk extention currently are not supported by I3SLoader');\n }\n\n // auto detect file type based on url\n let isTileset;\n if (options.i3s.isTileset === 'auto') {\n isTileset = TILESET_REGEX.test(url);\n } else {\n isTileset = options.i3s.isTileset;\n }\n\n let isTileHeader;\n if (options.isTileHeader === 'auto') {\n isTileHeader = TILE_HEADER_REGEX.test(url);\n } else {\n isTileHeader = options.i3s.isTileHeader;\n }\n\n if (isTileset) {\n data = await parseTileset(data, options, context);\n } else if (isTileHeader) {\n data = await parseTile(data, options, context);\n if (options.i3s.loadContent) {\n options.i3s.tile = data;\n await load(data.contentUrl, I3SLoader, options);\n }\n } else {\n data = await parseTileContent(data, options);\n }\n\n return data;\n}\n\nasync function parseTileContent(arrayBuffer, options) {\n return await parse(arrayBuffer, I3SContentLoader, options);\n}\n\nasync function parseTileset(data, options, context) {\n const tilesetJson = JSON.parse(new TextDecoder().decode(data));\n // eslint-disable-next-line no-use-before-define\n tilesetJson.loader = I3SLoader;\n await normalizeTilesetData(tilesetJson, options, context);\n\n return tilesetJson;\n}\n\nasync function parseTile(data, options, context) {\n data = JSON.parse(new TextDecoder().decode(data));\n return normalizeTileData(data, options, context);\n}\n\nfunction getMagicNumber(data) {\n if (data instanceof ArrayBuffer) {\n // slice binary data (4 bytes from the beginning) and transform it to hexadecimal numeral system\n return [...new Uint8Array(data, 0, 4)]\n .map((value) => value.toString(16).padStart(2, '0'))\n .join('');\n }\n return null;\n}\n"],"file":"i3s-loader.js"}
|
|
@@ -1,72 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
6
|
exports.I3SNodePageLoader = void 0;
|
|
7
|
+
const VERSION = typeof "3.1.0-beta.5" !== 'undefined' ? "3.1.0-beta.5" : 'latest';
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
|
|
14
|
-
var VERSION = typeof "3.1.0-alpha.4" !== 'undefined' ? "3.1.0-alpha.4" : 'latest';
|
|
15
|
-
|
|
16
|
-
function parseNodePage(_x) {
|
|
17
|
-
return _parseNodePage.apply(this, arguments);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function _parseNodePage() {
|
|
21
|
-
_parseNodePage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
|
|
22
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
23
|
-
while (1) {
|
|
24
|
-
switch (_context.prev = _context.next) {
|
|
25
|
-
case 0:
|
|
26
|
-
return _context.abrupt("return", JSON.parse(new TextDecoder().decode(data)));
|
|
27
|
-
|
|
28
|
-
case 1:
|
|
29
|
-
case "end":
|
|
30
|
-
return _context.stop();
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}, _callee);
|
|
34
|
-
}));
|
|
35
|
-
return _parseNodePage.apply(this, arguments);
|
|
9
|
+
async function parseNodePage(data) {
|
|
10
|
+
return JSON.parse(new TextDecoder().decode(data));
|
|
36
11
|
}
|
|
37
12
|
|
|
38
|
-
|
|
13
|
+
const I3SNodePageLoader = {
|
|
39
14
|
name: 'I3S Node Page',
|
|
40
15
|
id: 'i3s-node-page',
|
|
41
16
|
module: 'i3s',
|
|
42
17
|
version: VERSION,
|
|
43
18
|
mimeTypes: ['application/json'],
|
|
44
|
-
parse
|
|
19
|
+
parse,
|
|
45
20
|
extensions: ['json'],
|
|
46
21
|
options: {}
|
|
47
22
|
};
|
|
48
23
|
exports.I3SNodePageLoader = I3SNodePageLoader;
|
|
49
24
|
|
|
50
|
-
function parse(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
function _parse() {
|
|
55
|
-
_parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(data) {
|
|
56
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
57
|
-
while (1) {
|
|
58
|
-
switch (_context2.prev = _context2.next) {
|
|
59
|
-
case 0:
|
|
60
|
-
data = parseNodePage(data);
|
|
61
|
-
return _context2.abrupt("return", data);
|
|
62
|
-
|
|
63
|
-
case 2:
|
|
64
|
-
case "end":
|
|
65
|
-
return _context2.stop();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}, _callee2);
|
|
69
|
-
}));
|
|
70
|
-
return _parse.apply(this, arguments);
|
|
25
|
+
async function parse(data) {
|
|
26
|
+
data = parseNodePage(data);
|
|
27
|
+
return data;
|
|
71
28
|
}
|
|
72
29
|
//# sourceMappingURL=i3s-node-page-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/i3s-node-page-loader.ts"],"names":["VERSION","parseNodePage","data","JSON","parse","TextDecoder","decode","I3SNodePageLoader","name","id","module","version","mimeTypes","extensions","options"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/i3s-node-page-loader.ts"],"names":["VERSION","parseNodePage","data","JSON","parse","TextDecoder","decode","I3SNodePageLoader","name","id","module","version","mimeTypes","extensions","options"],"mappings":";;;;;;AAIA,MAAMA,OAAO,GAAG,0BAAuB,WAAvB,oBAAmD,QAAnE;;AAEA,eAAeC,aAAf,CAA6BC,IAA7B,EAAmC;AACjC,SAAOC,IAAI,CAACC,KAAL,CAAW,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBJ,IAAzB,CAAX,CAAP;AACD;;AAKM,MAAMK,iBAAmC,GAAG;AACjDC,EAAAA,IAAI,EAAE,eAD2C;AAEjDC,EAAAA,EAAE,EAAE,eAF6C;AAGjDC,EAAAA,MAAM,EAAE,KAHyC;AAIjDC,EAAAA,OAAO,EAAEX,OAJwC;AAKjDY,EAAAA,SAAS,EAAE,CAAC,kBAAD,CALsC;AAMjDR,EAAAA,KANiD;AAOjDS,EAAAA,UAAU,EAAE,CAAC,MAAD,CAPqC;AAQjDC,EAAAA,OAAO,EAAE;AARwC,CAA5C;;;AAWP,eAAeV,KAAf,CAAqBF,IAArB,EAA2B;AACzBA,EAAAA,IAAI,GAAGD,aAAa,CAACC,IAAD,CAApB;AACA,SAAOA,IAAP;AACD","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\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\nasync function parseNodePage(data) {\n return JSON.parse(new TextDecoder().decode(data));\n}\n\n/**\n * Loader for I3S node pages\n */\nexport const I3SNodePageLoader: LoaderWithParser = {\n name: 'I3S Node Page',\n id: 'i3s-node-page',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/json'],\n parse,\n extensions: ['json'],\n options: {}\n};\n\nasync function parse(data) {\n data = parseNodePage(data);\n return data;\n}\n"],"file":"i3s-node-page-loader.js"}
|
package/dist/es5/index.js
CHANGED
|
@@ -5,34 +5,40 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
Object.defineProperty(exports, "I3SLoader", {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: function
|
|
8
|
+
get: function () {
|
|
9
9
|
return _i3sLoader.I3SLoader;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "I3SContentLoader", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function
|
|
14
|
+
get: function () {
|
|
15
15
|
return _i3sContentLoader.I3SContentLoader;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
Object.defineProperty(exports, "I3SAttributeLoader", {
|
|
19
19
|
enumerable: true,
|
|
20
|
-
get: function
|
|
20
|
+
get: function () {
|
|
21
21
|
return _i3sAttributeLoader.I3SAttributeLoader;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
24
|
Object.defineProperty(exports, "loadFeatureAttributes", {
|
|
25
25
|
enumerable: true,
|
|
26
|
-
get: function
|
|
26
|
+
get: function () {
|
|
27
27
|
return _i3sAttributeLoader.loadFeatureAttributes;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
30
|
Object.defineProperty(exports, "I3SBuildingSceneLayerLoader", {
|
|
31
31
|
enumerable: true,
|
|
32
|
-
get: function
|
|
32
|
+
get: function () {
|
|
33
33
|
return _i3sBuildingSceneLayerLoader.I3SBuildingSceneLayerLoader;
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
|
+
Object.defineProperty(exports, "COORDINATE_SYSTEM", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _constants.COORDINATE_SYSTEM;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
36
42
|
|
|
37
43
|
var _i3sLoader = require("./i3s-loader");
|
|
38
44
|
|
|
@@ -41,4 +47,6 @@ var _i3sContentLoader = require("./i3s-content-loader");
|
|
|
41
47
|
var _i3sAttributeLoader = require("./i3s-attribute-loader");
|
|
42
48
|
|
|
43
49
|
var _i3sBuildingSceneLayerLoader = require("./i3s-building-scene-layer-loader");
|
|
50
|
+
|
|
51
|
+
var _constants = require("./lib/parsers/constants");
|
|
44
52
|
//# sourceMappingURL=index.js.map
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAuBA","sourcesContent":["export {I3SLoader} from './i3s-loader';\nexport {I3SContentLoader} from './i3s-content-loader';\nexport {I3SAttributeLoader, loadFeatureAttributes} from './i3s-attribute-loader';\nexport {I3SBuildingSceneLayerLoader} from './i3s-building-scene-layer-loader';\nexport type {\n BoundingVolumes,\n Mbs,\n Obb,\n SceneLayer3D,\n AttributeStorageInfo,\n Field,\n ESRIField,\n PopupInfo,\n Node3DIndexDocument,\n LodSelection,\n NodeReference,\n Resource,\n I3SGeometry,\n MaxScreenThresholdSQ,\n NodeInPage,\n SharedResources,\n TextureImage,\n Attribute,\n Extent,\n FeatureAttribute\n} from './types';\nexport {COORDINATE_SYSTEM} from './lib/parsers/constants';\n"],"file":"index.js"}
|