@loaders.gl/i3s 4.0.0-beta.1 → 4.0.0-beta.3
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/arcgis-webscene-loader.d.ts.map +1 -0
- package/dist/{esm/arcgis-webscene-loader.js → arcgis-webscene-loader.js} +2 -2
- package/dist/arcgis-webscene-loader.js.map +1 -0
- package/dist/dist.dev.js +14694 -0
- package/dist/i3s-attribute-loader.d.ts.map +1 -0
- package/dist/{esm/i3s-attribute-loader.js → i3s-attribute-loader.js} +3 -3
- package/dist/i3s-attribute-loader.js.map +1 -0
- package/dist/i3s-building-scene-layer-loader.d.ts.map +1 -0
- package/dist/{esm/i3s-building-scene-layer-loader.js → i3s-building-scene-layer-loader.js} +2 -2
- package/dist/i3s-building-scene-layer-loader.js.map +1 -0
- package/dist/i3s-content-loader.d.ts.map +1 -0
- package/dist/{esm/i3s-content-loader.js → i3s-content-loader.js} +2 -2
- package/dist/i3s-content-loader.js.map +1 -0
- package/dist/i3s-content-worker-node.js +300 -155
- package/dist/i3s-content-worker-node.js.map +4 -4
- package/dist/i3s-content-worker.js +1337 -483
- package/dist/i3s-loader.d.ts.map +1 -0
- package/dist/{esm/i3s-loader.js → i3s-loader.js} +4 -4
- package/dist/i3s-loader.js.map +1 -0
- package/dist/i3s-node-page-loader.d.ts.map +1 -0
- package/dist/{esm/i3s-node-page-loader.js → i3s-node-page-loader.js} +1 -1
- package/dist/i3s-node-page-loader.js.map +1 -0
- package/dist/{src/i3s-slpk-loader.d.ts → i3s-slpk-loader.d.ts} +3 -1
- package/dist/i3s-slpk-loader.d.ts.map +1 -0
- package/dist/i3s-slpk-loader.js +19 -0
- package/dist/i3s-slpk-loader.js.map +1 -0
- package/dist/index.cjs +1587 -0
- package/dist/{src/index.d.ts → index.d.ts} +2 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/helpers/i3s-nodepages-tiles.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/helpers/i3s-nodepages-tiles.js +16 -17
- package/dist/lib/helpers/i3s-nodepages-tiles.js.map +1 -0
- package/dist/lib/parsers/constants.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/constants.js +2 -2
- package/dist/lib/parsers/constants.js.map +1 -0
- package/dist/lib/parsers/parse-arcgis-webscene.d.ts.map +1 -0
- package/dist/lib/parsers/parse-arcgis-webscene.js.map +1 -0
- package/dist/lib/parsers/parse-i3s-attribute.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-i3s-attribute.js +1 -1
- package/dist/lib/parsers/parse-i3s-attribute.js.map +1 -0
- package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-i3s-building-scene-layer.js +1 -1
- package/dist/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -0
- package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-i3s-tile-content.js +6 -5
- package/dist/lib/parsers/parse-i3s-tile-content.js.map +1 -0
- package/dist/lib/parsers/parse-i3s.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-i3s.js +6 -6
- package/dist/lib/parsers/parse-i3s.js.map +1 -0
- package/dist/{src/lib → lib}/parsers/parse-slpk/parse-slpk.d.ts +1 -1
- package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-slpk/parse-slpk.js +9 -11
- package/dist/lib/parsers/parse-slpk/parse-slpk.js.map +1 -0
- package/dist/{src/lib → lib}/parsers/parse-slpk/slpk-archieve.d.ts +10 -7
- package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-slpk/slpk-archieve.js +21 -21
- package/dist/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -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.map +1 -0
- package/dist/lib/utils/customize-/321/201olors.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/utils/customize-/321/201olors.js +2 -2
- package/dist/lib/utils/customize-/321/201olors.js.map +1 -0
- package/dist/lib/utils/url-utils.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/utils/url-utils.js +3 -3
- package/dist/lib/utils/url-utils.js.map +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js.map +1 -0
- package/dist/workers/i3s-content-worker-node.d.ts.map +1 -0
- package/dist/{esm/workers → workers}/i3s-content-worker-node.js +1 -1
- package/dist/workers/i3s-content-worker-node.js.map +1 -0
- package/dist/workers/i3s-content-worker.d.ts.map +1 -0
- package/dist/workers/i3s-content-worker.js +4 -0
- package/dist/workers/i3s-content-worker.js.map +1 -0
- package/package.json +25 -17
- package/src/i3s-slpk-loader.ts +9 -18
- package/src/index.ts +3 -1
- package/src/lib/parsers/parse-i3s-tile-content.ts +2 -1
- package/src/lib/parsers/parse-slpk/parse-slpk.ts +13 -13
- package/src/lib/parsers/parse-slpk/slpk-archieve.ts +27 -19
- package/dist/dist.min.js +0 -15742
- package/dist/es5/arcgis-webscene-loader.js +0 -40
- package/dist/es5/arcgis-webscene-loader.js.map +0 -1
- package/dist/es5/bundle.js +0 -6
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/i3s-attribute-loader.js +0 -195
- package/dist/es5/i3s-attribute-loader.js.map +0 -1
- package/dist/es5/i3s-building-scene-layer-loader.js +0 -46
- package/dist/es5/i3s-building-scene-layer-loader.js.map +0 -1
- package/dist/es5/i3s-content-loader.js +0 -56
- package/dist/es5/i3s-content-loader.js.map +0 -1
- package/dist/es5/i3s-loader.js +0 -193
- package/dist/es5/i3s-loader.js.map +0 -1
- package/dist/es5/i3s-node-page-loader.js +0 -41
- package/dist/es5/i3s-node-page-loader.js.map +0 -1
- package/dist/es5/i3s-slpk-loader.js +0 -48
- package/dist/es5/i3s-slpk-loader.js.map +0 -1
- package/dist/es5/index.js +0 -75
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/lib/helpers/i3s-nodepages-tiles.js +0 -316
- package/dist/es5/lib/helpers/i3s-nodepages-tiles.js.map +0 -1
- package/dist/es5/lib/parsers/constants.js +0 -71
- package/dist/es5/lib/parsers/constants.js.map +0 -1
- package/dist/es5/lib/parsers/parse-arcgis-webscene.js +0 -158
- package/dist/es5/lib/parsers/parse-arcgis-webscene.js.map +0 -1
- package/dist/es5/lib/parsers/parse-i3s-attribute.js +0 -76
- package/dist/es5/lib/parsers/parse-i3s-attribute.js.map +0 -1
- package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js +0 -65
- package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js.map +0 -1
- package/dist/es5/lib/parsers/parse-i3s-tile-content.js +0 -513
- package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +0 -1
- package/dist/es5/lib/parsers/parse-i3s.js +0 -128
- package/dist/es5/lib/parsers/parse-i3s.js.map +0 -1
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +0 -69
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +0 -1
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js +0 -254
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js.map +0 -1
- package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js +0 -17
- package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js.map +0 -1
- package/dist/es5/lib/utils/customize-/321/201olors.js +0 -184
- package/dist/es5/lib/utils/customize-/321/201olors.js.map +0 -1
- package/dist/es5/lib/utils/url-utils.js +0 -33
- package/dist/es5/lib/utils/url-utils.js.map +0 -1
- package/dist/es5/types.js +0 -13
- package/dist/es5/types.js.map +0 -1
- package/dist/es5/workers/i3s-content-worker-node.js +0 -7
- package/dist/es5/workers/i3s-content-worker-node.js.map +0 -1
- package/dist/es5/workers/i3s-content-worker.js +0 -6
- package/dist/es5/workers/i3s-content-worker.js.map +0 -1
- package/dist/esm/arcgis-webscene-loader.js.map +0 -1
- package/dist/esm/bundle.js +0 -4
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/i3s-attribute-loader.js.map +0 -1
- package/dist/esm/i3s-building-scene-layer-loader.js.map +0 -1
- package/dist/esm/i3s-content-loader.js.map +0 -1
- package/dist/esm/i3s-loader.js.map +0 -1
- package/dist/esm/i3s-node-page-loader.js.map +0 -1
- package/dist/esm/i3s-slpk-loader.js +0 -19
- package/dist/esm/i3s-slpk-loader.js.map +0 -1
- package/dist/esm/index.js +0 -10
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/helpers/i3s-nodepages-tiles.js.map +0 -1
- package/dist/esm/lib/parsers/constants.js.map +0 -1
- package/dist/esm/lib/parsers/parse-arcgis-webscene.js.map +0 -1
- package/dist/esm/lib/parsers/parse-i3s-attribute.js.map +0 -1
- package/dist/esm/lib/parsers/parse-i3s-building-scene-layer.js.map +0 -1
- package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +0 -1
- package/dist/esm/lib/parsers/parse-i3s.js.map +0 -1
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js.map +0 -1
- package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js.map +0 -1
- package/dist/esm/lib/utils/convert-i3s-obb-to-mbs.js.map +0 -1
- package/dist/esm/lib/utils/customize-/321/201olors.js.map +0 -1
- package/dist/esm/lib/utils/url-utils.js.map +0 -1
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/workers/i3s-content-worker-node.js.map +0 -1
- package/dist/esm/workers/i3s-content-worker.js +0 -4
- package/dist/esm/workers/i3s-content-worker.js.map +0 -1
- package/dist/src/arcgis-webscene-loader.d.ts.map +0 -1
- package/dist/src/bundle.d.ts +0 -2
- package/dist/src/bundle.d.ts.map +0 -1
- package/dist/src/i3s-attribute-loader.d.ts.map +0 -1
- package/dist/src/i3s-building-scene-layer-loader.d.ts.map +0 -1
- package/dist/src/i3s-content-loader.d.ts.map +0 -1
- package/dist/src/i3s-loader.d.ts.map +0 -1
- package/dist/src/i3s-node-page-loader.d.ts.map +0 -1
- package/dist/src/i3s-slpk-loader.d.ts.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/lib/helpers/i3s-nodepages-tiles.d.ts.map +0 -1
- package/dist/src/lib/parsers/constants.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-arcgis-webscene.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-i3s-attribute.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-i3s-building-scene-layer.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-i3s-tile-content.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-i3s.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-slpk/parse-slpk.d.ts.map +0 -1
- package/dist/src/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +0 -1
- package/dist/src/lib/utils/convert-i3s-obb-to-mbs.d.ts.map +0 -1
- package/dist/src/lib/utils/customize-/321/201olors.d.ts.map +0 -1
- package/dist/src/lib/utils/url-utils.d.ts.map +0 -1
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/workers/i3s-content-worker-node.d.ts.map +0 -1
- package/dist/src/workers/i3s-content-worker.d.ts.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/bundle.ts +0 -4
- /package/dist/{src/arcgis-webscene-loader.d.ts → arcgis-webscene-loader.d.ts} +0 -0
- /package/dist/{src/i3s-attribute-loader.d.ts → i3s-attribute-loader.d.ts} +0 -0
- /package/dist/{src/i3s-building-scene-layer-loader.d.ts → i3s-building-scene-layer-loader.d.ts} +0 -0
- /package/dist/{src/i3s-content-loader.d.ts → i3s-content-loader.d.ts} +0 -0
- /package/dist/{src/i3s-loader.d.ts → i3s-loader.d.ts} +0 -0
- /package/dist/{src/i3s-node-page-loader.d.ts → i3s-node-page-loader.d.ts} +0 -0
- /package/dist/{src/lib → lib}/helpers/i3s-nodepages-tiles.d.ts +0 -0
- /package/dist/{src/lib → lib}/parsers/constants.d.ts +0 -0
- /package/dist/{src/lib → lib}/parsers/parse-arcgis-webscene.d.ts +0 -0
- /package/dist/{esm/lib → lib}/parsers/parse-arcgis-webscene.js +0 -0
- /package/dist/{src/lib → lib}/parsers/parse-i3s-attribute.d.ts +0 -0
- /package/dist/{src/lib → lib}/parsers/parse-i3s-building-scene-layer.d.ts +0 -0
- /package/dist/{src/lib → lib}/parsers/parse-i3s-tile-content.d.ts +0 -0
- /package/dist/{src/lib → lib}/parsers/parse-i3s.d.ts +0 -0
- /package/dist/{src/lib → lib}/utils/convert-i3s-obb-to-mbs.d.ts +0 -0
- /package/dist/{esm/lib → lib}/utils/convert-i3s-obb-to-mbs.js +0 -0
- /package/dist/{src/lib → lib}/utils/customize-/321/201olors.d.ts" +0 -0
- /package/dist/{src/lib → lib}/utils/url-utils.d.ts +0 -0
- /package/dist/{src/types.d.ts → types.d.ts} +0 -0
- /package/dist/{esm/types.js → types.js} +0 -0
- /package/dist/{src/workers → workers}/i3s-content-worker-node.d.ts +0 -0
- /package/dist/{src/workers → workers}/i3s-content-worker.d.ts +0 -0
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.normalizeTileData = normalizeTileData;
|
|
8
|
-
exports.normalizeTileNonUrlData = normalizeTileNonUrlData;
|
|
9
|
-
exports.normalizeTilesetData = normalizeTilesetData;
|
|
10
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
var _culling = require("@math.gl/culling");
|
|
15
|
-
var _geospatial = require("@math.gl/geospatial");
|
|
16
|
-
var _core = require("@loaders.gl/core");
|
|
17
|
-
var _tiles = require("@loaders.gl/tiles");
|
|
18
|
-
var _i3sNodepagesTiles = _interopRequireDefault(require("../helpers/i3s-nodepages-tiles"));
|
|
19
|
-
var _urlUtils = require("../utils/url-utils");
|
|
20
|
-
var _i3sLoader = require("../../i3s-loader");
|
|
21
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
22
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
23
|
-
function normalizeTileData(tile, context) {
|
|
24
|
-
var url = context.url || '';
|
|
25
|
-
var contentUrl;
|
|
26
|
-
if (tile.geometryData) {
|
|
27
|
-
contentUrl = "".concat(url, "/").concat(tile.geometryData[0].href);
|
|
28
|
-
}
|
|
29
|
-
var textureUrl;
|
|
30
|
-
if (tile.textureData) {
|
|
31
|
-
textureUrl = "".concat(url, "/").concat(tile.textureData[0].href);
|
|
32
|
-
}
|
|
33
|
-
var attributeUrls;
|
|
34
|
-
if (tile.attributeData) {
|
|
35
|
-
attributeUrls = (0, _urlUtils.generateTileAttributeUrls)(url, tile);
|
|
36
|
-
}
|
|
37
|
-
var children = tile.children || [];
|
|
38
|
-
return normalizeTileNonUrlData(_objectSpread(_objectSpread({}, tile), {}, {
|
|
39
|
-
children: children,
|
|
40
|
-
url: url,
|
|
41
|
-
contentUrl: contentUrl,
|
|
42
|
-
textureUrl: textureUrl,
|
|
43
|
-
textureFormat: 'jpg',
|
|
44
|
-
attributeUrls: attributeUrls,
|
|
45
|
-
isDracoGeometry: false
|
|
46
|
-
}));
|
|
47
|
-
}
|
|
48
|
-
function normalizeTileNonUrlData(tile) {
|
|
49
|
-
var _tile$lodSelection, _tile$lodSelection2;
|
|
50
|
-
var boundingVolume = {};
|
|
51
|
-
var mbs = [0, 0, 0, 1];
|
|
52
|
-
if (tile.mbs) {
|
|
53
|
-
mbs = tile.mbs;
|
|
54
|
-
boundingVolume.sphere = [].concat((0, _toConsumableArray2.default)(_geospatial.Ellipsoid.WGS84.cartographicToCartesian(tile.mbs.slice(0, 3))), [tile.mbs[3]]);
|
|
55
|
-
} else if (tile.obb) {
|
|
56
|
-
boundingVolume.box = [].concat((0, _toConsumableArray2.default)(_geospatial.Ellipsoid.WGS84.cartographicToCartesian(tile.obb.center)), (0, _toConsumableArray2.default)(tile.obb.halfSize), (0, _toConsumableArray2.default)(tile.obb.quaternion));
|
|
57
|
-
var obb = new _culling.OrientedBoundingBox().fromCenterHalfSizeQuaternion(boundingVolume.box.slice(0, 3), tile.obb.halfSize, tile.obb.quaternion);
|
|
58
|
-
var boundingSphere = obb.getBoundingSphere();
|
|
59
|
-
boundingVolume.sphere = [].concat((0, _toConsumableArray2.default)(boundingSphere.center), [boundingSphere.radius]);
|
|
60
|
-
mbs = [].concat((0, _toConsumableArray2.default)(tile.obb.center), [boundingSphere.radius]);
|
|
61
|
-
}
|
|
62
|
-
var lodMetricType = (_tile$lodSelection = tile.lodSelection) === null || _tile$lodSelection === void 0 ? void 0 : _tile$lodSelection[0].metricType;
|
|
63
|
-
var lodMetricValue = (_tile$lodSelection2 = tile.lodSelection) === null || _tile$lodSelection2 === void 0 ? void 0 : _tile$lodSelection2[0].maxError;
|
|
64
|
-
var type = _tiles.TILE_TYPE.MESH;
|
|
65
|
-
var refine = _tiles.TILE_REFINEMENT.REPLACE;
|
|
66
|
-
return _objectSpread(_objectSpread({}, tile), {}, {
|
|
67
|
-
mbs: mbs,
|
|
68
|
-
boundingVolume: boundingVolume,
|
|
69
|
-
lodMetricType: lodMetricType,
|
|
70
|
-
lodMetricValue: lodMetricValue,
|
|
71
|
-
type: type,
|
|
72
|
-
refine: refine
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
function normalizeTilesetData(_x, _x2, _x3) {
|
|
76
|
-
return _normalizeTilesetData.apply(this, arguments);
|
|
77
|
-
}
|
|
78
|
-
function _normalizeTilesetData() {
|
|
79
|
-
_normalizeTilesetData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tileset, options, context) {
|
|
80
|
-
var url, nodePagesTile, root, parseOptions, rootNodeUrl;
|
|
81
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
82
|
-
while (1) switch (_context.prev = _context.next) {
|
|
83
|
-
case 0:
|
|
84
|
-
url = context.url;
|
|
85
|
-
if (!tileset.nodePages) {
|
|
86
|
-
_context.next = 8;
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
nodePagesTile = new _i3sNodepagesTiles.default(tileset, url, options);
|
|
90
|
-
_context.next = 5;
|
|
91
|
-
return nodePagesTile.formTileFromNodePages(0);
|
|
92
|
-
case 5:
|
|
93
|
-
root = _context.sent;
|
|
94
|
-
_context.next = 13;
|
|
95
|
-
break;
|
|
96
|
-
case 8:
|
|
97
|
-
parseOptions = options.i3s;
|
|
98
|
-
rootNodeUrl = (0, _urlUtils.getUrlWithToken)("".concat(url, "/nodes/root"), parseOptions.token);
|
|
99
|
-
_context.next = 12;
|
|
100
|
-
return (0, _core.load)(rootNodeUrl, _i3sLoader.I3SLoader, _objectSpread(_objectSpread({}, options), {}, {
|
|
101
|
-
i3s: _objectSpread(_objectSpread({}, options.i3s), {}, {
|
|
102
|
-
loadContent: false,
|
|
103
|
-
isTileHeader: true,
|
|
104
|
-
isTileset: false
|
|
105
|
-
})
|
|
106
|
-
}));
|
|
107
|
-
case 12:
|
|
108
|
-
root = _context.sent;
|
|
109
|
-
case 13:
|
|
110
|
-
return _context.abrupt("return", _objectSpread(_objectSpread({}, tileset), {}, {
|
|
111
|
-
loader: _i3sLoader.I3SLoader,
|
|
112
|
-
url: url,
|
|
113
|
-
basePath: url,
|
|
114
|
-
type: _tiles.TILESET_TYPE.I3S,
|
|
115
|
-
nodePagesTile: nodePagesTile,
|
|
116
|
-
root: root,
|
|
117
|
-
lodMetricType: root.lodMetricType,
|
|
118
|
-
lodMetricValue: root.lodMetricValue
|
|
119
|
-
}));
|
|
120
|
-
case 14:
|
|
121
|
-
case "end":
|
|
122
|
-
return _context.stop();
|
|
123
|
-
}
|
|
124
|
-
}, _callee);
|
|
125
|
-
}));
|
|
126
|
-
return _normalizeTilesetData.apply(this, arguments);
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=parse-i3s.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-i3s.js","names":["_culling","require","_geospatial","_core","_tiles","_i3sNodepagesTiles","_interopRequireDefault","_urlUtils","_i3sLoader","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","normalizeTileData","tile","context","url","contentUrl","geometryData","concat","href","textureUrl","textureData","attributeUrls","attributeData","generateTileAttributeUrls","children","normalizeTileNonUrlData","textureFormat","isDracoGeometry","_tile$lodSelection","_tile$lodSelection2","boundingVolume","mbs","sphere","_toConsumableArray2","Ellipsoid","WGS84","cartographicToCartesian","slice","obb","box","center","halfSize","quaternion","OrientedBoundingBox","fromCenterHalfSizeQuaternion","boundingSphere","getBoundingSphere","radius","lodMetricType","lodSelection","metricType","lodMetricValue","maxError","type","TILE_TYPE","MESH","refine","TILE_REFINEMENT","REPLACE","normalizeTilesetData","_x","_x2","_x3","_normalizeTilesetData","_asyncToGenerator2","_regenerator","mark","_callee","tileset","options","nodePagesTile","root","parseOptions","rootNodeUrl","wrap","_callee$","_context","prev","next","nodePages","I3SNodePagesTiles","formTileFromNodePages","sent","i3s","getUrlWithToken","token","load","I3SLoader","loadContent","isTileHeader","isTileset","abrupt","loader","basePath","TILESET_TYPE","I3S","stop"],"sources":["../../../../src/lib/parsers/parse-i3s.ts"],"sourcesContent":["import {OrientedBoundingBox} from '@math.gl/culling';\nimport {Ellipsoid} from '@math.gl/geospatial';\nimport {load} from '@loaders.gl/core';\nimport {TILE_TYPE, TILE_REFINEMENT, TILESET_TYPE} from '@loaders.gl/tiles';\nimport I3SNodePagesTiles from '../helpers/i3s-nodepages-tiles';\nimport {generateTileAttributeUrls, getUrlWithToken} from '../utils/url-utils';\nimport {\n I3STilesetHeader,\n I3STileHeader,\n Mbs,\n I3SMinimalNodeData,\n Node3DIndexDocument,\n SceneLayer3D,\n I3SParseOptions\n} from '../../types';\nimport type {LoaderOptions, LoaderContext} from '@loaders.gl/loader-utils';\nimport { I3SLoader } from '../../i3s-loader';\n\nexport function normalizeTileData(tile : Node3DIndexDocument, context: LoaderContext): I3STileHeader {\n const url: string = context.url || '';\n let contentUrl: string | undefined;\n if (tile.geometryData) {\n contentUrl = `${url}/${tile.geometryData[0].href}`;\n }\n\n let textureUrl: string | undefined;\n if (tile.textureData) {\n textureUrl = `${url}/${tile.textureData[0].href}`;\n }\n\n let attributeUrls: string[] | undefined;\n if (tile.attributeData) {\n attributeUrls = generateTileAttributeUrls(url, tile);\n }\n\n const children = tile.children || [];\n\n return normalizeTileNonUrlData({\n ...tile,\n children,\n url,\n contentUrl,\n textureUrl,\n textureFormat: 'jpg', // `jpg` format will cause `ImageLoader` usage that will be able to handle `png` as well\n attributeUrls,\n isDracoGeometry: false\n });\n}\n\nexport function normalizeTileNonUrlData(tile : I3SMinimalNodeData): I3STileHeader {\n const boundingVolume: {box?: number[]; sphere?: number[]} = {};\n let mbs: Mbs = [0, 0, 0, 1];\n if (tile.mbs) {\n mbs = tile.mbs;\n boundingVolume.sphere = [\n ...Ellipsoid.WGS84.cartographicToCartesian(tile.mbs.slice(0, 3)), // cartesian center of sphere\n tile.mbs[3] // radius of sphere\n ] as Mbs;\n } else if (tile.obb) {\n boundingVolume.box = [\n ...Ellipsoid.WGS84.cartographicToCartesian(tile.obb.center), // cartesian center of box\n ...tile.obb.halfSize, // halfSize\n ...tile.obb.quaternion // quaternion\n ];\n const obb = new OrientedBoundingBox().fromCenterHalfSizeQuaternion(\n boundingVolume.box.slice(0, 3),\n tile.obb.halfSize,\n tile.obb.quaternion\n );\n const boundingSphere = obb.getBoundingSphere();\n boundingVolume.sphere = [...boundingSphere.center , boundingSphere.radius] as Mbs;\n mbs = [...tile.obb.center, boundingSphere.radius] as Mbs;\n }\n\n const lodMetricType = tile.lodSelection?.[0].metricType;\n const lodMetricValue = tile.lodSelection?.[0].maxError;\n const type = TILE_TYPE.MESH;\n /**\n * I3S specification supports only REPLACE\n */\n const refine = TILE_REFINEMENT.REPLACE;\n\n return {...tile, mbs, boundingVolume, lodMetricType, lodMetricValue, type, refine};\n}\n\nexport async function normalizeTilesetData(tileset : SceneLayer3D, options : LoaderOptions, context: LoaderContext): Promise<I3STileHeader | I3STilesetHeader> {\n const url = context.url;\n let nodePagesTile: I3SNodePagesTiles | undefined;\n let root: I3STileHeader | I3STilesetHeader;\n if (tileset.nodePages) {\n nodePagesTile = new I3SNodePagesTiles(tileset, url, options);\n root = await nodePagesTile.formTileFromNodePages(0);\n } else {\n const parseOptions = options.i3s as I3SParseOptions;\n const rootNodeUrl = getUrlWithToken(`${url}/nodes/root`, parseOptions.token);\n // eslint-disable-next-line no-use-before-define\n root = await load(rootNodeUrl, I3SLoader, {\n ...options,\n i3s: {\n // @ts-expect-error options is not properly typed\n ...options.i3s,\n loadContent: false, isTileHeader: true, isTileset: false}\n });\n }\n\n return {\n ...tileset,\n loader: I3SLoader,\n url,\n basePath: url,\n type: TILESET_TYPE.I3S,\n nodePagesTile,\n // @ts-expect-error\n root,\n lodMetricType: root.lodMetricType,\n lodMetricValue: root.lodMetricValue\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.parseSLPK = void 0;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
-
var _zip = require("@loaders.gl/zip");
|
|
11
|
-
var _slpkArchieve = require("./slpk-archieve");
|
|
12
|
-
var parseSLPK = function () {
|
|
13
|
-
var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(fileProvider, cb) {
|
|
14
|
-
var hashCDOffset, cdFileHeader, hashData, localFileHeader, fileDataOffset, hashFile;
|
|
15
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
16
|
-
while (1) switch (_context.prev = _context.next) {
|
|
17
|
-
case 0:
|
|
18
|
-
_context.next = 2;
|
|
19
|
-
return (0, _zip.searchFromTheEnd)(fileProvider, _zip.cdSignature);
|
|
20
|
-
case 2:
|
|
21
|
-
hashCDOffset = _context.sent;
|
|
22
|
-
_context.next = 5;
|
|
23
|
-
return (0, _zip.parseZipCDFileHeader)(hashCDOffset, fileProvider);
|
|
24
|
-
case 5:
|
|
25
|
-
cdFileHeader = _context.sent;
|
|
26
|
-
if (!((cdFileHeader === null || cdFileHeader === void 0 ? void 0 : cdFileHeader.fileName) !== '@specialIndexFileHASH128@')) {
|
|
27
|
-
_context.next = 14;
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
cb === null || cb === void 0 ? void 0 : cb('SLPK doesnt contain hash file');
|
|
31
|
-
_context.next = 10;
|
|
32
|
-
return (0, _zip.generateHashInfo)(fileProvider);
|
|
33
|
-
case 10:
|
|
34
|
-
hashData = _context.sent;
|
|
35
|
-
cb === null || cb === void 0 ? void 0 : cb('hash info has been composed according to central directory records');
|
|
36
|
-
_context.next = 25;
|
|
37
|
-
break;
|
|
38
|
-
case 14:
|
|
39
|
-
cb === null || cb === void 0 ? void 0 : cb('SLPK contains hash file');
|
|
40
|
-
_context.next = 17;
|
|
41
|
-
return (0, _zip.parseZipLocalFileHeader)(cdFileHeader.localHeaderOffset, fileProvider);
|
|
42
|
-
case 17:
|
|
43
|
-
localFileHeader = _context.sent;
|
|
44
|
-
if (localFileHeader) {
|
|
45
|
-
_context.next = 20;
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
48
|
-
throw new Error('corrupted SLPK');
|
|
49
|
-
case 20:
|
|
50
|
-
fileDataOffset = localFileHeader.fileDataOffset;
|
|
51
|
-
_context.next = 23;
|
|
52
|
-
return fileProvider.slice(fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
|
|
53
|
-
case 23:
|
|
54
|
-
hashFile = _context.sent;
|
|
55
|
-
hashData = (0, _zip.parseHashFile)(hashFile);
|
|
56
|
-
case 25:
|
|
57
|
-
return _context.abrupt("return", new _slpkArchieve.SLPKArchive(fileProvider, hashData));
|
|
58
|
-
case 26:
|
|
59
|
-
case "end":
|
|
60
|
-
return _context.stop();
|
|
61
|
-
}
|
|
62
|
-
}, _callee);
|
|
63
|
-
}));
|
|
64
|
-
return function parseSLPK(_x, _x2) {
|
|
65
|
-
return _ref.apply(this, arguments);
|
|
66
|
-
};
|
|
67
|
-
}();
|
|
68
|
-
exports.parseSLPK = parseSLPK;
|
|
69
|
-
//# sourceMappingURL=parse-slpk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-slpk.js","names":["_zip","require","_slpkArchieve","parseSLPK","_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","SLPKArchive","stop","_x","_x2","apply","arguments","exports"],"sources":["../../../../../src/lib/parsers/parse-slpk/parse-slpk.ts"],"sourcesContent":["import {FileProvider} from '@loaders.gl/loader-utils';\nimport {\n parseZipCDFileHeader,\n cdSignature as cdHeaderSignature,\n parseZipLocalFileHeader,\n searchFromTheEnd,\n HashElement,\n parseHashFile,\n generateHashInfo\n} from '@loaders.gl/zip';\nimport {SLPKArchive} from './slpk-archieve';\n\n/**\n * Creates slpk file handler from raw file\n * @param fileProvider raw file data\n * @param cb is called with information message during parsing\n * @returns slpk file handler\n */\nexport const parseSLPK = async (\n fileProvider: FileProvider,\n cb?: (msg: string) => void\n): Promise<SLPKArchive> => {\n const hashCDOffset = await searchFromTheEnd(fileProvider, cdHeaderSignature);\n\n const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);\n\n let hashData: HashElement[];\n if (cdFileHeader?.fileName !== '@specialIndexFileHASH128@') {\n cb?.('SLPK 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?.('SLPK contains hash file');\n const localFileHeader = await parseZipLocalFileHeader(\n cdFileHeader.localHeaderOffset,\n fileProvider\n );\n if (!localFileHeader) {\n throw new Error('corrupted SLPK');\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 SLPKArchive(fileProvider, hashData);\n};\n"],"mappings":";;;;;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AASA,IAAAC,aAAA,GAAAD,OAAA;AAQO,IAAME,SAAS;EAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAG,SAAAC,QACvBC,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,2BAA2B;YAAAP,QAAA,CAAAE,IAAA;YAAA;UAAA;UACxDX,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAG,+BAA+B,CAAC;UAACS,QAAA,CAAAE,IAAA;UAAA,OACrB,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,yBAAyB,CAAC;UAACS,QAAA,CAAAE,IAAA;UAAA,OACF,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,gBAAgB,CAAC;QAAA;UAG7Bf,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,yBAAW,CAAC1B,YAAY,EAAEI,QAAQ,CAAC;QAAA;QAAA;UAAA,OAAAM,QAAA,CAAAiB,IAAA;MAAA;IAAA,GAAA5B,OAAA;EAAA,CAC/C;EAAA,gBAjCYN,SAASA,CAAAmC,EAAA,EAAAC,GAAA;IAAA,OAAAnC,IAAA,CAAAoC,KAAA,OAAAC,SAAA;EAAA;AAAA,GAiCrB;AAACC,OAAA,CAAAvC,SAAA,GAAAA,SAAA"}
|
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.SLPKArchive = 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
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
17
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
18
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
19
|
-
var PATH_DESCRIPTIONS = [{
|
|
20
|
-
test: /^$/,
|
|
21
|
-
extensions: ['3dSceneLayer.json.gz']
|
|
22
|
-
}, {
|
|
23
|
-
test: /^nodepages\/\d+$/,
|
|
24
|
-
extensions: ['.json.gz']
|
|
25
|
-
}, {
|
|
26
|
-
test: /^nodes\/(\d+|root)$/,
|
|
27
|
-
extensions: ['/3dNodeIndexDocument.json.gz']
|
|
28
|
-
}, {
|
|
29
|
-
test: /^nodes\/\d+\/textures\/.+$/,
|
|
30
|
-
extensions: ['.jpg', '.png', '.bin.dds.gz', '.ktx']
|
|
31
|
-
}, {
|
|
32
|
-
test: /^nodes\/\d+\/geometries\/\d+$/,
|
|
33
|
-
extensions: ['.bin.gz', '.draco.gz']
|
|
34
|
-
}, {
|
|
35
|
-
test: /^nodes\/\d+\/attributes\/f_\d+\/\d+$/,
|
|
36
|
-
extensions: ['.bin.gz']
|
|
37
|
-
}, {
|
|
38
|
-
test: /^statistics\/f_\d+\/\d+$/,
|
|
39
|
-
extensions: ['.json.gz']
|
|
40
|
-
}, {
|
|
41
|
-
test: /^nodes\/\d+\/shared$/,
|
|
42
|
-
extensions: ['/sharedResource.json.gz']
|
|
43
|
-
}];
|
|
44
|
-
var SLPKArchive = function () {
|
|
45
|
-
function SLPKArchive(slpkArchive, hashFile) {
|
|
46
|
-
(0, _classCallCheck2.default)(this, SLPKArchive);
|
|
47
|
-
(0, _defineProperty2.default)(this, "slpkArchive", void 0);
|
|
48
|
-
(0, _defineProperty2.default)(this, "hashArray", void 0);
|
|
49
|
-
this.slpkArchive = slpkArchive;
|
|
50
|
-
this.hashArray = hashFile;
|
|
51
|
-
}
|
|
52
|
-
(0, _createClass2.default)(SLPKArchive, [{
|
|
53
|
-
key: "getFile",
|
|
54
|
-
value: function () {
|
|
55
|
-
var _getFile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(path) {
|
|
56
|
-
var mode,
|
|
57
|
-
_PATH_DESCRIPTIONS$fi,
|
|
58
|
-
extensions,
|
|
59
|
-
data,
|
|
60
|
-
_iterator,
|
|
61
|
-
_step,
|
|
62
|
-
ext,
|
|
63
|
-
decompressedFile,
|
|
64
|
-
fileWithoutCompression,
|
|
65
|
-
_args = arguments;
|
|
66
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
67
|
-
while (1) switch (_context.prev = _context.next) {
|
|
68
|
-
case 0:
|
|
69
|
-
mode = _args.length > 1 && _args[1] !== undefined ? _args[1] : 'raw';
|
|
70
|
-
if (!(mode === 'http')) {
|
|
71
|
-
_context.next = 26;
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
|
-
extensions = (_PATH_DESCRIPTIONS$fi = PATH_DESCRIPTIONS.find(function (val) {
|
|
75
|
-
return val.test.test(path);
|
|
76
|
-
})) === null || _PATH_DESCRIPTIONS$fi === void 0 ? void 0 : _PATH_DESCRIPTIONS$fi.extensions;
|
|
77
|
-
if (!extensions) {
|
|
78
|
-
_context.next = 26;
|
|
79
|
-
break;
|
|
80
|
-
}
|
|
81
|
-
_iterator = _createForOfIteratorHelper(extensions);
|
|
82
|
-
_context.prev = 5;
|
|
83
|
-
_iterator.s();
|
|
84
|
-
case 7:
|
|
85
|
-
if ((_step = _iterator.n()).done) {
|
|
86
|
-
_context.next = 16;
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
ext = _step.value;
|
|
90
|
-
_context.next = 11;
|
|
91
|
-
return this.getDataByPath("".concat(path).concat(ext));
|
|
92
|
-
case 11:
|
|
93
|
-
data = _context.sent;
|
|
94
|
-
if (!data) {
|
|
95
|
-
_context.next = 14;
|
|
96
|
-
break;
|
|
97
|
-
}
|
|
98
|
-
return _context.abrupt("break", 16);
|
|
99
|
-
case 14:
|
|
100
|
-
_context.next = 7;
|
|
101
|
-
break;
|
|
102
|
-
case 16:
|
|
103
|
-
_context.next = 21;
|
|
104
|
-
break;
|
|
105
|
-
case 18:
|
|
106
|
-
_context.prev = 18;
|
|
107
|
-
_context.t0 = _context["catch"](5);
|
|
108
|
-
_iterator.e(_context.t0);
|
|
109
|
-
case 21:
|
|
110
|
-
_context.prev = 21;
|
|
111
|
-
_iterator.f();
|
|
112
|
-
return _context.finish(21);
|
|
113
|
-
case 24:
|
|
114
|
-
if (!data) {
|
|
115
|
-
_context.next = 26;
|
|
116
|
-
break;
|
|
117
|
-
}
|
|
118
|
-
return _context.abrupt("return", Buffer.from(data));
|
|
119
|
-
case 26:
|
|
120
|
-
if (!(mode === 'raw')) {
|
|
121
|
-
_context.next = 37;
|
|
122
|
-
break;
|
|
123
|
-
}
|
|
124
|
-
_context.next = 29;
|
|
125
|
-
return this.getDataByPath("".concat(path, ".gz"));
|
|
126
|
-
case 29:
|
|
127
|
-
decompressedFile = _context.sent;
|
|
128
|
-
if (!decompressedFile) {
|
|
129
|
-
_context.next = 32;
|
|
130
|
-
break;
|
|
131
|
-
}
|
|
132
|
-
return _context.abrupt("return", Buffer.from(decompressedFile));
|
|
133
|
-
case 32:
|
|
134
|
-
_context.next = 34;
|
|
135
|
-
return this.getFileBytes(path);
|
|
136
|
-
case 34:
|
|
137
|
-
fileWithoutCompression = _context.sent;
|
|
138
|
-
if (!fileWithoutCompression) {
|
|
139
|
-
_context.next = 37;
|
|
140
|
-
break;
|
|
141
|
-
}
|
|
142
|
-
return _context.abrupt("return", Buffer.from(fileWithoutCompression));
|
|
143
|
-
case 37:
|
|
144
|
-
throw new Error('No such file in the archieve');
|
|
145
|
-
case 38:
|
|
146
|
-
case "end":
|
|
147
|
-
return _context.stop();
|
|
148
|
-
}
|
|
149
|
-
}, _callee, this, [[5, 18, 21, 24]]);
|
|
150
|
-
}));
|
|
151
|
-
function getFile(_x) {
|
|
152
|
-
return _getFile.apply(this, arguments);
|
|
153
|
-
}
|
|
154
|
-
return getFile;
|
|
155
|
-
}()
|
|
156
|
-
}, {
|
|
157
|
-
key: "getDataByPath",
|
|
158
|
-
value: function () {
|
|
159
|
-
var _getDataByPath = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(path) {
|
|
160
|
-
var data, compression, decompressedData;
|
|
161
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
162
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
163
|
-
case 0:
|
|
164
|
-
_context2.next = 2;
|
|
165
|
-
return this.getFileBytes(path.toLocaleLowerCase());
|
|
166
|
-
case 2:
|
|
167
|
-
data = _context2.sent;
|
|
168
|
-
if (data) {
|
|
169
|
-
_context2.next = 7;
|
|
170
|
-
break;
|
|
171
|
-
}
|
|
172
|
-
_context2.next = 6;
|
|
173
|
-
return this.getFileBytes(path);
|
|
174
|
-
case 6:
|
|
175
|
-
data = _context2.sent;
|
|
176
|
-
case 7:
|
|
177
|
-
if (data) {
|
|
178
|
-
_context2.next = 9;
|
|
179
|
-
break;
|
|
180
|
-
}
|
|
181
|
-
return _context2.abrupt("return", undefined);
|
|
182
|
-
case 9:
|
|
183
|
-
if (!/\.gz$/.test(path)) {
|
|
184
|
-
_context2.next = 15;
|
|
185
|
-
break;
|
|
186
|
-
}
|
|
187
|
-
compression = new _compression.GZipCompression();
|
|
188
|
-
_context2.next = 13;
|
|
189
|
-
return compression.decompress(data);
|
|
190
|
-
case 13:
|
|
191
|
-
decompressedData = _context2.sent;
|
|
192
|
-
return _context2.abrupt("return", decompressedData);
|
|
193
|
-
case 15:
|
|
194
|
-
return _context2.abrupt("return", Buffer.from(data));
|
|
195
|
-
case 16:
|
|
196
|
-
case "end":
|
|
197
|
-
return _context2.stop();
|
|
198
|
-
}
|
|
199
|
-
}, _callee2, this);
|
|
200
|
-
}));
|
|
201
|
-
function getDataByPath(_x2) {
|
|
202
|
-
return _getDataByPath.apply(this, arguments);
|
|
203
|
-
}
|
|
204
|
-
return getDataByPath;
|
|
205
|
-
}()
|
|
206
|
-
}, {
|
|
207
|
-
key: "getFileBytes",
|
|
208
|
-
value: function () {
|
|
209
|
-
var _getFileBytes = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(path) {
|
|
210
|
-
var nameHash, fileInfo, localFileHeader, compressedFile;
|
|
211
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
212
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
213
|
-
case 0:
|
|
214
|
-
nameHash = Buffer.from((0, _md.default)(path), 'hex');
|
|
215
|
-
fileInfo = (0, _zip.findBin)(nameHash, this.hashArray);
|
|
216
|
-
if (fileInfo) {
|
|
217
|
-
_context3.next = 4;
|
|
218
|
-
break;
|
|
219
|
-
}
|
|
220
|
-
return _context3.abrupt("return", undefined);
|
|
221
|
-
case 4:
|
|
222
|
-
_context3.next = 6;
|
|
223
|
-
return (0, _zip.parseZipLocalFileHeader)(fileInfo.offset, this.slpkArchive);
|
|
224
|
-
case 6:
|
|
225
|
-
localFileHeader = _context3.sent;
|
|
226
|
-
if (localFileHeader) {
|
|
227
|
-
_context3.next = 9;
|
|
228
|
-
break;
|
|
229
|
-
}
|
|
230
|
-
return _context3.abrupt("return", undefined);
|
|
231
|
-
case 9:
|
|
232
|
-
compressedFile = this.slpkArchive.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
|
|
233
|
-
return _context3.abrupt("return", compressedFile);
|
|
234
|
-
case 11:
|
|
235
|
-
case "end":
|
|
236
|
-
return _context3.stop();
|
|
237
|
-
}
|
|
238
|
-
}, _callee3, this);
|
|
239
|
-
}));
|
|
240
|
-
function getFileBytes(_x3) {
|
|
241
|
-
return _getFileBytes.apply(this, arguments);
|
|
242
|
-
}
|
|
243
|
-
return getFileBytes;
|
|
244
|
-
}()
|
|
245
|
-
}, {
|
|
246
|
-
key: "findBin",
|
|
247
|
-
value: function findBin(nameHash) {
|
|
248
|
-
throw new Error('Method not implemented.');
|
|
249
|
-
}
|
|
250
|
-
}]);
|
|
251
|
-
return SLPKArchive;
|
|
252
|
-
}();
|
|
253
|
-
exports.SLPKArchive = SLPKArchive;
|
|
254
|
-
//# sourceMappingURL=slpk-archieve.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slpk-archieve.js","names":["_md","_interopRequireDefault","require","_zip","_compression","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","PATH_DESCRIPTIONS","extensions","SLPKArchive","slpkArchive","hashFile","_classCallCheck2","default","_defineProperty2","hashArray","_createClass2","key","_getFile","_asyncToGenerator2","_regenerator","mark","_callee","path","mode","_PATH_DESCRIPTIONS$fi","data","_iterator","_step","ext","decompressedFile","fileWithoutCompression","_args","arguments","wrap","_callee$","_context","prev","undefined","find","val","getDataByPath","concat","sent","abrupt","t0","finish","Buffer","getFileBytes","Error","stop","getFile","_x","apply","_getDataByPath","_callee2","compression","decompressedData","_callee2$","_context2","toLocaleLowerCase","GZipCompression","decompress","_x2","_getFileBytes","_callee3","nameHash","fileInfo","localFileHeader","compressedFile","_callee3$","_context3","md5","findBin","parseZipLocalFileHeader","offset","fileDataOffset","compressedSize","_x3","exports"],"sources":["../../../../../src/lib/parsers/parse-slpk/slpk-archieve.ts"],"sourcesContent":["import md5 from 'md5';\nimport {FileProvider} from '@loaders.gl/loader-utils';\nimport {parseZipLocalFileHeader, HashElement, findBin} from '@loaders.gl/zip';\nimport {GZipCompression} from '@loaders.gl/compression';\n\n/** Description of real paths for different file types */\nconst PATH_DESCRIPTIONS: {test: RegExp; extensions: string[]}[] = [\n {\n test: /^$/,\n extensions: ['3dSceneLayer.json.gz']\n },\n {\n test: /^nodepages\\/\\d+$/,\n extensions: ['.json.gz']\n },\n {\n test: /^nodes\\/(\\d+|root)$/,\n extensions: ['/3dNodeIndexDocument.json.gz']\n },\n {\n test: /^nodes\\/\\d+\\/textures\\/.+$/,\n extensions: ['.jpg', '.png', '.bin.dds.gz', '.ktx']\n },\n {\n test: /^nodes\\/\\d+\\/geometries\\/\\d+$/,\n extensions: ['.bin.gz', '.draco.gz']\n },\n {\n test: /^nodes\\/\\d+\\/attributes\\/f_\\d+\\/\\d+$/,\n extensions: ['.bin.gz']\n },\n {\n test: /^statistics\\/f_\\d+\\/\\d+$/,\n extensions: ['.json.gz']\n },\n {\n test: /^nodes\\/\\d+\\/shared$/,\n extensions: ['/sharedResource.json.gz']\n }\n];\n\n/**\n * Class for handling information about slpk file\n */\nexport class SLPKArchive {\n private slpkArchive: FileProvider;\n private hashArray: HashElement[];\n constructor(slpkArchive: FileProvider, hashFile: HashElement[]) {\n this.slpkArchive = slpkArchive;\n this.hashArray = hashFile;\n }\n\n /**\n * Returns file with the given path from slpk archive\n * @param path - path inside the slpk\n * @param mode - currently only raw mode supported\n * @returns buffer with ready to use file\n */\n async getFile(path: string, mode: 'http' | 'raw' = 'raw'): Promise<Buffer> {\n if (mode === 'http') {\n const extensions = PATH_DESCRIPTIONS.find((val) => val.test.test(path))?.extensions;\n if (extensions) {\n let data: ArrayBuffer | undefined;\n for (const ext of extensions) {\n data = await this.getDataByPath(`${path}${ext}`);\n if (data) {\n break;\n }\n }\n if (data) {\n return Buffer.from(data);\n }\n }\n }\n if (mode === 'raw') {\n const decompressedFile = await this.getDataByPath(`${path}.gz`);\n if (decompressedFile) {\n return Buffer.from(decompressedFile);\n }\n const fileWithoutCompression = await this.getFileBytes(path);\n if (fileWithoutCompression) {\n return Buffer.from(fileWithoutCompression);\n }\n }\n\n throw new Error('No such file in the archieve');\n }\n\n /**\n * returning uncompressed data for paths that ends with .gz and raw data for all other paths\n * @param path - path inside the archive\n * @returns buffer with the file data\n */\n private async getDataByPath(path: string): Promise<ArrayBuffer | undefined> {\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 return undefined;\n }\n if (/\\.gz$/.test(path)) {\n const compression = new GZipCompression();\n\n const decompressedData = await compression.decompress(data);\n return decompressedData;\n }\n return Buffer.from(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 | undefined> {\n const nameHash = Buffer.from(md5(path), 'hex');\n const fileInfo = findBin(nameHash, this.hashArray); // implement binary search\n if (!fileInfo) {\n return undefined;\n }\n\n const localFileHeader = await parseZipLocalFileHeader(fileInfo.offset, this.slpkArchive);\n if (!localFileHeader) {\n return undefined;\n }\n\n const compressedFile = this.slpkArchive.slice(\n localFileHeader.fileDataOffset,\n localFileHeader.fileDataOffset + localFileHeader.compressedSize\n );\n\n return compressedFile;\n }\n findBin(nameHash: Buffer) {\n throw new Error('Method not implemented.');\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.convertI3SObbToMbs = convertI3SObbToMbs;
|
|
8
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
-
var _culling = require("@math.gl/culling");
|
|
10
|
-
var _geospatial = require("@math.gl/geospatial");
|
|
11
|
-
function convertI3SObbToMbs(obb) {
|
|
12
|
-
var halfSize = obb.halfSize;
|
|
13
|
-
var centerCartesian = _geospatial.Ellipsoid.WGS84.cartographicToCartesian(obb.center);
|
|
14
|
-
var sphere = new _culling.BoundingSphere().fromCornerPoints([centerCartesian[0] - halfSize[0], centerCartesian[1] - halfSize[1], centerCartesian[2] - halfSize[2]], [centerCartesian[0] + halfSize[0], centerCartesian[1] + halfSize[1], centerCartesian[2] + halfSize[2]]);
|
|
15
|
-
return [].concat((0, _toConsumableArray2.default)(obb.center), [sphere.radius]);
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=convert-i3s-obb-to-mbs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convert-i3s-obb-to-mbs.js","names":["_culling","require","_geospatial","convertI3SObbToMbs","obb","halfSize","centerCartesian","Ellipsoid","WGS84","cartographicToCartesian","center","sphere","BoundingSphere","fromCornerPoints","concat","_toConsumableArray2","default","radius"],"sources":["../../../../src/lib/utils/convert-i3s-obb-to-mbs.ts"],"sourcesContent":["import {BoundingSphere} from '@math.gl/culling';\nimport {Ellipsoid} from '@math.gl/geospatial';\n\nexport function convertI3SObbToMbs(obb) {\n const halfSize = obb.halfSize;\n const centerCartesian = Ellipsoid.WGS84.cartographicToCartesian(obb.center);\n const sphere = new BoundingSphere().fromCornerPoints(\n [\n centerCartesian[0] - halfSize[0],\n centerCartesian[1] - halfSize[1],\n centerCartesian[2] - halfSize[2]\n ],\n [\n centerCartesian[0] + halfSize[0],\n centerCartesian[1] + halfSize[1],\n centerCartesian[2] + halfSize[2]\n ]\n );\n return [...obb.center, sphere.radius];\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEO,SAASE,kBAAkBA,CAACC,GAAG,EAAE;EACtC,IAAMC,QAAQ,GAAGD,GAAG,CAACC,QAAQ;EAC7B,IAAMC,eAAe,GAAGC,qBAAS,CAACC,KAAK,CAACC,uBAAuB,CAACL,GAAG,CAACM,MAAM,CAAC;EAC3E,IAAMC,MAAM,GAAG,IAAIC,uBAAc,CAAC,CAAC,CAACC,gBAAgB,CAClD,CACEP,eAAe,CAAC,CAAC,CAAC,GAAGD,QAAQ,CAAC,CAAC,CAAC,EAChCC,eAAe,CAAC,CAAC,CAAC,GAAGD,QAAQ,CAAC,CAAC,CAAC,EAChCC,eAAe,CAAC,CAAC,CAAC,GAAGD,QAAQ,CAAC,CAAC,CAAC,CACjC,EACD,CACEC,eAAe,CAAC,CAAC,CAAC,GAAGD,QAAQ,CAAC,CAAC,CAAC,EAChCC,eAAe,CAAC,CAAC,CAAC,GAAGD,QAAQ,CAAC,CAAC,CAAC,EAChCC,eAAe,CAAC,CAAC,CAAC,GAAGD,QAAQ,CAAC,CAAC,CAAC,CAEpC,CAAC;EACD,UAAAS,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAAWZ,GAAG,CAACM,MAAM,IAAEC,MAAM,CAACM,MAAM;AACtC"}
|