@loaders.gl/3d-tiles 4.0.0-alpha.7 → 4.0.0-alpha.8
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/dist.min.js +317 -146
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js +4 -3
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js +2 -2
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +30 -18
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js +12 -12
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-composite.js +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-gltf.js +19 -4
- package/dist/es5/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-header.js +98 -80
- package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js +12 -21
- package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +29 -5
- package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/tiles-3d-loader.js +26 -31
- package/dist/es5/tiles-3d-loader.js.map +1 -1
- package/dist/es5/types.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js +3 -3
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js +2 -2
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +15 -9
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js +7 -7
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-composite.js +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-composite.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-gltf.js +15 -7
- package/dist/esm/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-header.js +62 -45
- package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js +12 -21
- package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js +23 -2
- package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/esm/tiles-3d-loader.js +18 -12
- package/dist/esm/tiles-3d-loader.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/parsers/helpers/normalize-3d-tile-colors.d.ts +4 -2
- package/dist/lib/parsers/helpers/normalize-3d-tile-colors.d.ts.map +1 -1
- package/dist/lib/parsers/helpers/normalize-3d-tile-colors.js +3 -3
- package/dist/lib/parsers/helpers/normalize-3d-tile-normals.d.ts +3 -2
- package/dist/lib/parsers/helpers/normalize-3d-tile-normals.d.ts.map +1 -1
- package/dist/lib/parsers/helpers/normalize-3d-tile-normals.js +2 -2
- package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.d.ts.map +1 -1
- package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts +5 -2
- package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts.map +1 -1
- package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js +15 -9
- package/dist/lib/parsers/helpers/parse-3d-tile-header.d.ts +2 -1
- package/dist/lib/parsers/helpers/parse-3d-tile-header.d.ts.map +1 -1
- package/dist/lib/parsers/helpers/parse-3d-tile-tables.d.ts +4 -2
- package/dist/lib/parsers/helpers/parse-3d-tile-tables.d.ts.map +1 -1
- package/dist/lib/parsers/helpers/parse-3d-tile-tables.js +7 -7
- package/dist/lib/parsers/parse-3d-tile-batched-model.d.ts +4 -1
- package/dist/lib/parsers/parse-3d-tile-batched-model.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile-batched-model.js +1 -1
- package/dist/lib/parsers/parse-3d-tile-composite.d.ts +3 -2
- package/dist/lib/parsers/parse-3d-tile-composite.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile-composite.js +1 -1
- package/dist/lib/parsers/parse-3d-tile-gltf.d.ts +2 -1
- package/dist/lib/parsers/parse-3d-tile-gltf.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile-gltf.js +13 -5
- package/dist/lib/parsers/parse-3d-tile-header.d.ts +5 -6
- package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile-header.js +57 -42
- package/dist/lib/parsers/parse-3d-tile-instanced-model.d.ts +2 -1
- package/dist/lib/parsers/parse-3d-tile-instanced-model.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile-instanced-model.js +11 -25
- package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts +3 -2
- package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile-point-cloud.js +23 -2
- package/dist/lib/parsers/parse-3d-tile.d.ts +4 -1
- package/dist/lib/parsers/parse-3d-tile.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile.js +0 -4
- package/dist/tiles-3d-loader.d.ts.map +1 -1
- package/dist/tiles-3d-loader.js +18 -17
- package/dist/types.d.ts +257 -15
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/index.ts +12 -1
- package/src/lib/parsers/helpers/normalize-3d-tile-colors.ts +10 -4
- package/src/lib/parsers/helpers/normalize-3d-tile-normals.ts +7 -3
- package/src/lib/parsers/helpers/parse-3d-implicit-tiles.ts +4 -4
- package/src/lib/parsers/helpers/parse-3d-tile-gltf-view.ts +35 -13
- package/src/lib/parsers/helpers/parse-3d-tile-header.ts +7 -1
- package/src/lib/parsers/helpers/parse-3d-tile-tables.ts +32 -11
- package/src/lib/parsers/parse-3d-tile-batched-model.ts +18 -3
- package/src/lib/parsers/parse-3d-tile-composite.ts +7 -6
- package/src/lib/parsers/parse-3d-tile-gltf.ts +16 -8
- package/src/lib/parsers/parse-3d-tile-header.ts +84 -52
- package/src/lib/parsers/parse-3d-tile-instanced-model.ts +24 -33
- package/src/lib/parsers/parse-3d-tile-point-cloud.ts +51 -19
- package/src/lib/parsers/parse-3d-tile.ts +10 -5
- package/src/tiles-3d-loader.ts +21 -23
- package/src/types.ts +269 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-3d-tile-gltf.js","names":["_gltf","require","parseGltf3DTile","_x","_x2","_x3","_x4","_parseGltf3DTile","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","tile","arrayBuffer","options","context","parse","gltfWithBuffers","wrap","_callee$","_context","prev","next","rotateYtoZ","gltfUpAxis","assetGltfUpAxis","GLTFLoader","sent","gltf","postProcessGLTF","gpuMemoryUsageInBytes","_getMemoryUsageGLTF","stop"],"sources":["../../../../src/lib/parsers/parse-3d-tile-gltf.ts"],"sourcesContent":["import type {LoaderContext} from '@loaders.gl/loader-utils';\nimport type {Tiles3DLoaderOptions} from '../../tiles-3d-loader';\nimport {_getMemoryUsageGLTF, GLTFLoader, postProcessGLTF} from '@loaders.gl/gltf';\n\nexport async function parseGltf3DTile(\n tile,\n arrayBuffer: ArrayBuffer,\n options
|
|
1
|
+
{"version":3,"file":"parse-3d-tile-gltf.js","names":["_gltf","require","parseGltf3DTile","_x","_x2","_x3","_x4","_parseGltf3DTile","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","tile","arrayBuffer","options","context","_options$3dTiles","parse","gltfWithBuffers","wrap","_callee$","_context","prev","next","rotateYtoZ","gltfUpAxis","assetGltfUpAxis","loadGLTF","abrupt","GLTFLoader","sent","gltf","postProcessGLTF","gpuMemoryUsageInBytes","_getMemoryUsageGLTF","gltfArrayBuffer","stop"],"sources":["../../../../src/lib/parsers/parse-3d-tile-gltf.ts"],"sourcesContent":["import type {LoaderContext} from '@loaders.gl/loader-utils';\nimport type {Tiles3DLoaderOptions} from '../../tiles-3d-loader';\nimport {_getMemoryUsageGLTF, GLTFLoader, postProcessGLTF} from '@loaders.gl/gltf';\nimport {Tiles3DTileContent} from '../../types';\n\nexport async function parseGltf3DTile(\n tile: Tiles3DTileContent,\n arrayBuffer: ArrayBuffer,\n options?: Tiles3DLoaderOptions,\n context?: LoaderContext\n): Promise<void> {\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 // Save gltf up axis\n tile.gltfUpAxis =\n options?.['3d-tiles'] && options['3d-tiles'].assetGltfUpAxis\n ? options['3d-tiles'].assetGltfUpAxis\n : 'Y';\n\n if (options?.['3d-tiles']?.loadGLTF) {\n if (!context) {\n return;\n }\n const {parse} = context;\n const gltfWithBuffers = await parse(arrayBuffer, GLTFLoader, options, context);\n tile.gltf = postProcessGLTF(gltfWithBuffers);\n tile.gpuMemoryUsageInBytes = _getMemoryUsageGLTF(tile.gltf);\n } else {\n tile.gltfArrayBuffer = arrayBuffer;\n }\n}\n"],"mappings":";;;;;;;;;AAEA,IAAAA,KAAA,GAAAC,OAAA;AAAkF,SAG5DC,eAAeA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,gBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,iBAAA;EAAAA,gBAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAA9B,SAAAC,QACLC,IAAwB,EACxBC,WAAwB,EACxBC,OAA8B,EAC9BC,OAAuB;IAAA,IAAAC,gBAAA;IAAA,IAAAC,KAAA,EAAAC,eAAA;IAAA,OAAAT,YAAA,CAAAD,OAAA,CAAAW,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAKvBX,IAAI,CAACY,UAAU,GAAG,IAAI;UAEtBZ,IAAI,CAACa,UAAU,GACbX,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAG,UAAU,CAAC,IAAIA,OAAO,CAAC,UAAU,CAAC,CAACY,eAAe,GACxDZ,OAAO,CAAC,UAAU,CAAC,CAACY,eAAe,GACnC,GAAG;UAAC,MAENZ,OAAO,aAAPA,OAAO,gBAAAE,gBAAA,GAAPF,OAAO,CAAG,UAAU,CAAC,cAAAE,gBAAA,eAArBA,gBAAA,CAAuBW,QAAQ;YAAAN,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,IAC5BR,OAAO;YAAAM,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAO,MAAA;QAAA;UAGLX,KAAK,GAAIF,OAAO,CAAhBE,KAAK;UAAAI,QAAA,CAAAE,IAAA;UAAA,OACkBN,KAAK,CAACJ,WAAW,EAAEgB,gBAAU,EAAEf,OAAO,EAAEC,OAAO,CAAC;QAAA;UAAxEG,eAAe,GAAAG,QAAA,CAAAS,IAAA;UACrBlB,IAAI,CAACmB,IAAI,GAAG,IAAAC,qBAAe,EAACd,eAAe,CAAC;UAC5CN,IAAI,CAACqB,qBAAqB,GAAG,IAAAC,yBAAmB,EAACtB,IAAI,CAACmB,IAAI,CAAC;UAACV,QAAA,CAAAE,IAAA;UAAA;QAAA;UAE5DX,IAAI,CAACuB,eAAe,GAAGtB,WAAW;QAAC;QAAA;UAAA,OAAAQ,QAAA,CAAAe,IAAA;MAAA;IAAA,GAAAzB,OAAA;EAAA,CAEtC;EAAA,OAAAP,gBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
|
|
@@ -10,6 +10,7 @@ exports.normalizeTileData = normalizeTileData;
|
|
|
10
10
|
exports.normalizeTileHeaders = normalizeTileHeaders;
|
|
11
11
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
12
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
14
|
var _tile3dSubtreeLoader = require("../../tile-3d-subtree-loader");
|
|
14
15
|
var _core = require("@loaders.gl/core");
|
|
15
16
|
var _tiles = require("@loaders.gl/tiles");
|
|
@@ -18,11 +19,14 @@ var _s2CornersToObb = require("../utils/obb/s2-corners-to-obb");
|
|
|
18
19
|
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; } } }; }
|
|
19
20
|
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); }
|
|
20
21
|
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; }
|
|
22
|
+
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; }
|
|
23
|
+
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; }
|
|
21
24
|
function getTileType(tile) {
|
|
22
|
-
|
|
25
|
+
var tileContentUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
26
|
+
if (!tileContentUrl) {
|
|
23
27
|
return _tiles.TILE_TYPE.EMPTY;
|
|
24
28
|
}
|
|
25
|
-
var contentUrl =
|
|
29
|
+
var contentUrl = tileContentUrl.split('?')[0];
|
|
26
30
|
var fileExtension = contentUrl.split('.').pop();
|
|
27
31
|
switch (fileExtension) {
|
|
28
32
|
case 'pnts':
|
|
@@ -33,7 +37,7 @@ function getTileType(tile) {
|
|
|
33
37
|
case 'gltf':
|
|
34
38
|
return _tiles.TILE_TYPE.SCENEGRAPH;
|
|
35
39
|
default:
|
|
36
|
-
return fileExtension;
|
|
40
|
+
return fileExtension || _tiles.TILE_TYPE.EMPTY;
|
|
37
41
|
}
|
|
38
42
|
}
|
|
39
43
|
function getRefine(refine) {
|
|
@@ -48,7 +52,9 @@ function getRefine(refine) {
|
|
|
48
52
|
return refine;
|
|
49
53
|
}
|
|
50
54
|
}
|
|
51
|
-
function resolveUri(
|
|
55
|
+
function resolveUri() {
|
|
56
|
+
var uri = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
57
|
+
var basePath = arguments.length > 1 ? arguments[1] : undefined;
|
|
52
58
|
var urlSchemeRegex = /^[a-z][0-9a-z+.-]*:/i;
|
|
53
59
|
if (urlSchemeRegex.test(basePath)) {
|
|
54
60
|
var url = new URL(uri, "".concat(basePath, "/"));
|
|
@@ -58,127 +64,135 @@ function resolveUri(uri, basePath) {
|
|
|
58
64
|
}
|
|
59
65
|
return "".concat(basePath, "/").concat(uri);
|
|
60
66
|
}
|
|
61
|
-
function normalizeTileData(tile,
|
|
67
|
+
function normalizeTileData(tile, basePath) {
|
|
62
68
|
if (!tile) {
|
|
63
69
|
return null;
|
|
64
70
|
}
|
|
71
|
+
var tileContentUrl;
|
|
65
72
|
if (tile.content) {
|
|
66
|
-
var
|
|
67
|
-
tile.
|
|
73
|
+
var _tile$content;
|
|
74
|
+
var contentUri = tile.content.uri || ((_tile$content = tile.content) === null || _tile$content === void 0 ? void 0 : _tile$content.url);
|
|
75
|
+
tileContentUrl = resolveUri(contentUri, basePath);
|
|
68
76
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
77
|
+
var tilePostprocessed = _objectSpread(_objectSpread({}, tile), {}, {
|
|
78
|
+
id: tileContentUrl,
|
|
79
|
+
contentUrl: tileContentUrl,
|
|
80
|
+
lodMetricType: _tiles.LOD_METRIC_TYPE.GEOMETRIC_ERROR,
|
|
81
|
+
lodMetricValue: tile.geometricError,
|
|
82
|
+
transformMatrix: tile.transform,
|
|
83
|
+
type: getTileType(tile, tileContentUrl),
|
|
84
|
+
refine: getRefine(tile.refine)
|
|
85
|
+
});
|
|
86
|
+
return tilePostprocessed;
|
|
76
87
|
}
|
|
77
|
-
function normalizeTileHeaders(_x, _x2) {
|
|
88
|
+
function normalizeTileHeaders(_x, _x2, _x3) {
|
|
78
89
|
return _normalizeTileHeaders.apply(this, arguments);
|
|
79
90
|
}
|
|
80
91
|
function _normalizeTileHeaders() {
|
|
81
|
-
_normalizeTileHeaders = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tileset, options) {
|
|
82
|
-
var
|
|
92
|
+
_normalizeTileHeaders = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tileset, basePath, options) {
|
|
93
|
+
var root, rootImplicitTilingExtension, stack, tile, children, childrenPostprocessed, _iterator, _step, childHeader, childImplicitTilingExtension, childHeaderPostprocessed;
|
|
83
94
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
84
95
|
while (1) switch (_context.prev = _context.next) {
|
|
85
96
|
case 0:
|
|
86
|
-
|
|
87
|
-
rootImplicitTilingExtension = getImplicitTilingExtensionData(tileset
|
|
97
|
+
root = null;
|
|
98
|
+
rootImplicitTilingExtension = getImplicitTilingExtensionData(tileset.root);
|
|
88
99
|
if (!(rootImplicitTilingExtension && tileset.root)) {
|
|
89
100
|
_context.next = 8;
|
|
90
101
|
break;
|
|
91
102
|
}
|
|
92
103
|
_context.next = 5;
|
|
93
|
-
return normalizeImplicitTileHeaders(tileset.root, tileset, rootImplicitTilingExtension, options);
|
|
104
|
+
return normalizeImplicitTileHeaders(tileset.root, tileset, basePath, rootImplicitTilingExtension, options);
|
|
94
105
|
case 5:
|
|
95
106
|
root = _context.sent;
|
|
96
107
|
_context.next = 9;
|
|
97
108
|
break;
|
|
98
109
|
case 8:
|
|
99
|
-
root = normalizeTileData(tileset.root,
|
|
110
|
+
root = normalizeTileData(tileset.root, basePath);
|
|
100
111
|
case 9:
|
|
101
112
|
stack = [];
|
|
102
113
|
stack.push(root);
|
|
103
114
|
case 11:
|
|
104
115
|
if (!(stack.length > 0)) {
|
|
105
|
-
_context.next =
|
|
116
|
+
_context.next = 43;
|
|
106
117
|
break;
|
|
107
118
|
}
|
|
108
119
|
tile = stack.pop() || {};
|
|
109
120
|
children = tile.children || [];
|
|
121
|
+
childrenPostprocessed = [];
|
|
110
122
|
_iterator = _createForOfIteratorHelper(children);
|
|
111
|
-
_context.prev =
|
|
123
|
+
_context.prev = 16;
|
|
112
124
|
_iterator.s();
|
|
113
|
-
case
|
|
125
|
+
case 18:
|
|
114
126
|
if ((_step = _iterator.n()).done) {
|
|
115
|
-
_context.next =
|
|
127
|
+
_context.next = 32;
|
|
116
128
|
break;
|
|
117
129
|
}
|
|
118
130
|
childHeader = _step.value;
|
|
119
131
|
childImplicitTilingExtension = getImplicitTilingExtensionData(childHeader);
|
|
132
|
+
childHeaderPostprocessed = void 0;
|
|
120
133
|
if (!childImplicitTilingExtension) {
|
|
121
|
-
_context.next =
|
|
134
|
+
_context.next = 28;
|
|
122
135
|
break;
|
|
123
136
|
}
|
|
124
|
-
_context.next =
|
|
125
|
-
return normalizeImplicitTileHeaders(childHeader, tileset, childImplicitTilingExtension, options);
|
|
126
|
-
case
|
|
127
|
-
|
|
128
|
-
_context.next =
|
|
137
|
+
_context.next = 25;
|
|
138
|
+
return normalizeImplicitTileHeaders(childHeader, tileset, basePath, childImplicitTilingExtension, options);
|
|
139
|
+
case 25:
|
|
140
|
+
childHeaderPostprocessed = _context.sent;
|
|
141
|
+
_context.next = 29;
|
|
129
142
|
break;
|
|
130
|
-
case 26:
|
|
131
|
-
normalizeTileData(childHeader, {
|
|
132
|
-
basePath: basePath
|
|
133
|
-
});
|
|
134
|
-
case 27:
|
|
135
|
-
stack.push(childHeader);
|
|
136
143
|
case 28:
|
|
137
|
-
|
|
138
|
-
|
|
144
|
+
childHeaderPostprocessed = normalizeTileData(childHeader, basePath);
|
|
145
|
+
case 29:
|
|
146
|
+
if (childHeaderPostprocessed) {
|
|
147
|
+
childrenPostprocessed.push(childHeaderPostprocessed);
|
|
148
|
+
stack.push(childHeaderPostprocessed);
|
|
149
|
+
}
|
|
139
150
|
case 30:
|
|
140
|
-
_context.next =
|
|
151
|
+
_context.next = 18;
|
|
141
152
|
break;
|
|
142
153
|
case 32:
|
|
143
|
-
_context.
|
|
144
|
-
|
|
154
|
+
_context.next = 37;
|
|
155
|
+
break;
|
|
156
|
+
case 34:
|
|
157
|
+
_context.prev = 34;
|
|
158
|
+
_context.t0 = _context["catch"](16);
|
|
145
159
|
_iterator.e(_context.t0);
|
|
146
|
-
case
|
|
147
|
-
_context.prev =
|
|
160
|
+
case 37:
|
|
161
|
+
_context.prev = 37;
|
|
148
162
|
_iterator.f();
|
|
149
|
-
return _context.finish(
|
|
150
|
-
case
|
|
163
|
+
return _context.finish(37);
|
|
164
|
+
case 40:
|
|
165
|
+
tile.children = childrenPostprocessed;
|
|
151
166
|
_context.next = 11;
|
|
152
167
|
break;
|
|
153
|
-
case
|
|
168
|
+
case 43:
|
|
154
169
|
return _context.abrupt("return", root);
|
|
155
|
-
case
|
|
170
|
+
case 44:
|
|
156
171
|
case "end":
|
|
157
172
|
return _context.stop();
|
|
158
173
|
}
|
|
159
|
-
}, _callee, null, [[
|
|
174
|
+
}, _callee, null, [[16, 34, 37, 40]]);
|
|
160
175
|
}));
|
|
161
176
|
return _normalizeTileHeaders.apply(this, arguments);
|
|
162
177
|
}
|
|
163
|
-
function normalizeImplicitTileHeaders(
|
|
178
|
+
function normalizeImplicitTileHeaders(_x4, _x5, _x6, _x7, _x8) {
|
|
164
179
|
return _normalizeImplicitTileHeaders.apply(this, arguments);
|
|
165
180
|
}
|
|
166
181
|
function _normalizeImplicitTileHeaders() {
|
|
167
|
-
_normalizeImplicitTileHeaders = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(tile, tileset, implicitTilingExtension, options) {
|
|
168
|
-
var _tileset$root, _tile$boundingVolume$;
|
|
169
|
-
var
|
|
182
|
+
_normalizeImplicitTileHeaders = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(tile, tileset, basePath, implicitTilingExtension, options) {
|
|
183
|
+
var _tile$content2, _tileset$root, _tile$boundingVolume$;
|
|
184
|
+
var subdivisionScheme, maximumLevel, subtreeLevels, subtreesUriTemplate, replacedUrlTemplate, subtreeUrl, subtree, contentUrlTemplate, refine, rootLodMetricValue, s2VolumeInfo, box, s2VolumeBox, rootBoundingVolume, implicitOptions;
|
|
170
185
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
171
186
|
while (1) switch (_context2.prev = _context2.next) {
|
|
172
187
|
case 0:
|
|
173
|
-
basePath = tileset.basePath;
|
|
174
188
|
subdivisionScheme = implicitTilingExtension.subdivisionScheme, maximumLevel = implicitTilingExtension.maximumLevel, subtreeLevels = implicitTilingExtension.subtreeLevels, subtreesUriTemplate = implicitTilingExtension.subtrees.uri;
|
|
175
189
|
replacedUrlTemplate = (0, _parse3dImplicitTiles.replaceContentUrlTemplate)(subtreesUriTemplate, 0, 0, 0, 0);
|
|
176
190
|
subtreeUrl = resolveUri(replacedUrlTemplate, basePath);
|
|
177
|
-
_context2.next =
|
|
191
|
+
_context2.next = 5;
|
|
178
192
|
return (0, _core.load)(subtreeUrl, _tile3dSubtreeLoader.Tile3DSubtreeLoader, options);
|
|
179
|
-
case
|
|
193
|
+
case 5:
|
|
180
194
|
subtree = _context2.sent;
|
|
181
|
-
contentUrlTemplate = resolveUri(tile.content.uri, basePath);
|
|
195
|
+
contentUrlTemplate = resolveUri((_tile$content2 = tile.content) === null || _tile$content2 === void 0 ? void 0 : _tile$content2.uri, basePath);
|
|
182
196
|
refine = tileset === null || tileset === void 0 ? void 0 : (_tileset$root = tileset.root) === null || _tileset$root === void 0 ? void 0 : _tileset$root.refine;
|
|
183
197
|
rootLodMetricValue = tile.geometricError;
|
|
184
198
|
s2VolumeInfo = (_tile$boundingVolume$ = tile.boundingVolume.extensions) === null || _tile$boundingVolume$ === void 0 ? void 0 : _tile$boundingVolume$['3DTILES_bounding_volume_S2'];
|
|
@@ -205,11 +219,11 @@ function _normalizeImplicitTileHeaders() {
|
|
|
205
219
|
getTileType: getTileType,
|
|
206
220
|
getRefine: getRefine
|
|
207
221
|
};
|
|
208
|
-
_context2.next =
|
|
209
|
-
return normalizeImplicitTileData(tile, subtree, implicitOptions);
|
|
210
|
-
case
|
|
222
|
+
_context2.next = 15;
|
|
223
|
+
return normalizeImplicitTileData(tile, basePath, subtree, implicitOptions);
|
|
224
|
+
case 15:
|
|
211
225
|
return _context2.abrupt("return", _context2.sent);
|
|
212
|
-
case
|
|
226
|
+
case 16:
|
|
213
227
|
case "end":
|
|
214
228
|
return _context2.stop();
|
|
215
229
|
}
|
|
@@ -217,12 +231,12 @@ function _normalizeImplicitTileHeaders() {
|
|
|
217
231
|
}));
|
|
218
232
|
return _normalizeImplicitTileHeaders.apply(this, arguments);
|
|
219
233
|
}
|
|
220
|
-
function normalizeImplicitTileData(
|
|
234
|
+
function normalizeImplicitTileData(_x9, _x10, _x11, _x12) {
|
|
221
235
|
return _normalizeImplicitTileData.apply(this, arguments);
|
|
222
236
|
}
|
|
223
237
|
function _normalizeImplicitTileData() {
|
|
224
|
-
_normalizeImplicitTileData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(tile, rootSubtree, options) {
|
|
225
|
-
var _yield$parseImplicitT, children, contentUrl;
|
|
238
|
+
_normalizeImplicitTileData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(tile, basePath, rootSubtree, options) {
|
|
239
|
+
var _yield$parseImplicitT, children, contentUrl, tileContentUrl, tileContent, tilePostprocessed;
|
|
226
240
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
227
241
|
while (1) switch (_context3.prev = _context3.next) {
|
|
228
242
|
case 0:
|
|
@@ -232,31 +246,35 @@ function _normalizeImplicitTileData() {
|
|
|
232
246
|
}
|
|
233
247
|
return _context3.abrupt("return", null);
|
|
234
248
|
case 2:
|
|
235
|
-
|
|
236
|
-
tile.lodMetricValue = tile.geometricError;
|
|
237
|
-
tile.transformMatrix = tile.transform;
|
|
238
|
-
_context3.next = 7;
|
|
249
|
+
_context3.next = 4;
|
|
239
250
|
return (0, _parse3dImplicitTiles.parseImplicitTiles)({
|
|
240
251
|
subtree: rootSubtree,
|
|
241
|
-
options: options
|
|
242
|
-
s2VolumeBox: tile
|
|
252
|
+
options: options
|
|
243
253
|
});
|
|
244
|
-
case
|
|
254
|
+
case 4:
|
|
245
255
|
_yield$parseImplicitT = _context3.sent;
|
|
246
256
|
children = _yield$parseImplicitT.children;
|
|
247
257
|
contentUrl = _yield$parseImplicitT.contentUrl;
|
|
258
|
+
tileContent = null;
|
|
248
259
|
if (contentUrl) {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
uri: contentUrl.replace("".concat(
|
|
260
|
+
tileContentUrl = contentUrl;
|
|
261
|
+
tileContent = {
|
|
262
|
+
uri: contentUrl.replace("".concat(basePath, "/"), '')
|
|
252
263
|
};
|
|
253
264
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
265
|
+
tilePostprocessed = _objectSpread(_objectSpread({}, tile), {}, {
|
|
266
|
+
id: tileContentUrl,
|
|
267
|
+
contentUrl: tileContentUrl,
|
|
268
|
+
lodMetricType: _tiles.LOD_METRIC_TYPE.GEOMETRIC_ERROR,
|
|
269
|
+
lodMetricValue: tile.geometricError,
|
|
270
|
+
transformMatrix: tile.transform,
|
|
271
|
+
type: getTileType(tile, tileContentUrl),
|
|
272
|
+
refine: getRefine(tile.refine),
|
|
273
|
+
content: tileContent || tile.content,
|
|
274
|
+
children: children
|
|
275
|
+
});
|
|
276
|
+
return _context3.abrupt("return", tilePostprocessed);
|
|
277
|
+
case 11:
|
|
260
278
|
case "end":
|
|
261
279
|
return _context3.stop();
|
|
262
280
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-3d-tile-header.js","names":["_tile3dSubtreeLoader","require","_core","_tiles","_parse3dImplicitTiles","_s2CornersToObb","_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","getTileType","tile","contentUrl","TILE_TYPE","EMPTY","split","fileExtension","pop","POINTCLOUD","SCENEGRAPH","getRefine","refine","TILE_REFINEMENT","REPLACE","ADD","resolveUri","uri","basePath","urlSchemeRegex","url","URL","concat","decodeURI","startsWith","normalizeTileData","options","content","contentUri","id","lodMetricType","LOD_METRIC_TYPE","GEOMETRIC_ERROR","lodMetricValue","geometricError","transformMatrix","transform","type","normalizeTileHeaders","_x","_x2","_normalizeTileHeaders","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","tileset","root","rootImplicitTilingExtension","stack","children","_iterator","_step","childHeader","childImplicitTilingExtension","wrap","_callee$","_context","prev","getImplicitTilingExtensionData","normalizeImplicitTileHeaders","sent","push","t0","finish","abrupt","stop","_x3","_x4","_x5","_x6","_normalizeImplicitTileHeaders","_callee2","implicitTilingExtension","_tileset$root","_tile$boundingVolume$","subdivisionScheme","maximumLevel","subtreeLevels","subtreesUriTemplate","replacedUrlTemplate","subtreeUrl","subtree","contentUrlTemplate","rootLodMetricValue","s2VolumeInfo","box","s2VolumeBox","rootBoundingVolume","implicitOptions","_callee2$","_context2","subtrees","replaceContentUrlTemplate","load","Tile3DSubtreeLoader","boundingVolume","extensions","convertS2BoundingVolumetoOBB","normalizeImplicitTileData","_x7","_x8","_x9","_normalizeImplicitTileData","_callee3","rootSubtree","_yield$parseImplicitT","_callee3$","_context3","parseImplicitTiles","replace","_tile$extensions","implicitTiling"],"sources":["../../../../src/lib/parsers/parse-3d-tile-header.ts"],"sourcesContent":["import type {Tiles3DLoaderOptions} from '../../tiles-3d-loader';\nimport type {LoaderOptions} from '@loaders.gl/loader-utils';\nimport {Tile3DSubtreeLoader} from '../../tile-3d-subtree-loader';\nimport {load} from '@loaders.gl/core';\nimport {Tileset3D, LOD_METRIC_TYPE, TILE_REFINEMENT, TILE_TYPE, Tile3D} from '@loaders.gl/tiles';\nimport {ImplicitTilingExtension, Subtree} from '../../types';\nimport type {S2VolumeBox} from './helpers/parse-3d-implicit-tiles';\nimport {parseImplicitTiles, replaceContentUrlTemplate} from './helpers/parse-3d-implicit-tiles';\nimport type {S2VolumeInfo} from '../utils/obb/s2-corners-to-obb';\nimport {convertS2BoundingVolumetoOBB} from '../utils/obb/s2-corners-to-obb';\n\nfunction getTileType(tile) {\n if (!tile.contentUrl) {\n return TILE_TYPE.EMPTY;\n }\n\n const contentUrl = tile.contentUrl.split('?')[0]; // Discard query string\n const fileExtension = contentUrl.split('.').pop();\n switch (fileExtension) {\n case 'pnts':\n return TILE_TYPE.POINTCLOUD;\n case 'i3dm':\n case 'b3dm':\n case 'glb':\n case 'gltf':\n return TILE_TYPE.SCENEGRAPH;\n default:\n return fileExtension;\n }\n}\n\nfunction getRefine(refine) {\n switch (refine) {\n case 'REPLACE':\n case 'replace':\n return TILE_REFINEMENT.REPLACE;\n case 'ADD':\n case 'add':\n return TILE_REFINEMENT.ADD;\n default:\n return refine;\n }\n}\n\nfunction resolveUri(uri, basePath) {\n // url scheme per RFC3986\n const urlSchemeRegex = /^[a-z][0-9a-z+.-]*:/i;\n\n if (urlSchemeRegex.test(basePath)) {\n const url = new URL(uri, `${basePath}/`);\n return decodeURI(url.toString());\n } else if (uri.startsWith('/')) {\n return uri;\n }\n\n return `${basePath}/${uri}`;\n}\n\nexport function normalizeTileData(tile, options) {\n if (!tile) {\n return null;\n }\n if (tile.content) {\n const contentUri = tile.content.uri || tile.content.url;\n tile.contentUrl = resolveUri(contentUri, options.basePath);\n }\n tile.id = tile.contentUrl;\n tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;\n tile.lodMetricValue = tile.geometricError;\n tile.transformMatrix = tile.transform;\n tile.type = getTileType(tile);\n tile.refine = getRefine(tile.refine);\n\n return tile;\n}\n\n// normalize tile headers\nexport async function normalizeTileHeaders(\n tileset: Tileset3D,\n options: LoaderOptions\n): Promise<Tileset3D> {\n const basePath = tileset.basePath;\n let root: Tileset3D;\n\n const rootImplicitTilingExtension = getImplicitTilingExtensionData(tileset?.root);\n if (rootImplicitTilingExtension && tileset.root) {\n root = await normalizeImplicitTileHeaders(\n tileset.root,\n tileset,\n rootImplicitTilingExtension,\n options\n );\n } else {\n root = normalizeTileData(tileset.root, tileset);\n }\n\n const stack: any[] = [];\n stack.push(root);\n\n while (stack.length > 0) {\n const tile = stack.pop() || {};\n const children = tile.children || [];\n for (let childHeader of children) {\n const childImplicitTilingExtension = getImplicitTilingExtensionData(childHeader);\n if (childImplicitTilingExtension) {\n childHeader = await normalizeImplicitTileHeaders(\n childHeader,\n tileset,\n childImplicitTilingExtension,\n options\n );\n } else {\n normalizeTileData(childHeader, {basePath});\n }\n\n stack.push(childHeader);\n }\n }\n\n return root;\n}\n\n/**\n * Do normalisation of implicit tile headers\n * TODO Check if Tile3D class can be a return type here.\n * @param tileset\n */\nexport async function normalizeImplicitTileHeaders(\n tile: Tile3D,\n tileset: Tileset3D,\n implicitTilingExtension: ImplicitTilingExtension,\n options: Tiles3DLoaderOptions\n) {\n const basePath = tileset.basePath;\n const {\n subdivisionScheme,\n maximumLevel,\n subtreeLevels,\n subtrees: {uri: subtreesUriTemplate}\n } = implicitTilingExtension;\n const replacedUrlTemplate = replaceContentUrlTemplate(subtreesUriTemplate, 0, 0, 0, 0);\n const subtreeUrl = resolveUri(replacedUrlTemplate, basePath);\n const subtree = await load(subtreeUrl, Tile3DSubtreeLoader, options);\n const contentUrlTemplate = resolveUri(tile.content.uri, basePath);\n const refine = tileset?.root?.refine;\n // @ts-ignore\n const rootLodMetricValue = tile.geometricError;\n\n // Replace tile.boundingVolume with the the bounding volume specified by the extensions['3DTILES_bounding_volume_S2']\n const s2VolumeInfo: S2VolumeInfo = tile.boundingVolume.extensions?.['3DTILES_bounding_volume_S2'];\n if (s2VolumeInfo) {\n const box = convertS2BoundingVolumetoOBB(s2VolumeInfo);\n const s2VolumeBox: S2VolumeBox = {box, s2VolumeInfo};\n tile.boundingVolume = s2VolumeBox;\n }\n\n const rootBoundingVolume = tile.boundingVolume;\n\n const implicitOptions = {\n contentUrlTemplate,\n subtreesUriTemplate,\n subdivisionScheme,\n subtreeLevels,\n maximumLevel,\n refine,\n basePath,\n lodMetricType: LOD_METRIC_TYPE.GEOMETRIC_ERROR,\n rootLodMetricValue,\n rootBoundingVolume,\n getTileType,\n getRefine\n };\n\n return await normalizeImplicitTileData(tile, subtree, implicitOptions);\n}\n\n/**\n * Do implicit data normalisation to create hierarchical tile structure\n * @param tile\n * @param rootSubtree\n * @param options\n * @returns\n */\nexport async function normalizeImplicitTileData(tile, rootSubtree: Subtree, options: any) {\n if (!tile) {\n return null;\n }\n\n tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;\n tile.lodMetricValue = tile.geometricError;\n tile.transformMatrix = tile.transform;\n\n const {children, contentUrl} = await parseImplicitTiles({\n subtree: rootSubtree,\n options,\n s2VolumeBox: tile\n });\n\n if (contentUrl) {\n tile.contentUrl = contentUrl;\n tile.content = {uri: contentUrl.replace(`${options.basePath}/`, '')};\n }\n\n tile.refine = getRefine(tile.refine);\n tile.type = getTileType(tile);\n tile.children = children;\n tile.id = tile.contentUrl;\n\n return tile;\n}\n\n/**\n * Implicit Tiling data can be in 3DTILES_implicit_tiling for 3DTiles v.Next or directly in implicitTiling object for 3DTiles v1.1.\n * Spec 3DTiles v.Next - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling\n * Spec 3DTiles v.1.1 - https://github.com/CesiumGS/3d-tiles/tree/draft-1.1/specification/ImplicitTiling\n * @param tile\n * @returns\n */\nfunction getImplicitTilingExtensionData(tile: Tile3D | null): ImplicitTilingExtension {\n return tile?.extensions?.['3DTILES_implicit_tiling'] || tile?.implicitTiling;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse-3d-tile-header.js","names":["_tile3dSubtreeLoader","require","_core","_tiles","_parse3dImplicitTiles","_s2CornersToObb","_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","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","getTileType","tile","tileContentUrl","undefined","TILE_TYPE","EMPTY","contentUrl","split","fileExtension","pop","POINTCLOUD","SCENEGRAPH","getRefine","refine","TILE_REFINEMENT","REPLACE","ADD","resolveUri","uri","basePath","urlSchemeRegex","url","URL","concat","decodeURI","startsWith","normalizeTileData","content","_tile$content","contentUri","tilePostprocessed","id","lodMetricType","LOD_METRIC_TYPE","GEOMETRIC_ERROR","lodMetricValue","geometricError","transformMatrix","transform","type","normalizeTileHeaders","_x","_x2","_x3","_normalizeTileHeaders","_asyncToGenerator2","_regenerator","mark","_callee","tileset","options","root","rootImplicitTilingExtension","stack","children","childrenPostprocessed","_iterator","_step","childHeader","childImplicitTilingExtension","childHeaderPostprocessed","wrap","_callee$","_context","prev","getImplicitTilingExtensionData","normalizeImplicitTileHeaders","sent","t0","finish","abrupt","stop","_x4","_x5","_x6","_x7","_x8","_normalizeImplicitTileHeaders","_callee2","implicitTilingExtension","_tile$content2","_tileset$root","_tile$boundingVolume$","subdivisionScheme","maximumLevel","subtreeLevels","subtreesUriTemplate","replacedUrlTemplate","subtreeUrl","subtree","contentUrlTemplate","rootLodMetricValue","s2VolumeInfo","box","s2VolumeBox","rootBoundingVolume","implicitOptions","_callee2$","_context2","subtrees","replaceContentUrlTemplate","load","Tile3DSubtreeLoader","boundingVolume","extensions","convertS2BoundingVolumetoOBB","normalizeImplicitTileData","_x9","_x10","_x11","_x12","_normalizeImplicitTileData","_callee3","rootSubtree","_yield$parseImplicitT","tileContent","_callee3$","_context3","parseImplicitTiles","replace","_tile$extensions","implicitTiling"],"sources":["../../../../src/lib/parsers/parse-3d-tile-header.ts"],"sourcesContent":["import type {Tiles3DLoaderOptions} from '../../tiles-3d-loader';\nimport type {LoaderOptions} from '@loaders.gl/loader-utils';\nimport {Tile3DSubtreeLoader} from '../../tile-3d-subtree-loader';\nimport {load} from '@loaders.gl/core';\nimport {LOD_METRIC_TYPE, TILE_REFINEMENT, TILE_TYPE} from '@loaders.gl/tiles';\nimport {\n ImplicitTilingExensionData,\n Subtree,\n Tiles3DTileContentJSON,\n Tiles3DTileJSON,\n Tiles3DTileJSONPostprocessed,\n Tiles3DTilesetJSON\n} from '../../types';\nimport type {S2VolumeBox} from './helpers/parse-3d-implicit-tiles';\nimport {parseImplicitTiles, replaceContentUrlTemplate} from './helpers/parse-3d-implicit-tiles';\nimport type {S2VolumeInfo} from '../utils/obb/s2-corners-to-obb';\nimport {convertS2BoundingVolumetoOBB} from '../utils/obb/s2-corners-to-obb';\n\nfunction getTileType(tile: Tiles3DTileJSON, tileContentUrl: string = ''): TILE_TYPE | string {\n if (!tileContentUrl) {\n return TILE_TYPE.EMPTY;\n }\n\n const contentUrl = tileContentUrl.split('?')[0]; // Discard query string\n const fileExtension = contentUrl.split('.').pop();\n switch (fileExtension) {\n case 'pnts':\n return TILE_TYPE.POINTCLOUD;\n case 'i3dm':\n case 'b3dm':\n case 'glb':\n case 'gltf':\n return TILE_TYPE.SCENEGRAPH;\n default:\n return fileExtension || TILE_TYPE.EMPTY;\n }\n}\n\nfunction getRefine(refine?: string): TILE_REFINEMENT | string | undefined {\n switch (refine) {\n case 'REPLACE':\n case 'replace':\n return TILE_REFINEMENT.REPLACE;\n case 'ADD':\n case 'add':\n return TILE_REFINEMENT.ADD;\n default:\n return refine;\n }\n}\n\nfunction resolveUri(uri: string = '', basePath: string): string {\n // url scheme per RFC3986\n const urlSchemeRegex = /^[a-z][0-9a-z+.-]*:/i;\n\n if (urlSchemeRegex.test(basePath)) {\n const url = new URL(uri, `${basePath}/`);\n return decodeURI(url.toString());\n } else if (uri.startsWith('/')) {\n return uri;\n }\n\n return `${basePath}/${uri}`;\n}\n\nexport function normalizeTileData(\n tile: Tiles3DTileJSON | null,\n basePath: string\n): Tiles3DTileJSONPostprocessed | null {\n if (!tile) {\n return null;\n }\n let tileContentUrl: string | undefined;\n if (tile.content) {\n const contentUri = tile.content.uri || tile.content?.url;\n tileContentUrl = resolveUri(contentUri, basePath);\n }\n const tilePostprocessed: Tiles3DTileJSONPostprocessed = {\n ...tile,\n id: tileContentUrl,\n contentUrl: tileContentUrl,\n lodMetricType: LOD_METRIC_TYPE.GEOMETRIC_ERROR,\n lodMetricValue: tile.geometricError,\n transformMatrix: tile.transform,\n type: getTileType(tile, tileContentUrl),\n refine: getRefine(tile.refine)\n };\n\n return tilePostprocessed;\n}\n\n// normalize tile headers\nexport async function normalizeTileHeaders(\n tileset: Tiles3DTilesetJSON,\n basePath: string,\n options: LoaderOptions\n): Promise<Tiles3DTileJSONPostprocessed | null> {\n let root: Tiles3DTileJSONPostprocessed | null = null;\n\n const rootImplicitTilingExtension = getImplicitTilingExtensionData(tileset.root);\n if (rootImplicitTilingExtension && tileset.root) {\n root = await normalizeImplicitTileHeaders(\n tileset.root,\n tileset,\n basePath,\n rootImplicitTilingExtension,\n options\n );\n } else {\n root = normalizeTileData(tileset.root, basePath);\n }\n\n const stack: any[] = [];\n stack.push(root);\n\n while (stack.length > 0) {\n const tile = stack.pop() || {};\n const children = tile.children || [];\n const childrenPostprocessed: Tiles3DTileJSONPostprocessed[] = [];\n for (const childHeader of children) {\n const childImplicitTilingExtension = getImplicitTilingExtensionData(childHeader);\n let childHeaderPostprocessed: Tiles3DTileJSONPostprocessed | null;\n if (childImplicitTilingExtension) {\n childHeaderPostprocessed = await normalizeImplicitTileHeaders(\n childHeader,\n tileset,\n basePath,\n childImplicitTilingExtension,\n options\n );\n } else {\n childHeaderPostprocessed = normalizeTileData(childHeader, basePath);\n }\n\n if (childHeaderPostprocessed) {\n childrenPostprocessed.push(childHeaderPostprocessed);\n stack.push(childHeaderPostprocessed);\n }\n }\n tile.children = childrenPostprocessed;\n }\n\n return root;\n}\n\n/**\n * Do normalisation of implicit tile headers\n * TODO Check if Tile3D class can be a return type here.\n * @param tileset\n */\nexport async function normalizeImplicitTileHeaders(\n tile: Tiles3DTileJSON,\n tileset: Tiles3DTilesetJSON,\n basePath: string,\n implicitTilingExtension: ImplicitTilingExensionData,\n options: Tiles3DLoaderOptions\n): Promise<Tiles3DTileJSONPostprocessed | null> {\n const {\n subdivisionScheme,\n maximumLevel,\n subtreeLevels,\n subtrees: {uri: subtreesUriTemplate}\n } = implicitTilingExtension;\n const replacedUrlTemplate = replaceContentUrlTemplate(subtreesUriTemplate, 0, 0, 0, 0);\n const subtreeUrl = resolveUri(replacedUrlTemplate, basePath);\n const subtree = await load(subtreeUrl, Tile3DSubtreeLoader, options);\n const contentUrlTemplate = resolveUri(tile.content?.uri, basePath);\n const refine = tileset?.root?.refine;\n // @ts-ignore\n const rootLodMetricValue = tile.geometricError;\n\n // Replace tile.boundingVolume with the the bounding volume specified by the extensions['3DTILES_bounding_volume_S2']\n const s2VolumeInfo: S2VolumeInfo = tile.boundingVolume.extensions?.['3DTILES_bounding_volume_S2'];\n if (s2VolumeInfo) {\n const box = convertS2BoundingVolumetoOBB(s2VolumeInfo);\n const s2VolumeBox: S2VolumeBox = {box, s2VolumeInfo};\n tile.boundingVolume = s2VolumeBox;\n }\n\n const rootBoundingVolume = tile.boundingVolume;\n\n const implicitOptions = {\n contentUrlTemplate,\n subtreesUriTemplate,\n subdivisionScheme,\n subtreeLevels,\n maximumLevel,\n refine,\n basePath,\n lodMetricType: LOD_METRIC_TYPE.GEOMETRIC_ERROR,\n rootLodMetricValue,\n rootBoundingVolume,\n getTileType,\n getRefine\n };\n\n return await normalizeImplicitTileData(tile, basePath, subtree, implicitOptions);\n}\n\n/**\n * Do implicit data normalisation to create hierarchical tile structure\n * @param tile\n * @param rootSubtree\n * @param options\n * @returns\n */\nexport async function normalizeImplicitTileData(\n tile: Tiles3DTileJSON,\n basePath: string,\n rootSubtree: Subtree,\n options: any\n): Promise<Tiles3DTileJSONPostprocessed | null> {\n if (!tile) {\n return null;\n }\n\n const {children, contentUrl} = await parseImplicitTiles({\n subtree: rootSubtree,\n options\n });\n\n let tileContentUrl: string | undefined;\n let tileContent: Tiles3DTileContentJSON | null = null;\n if (contentUrl) {\n tileContentUrl = contentUrl;\n tileContent = {uri: contentUrl.replace(`${basePath}/`, '')};\n }\n const tilePostprocessed: Tiles3DTileJSONPostprocessed = {\n ...tile,\n id: tileContentUrl,\n contentUrl: tileContentUrl,\n lodMetricType: LOD_METRIC_TYPE.GEOMETRIC_ERROR,\n lodMetricValue: tile.geometricError,\n transformMatrix: tile.transform,\n type: getTileType(tile, tileContentUrl),\n refine: getRefine(tile.refine),\n content: tileContent || tile.content,\n children\n };\n\n return tilePostprocessed;\n}\n\n/**\n * Implicit Tiling data can be in 3DTILES_implicit_tiling for 3DTiles v.Next or directly in implicitTiling object for 3DTiles v1.1.\n * Spec 3DTiles v.Next - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling\n * Spec 3DTiles v.1.1 - https://github.com/CesiumGS/3d-tiles/tree/draft-1.1/specification/ImplicitTiling\n * @param tile\n * @returns\n */\nfunction getImplicitTilingExtensionData(tile: Tiles3DTileJSON | null): ImplicitTilingExensionData {\n return tile?.extensions?.['3DTILES_implicit_tiling'] || tile?.implicitTiling;\n}\n"],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ function _parseInstancedModel3DTile() {
|
|
|
25
25
|
case 0:
|
|
26
26
|
byteOffset = parseInstancedModel(tile, arrayBuffer, byteOffset, options, context);
|
|
27
27
|
_context.next = 3;
|
|
28
|
-
return (0, _parse3dTileGltfView.extractGLTF)(tile, tile.gltfFormat, options, context);
|
|
28
|
+
return (0, _parse3dTileGltfView.extractGLTF)(tile, tile.gltfFormat || 0, options, context);
|
|
29
29
|
case 3:
|
|
30
30
|
return _context.abrupt("return", byteOffset);
|
|
31
31
|
case 4:
|
|
@@ -37,6 +37,7 @@ function _parseInstancedModel3DTile() {
|
|
|
37
37
|
return _parseInstancedModel3DTile.apply(this, arguments);
|
|
38
38
|
}
|
|
39
39
|
function parseInstancedModel(tile, arrayBuffer, byteOffset, options, context) {
|
|
40
|
+
var _tile$header;
|
|
40
41
|
byteOffset = (0, _parse3dTileHeader.parse3DTileHeaderSync)(tile, arrayBuffer, byteOffset);
|
|
41
42
|
if (tile.version !== 1) {
|
|
42
43
|
throw new Error("Instanced 3D Model version ".concat(tile.version, " is not supported"));
|
|
@@ -47,7 +48,7 @@ function parseInstancedModel(tile, arrayBuffer, byteOffset, options, context) {
|
|
|
47
48
|
byteOffset += 4;
|
|
48
49
|
byteOffset = (0, _parse3dTileTables.parse3DTileTablesSync)(tile, arrayBuffer, byteOffset, options);
|
|
49
50
|
byteOffset = (0, _parse3dTileGltfView.parse3DTileGLTFViewSync)(tile, arrayBuffer, byteOffset, options);
|
|
50
|
-
if (tile.featureTableJsonByteLength === 0) {
|
|
51
|
+
if (!(tile !== null && tile !== void 0 && (_tile$header = tile.header) !== null && _tile$header !== void 0 && _tile$header.featureTableJsonByteLength) || tile.header.featureTableJsonByteLength === 0) {
|
|
51
52
|
throw new Error('i3dm parser: featureTableJsonByteLength is zero.');
|
|
52
53
|
}
|
|
53
54
|
var featureTable = new _tile3dFeatureTable.default(tile.featureTableJson, tile.featureTableBinary);
|
|
@@ -63,17 +64,7 @@ function parseInstancedModel(tile, arrayBuffer, byteOffset, options, context) {
|
|
|
63
64
|
return byteOffset;
|
|
64
65
|
}
|
|
65
66
|
function extractInstancedAttributes(tile, featureTable, batchTable, instancesLength) {
|
|
66
|
-
var
|
|
67
|
-
instances: new Array(instancesLength),
|
|
68
|
-
batchTable: tile._batchTable,
|
|
69
|
-
cull: false,
|
|
70
|
-
url: undefined,
|
|
71
|
-
gltf: undefined,
|
|
72
|
-
basePath: undefined,
|
|
73
|
-
incrementallyLoadTextures: false,
|
|
74
|
-
forwardAxis: [1, 0, 0]
|
|
75
|
-
};
|
|
76
|
-
var instances = collectionOptions.instances;
|
|
67
|
+
var instances = new Array(instancesLength);
|
|
77
68
|
var instancePosition = new _core.Vector3();
|
|
78
69
|
var instanceNormalRight = new _core.Vector3();
|
|
79
70
|
var instanceNormalUp = new _core.Vector3();
|
|
@@ -85,19 +76,19 @@ function extractInstancedAttributes(tile, featureTable, batchTable, instancesLen
|
|
|
85
76
|
var instanceTransform = new _core.Matrix4();
|
|
86
77
|
var scratch1 = [];
|
|
87
78
|
var scratch2 = [];
|
|
88
|
-
var
|
|
89
|
-
var
|
|
79
|
+
var scratch3 = [];
|
|
80
|
+
var scratch4 = [];
|
|
90
81
|
for (var i = 0; i < instancesLength; i++) {
|
|
91
82
|
var position = void 0;
|
|
92
83
|
if (featureTable.hasProperty('POSITION')) {
|
|
93
84
|
position = featureTable.getProperty('POSITION', _math.GL.FLOAT, 3, i, instancePosition);
|
|
94
85
|
} else if (featureTable.hasProperty('POSITION_QUANTIZED')) {
|
|
95
86
|
position = featureTable.getProperty('POSITION_QUANTIZED', _math.GL.UNSIGNED_SHORT, 3, i, instancePosition);
|
|
96
|
-
var quantizedVolumeOffset = featureTable.getGlobalProperty('QUANTIZED_VOLUME_OFFSET', _math.GL.FLOAT, 3
|
|
87
|
+
var quantizedVolumeOffset = featureTable.getGlobalProperty('QUANTIZED_VOLUME_OFFSET', _math.GL.FLOAT, 3);
|
|
97
88
|
if (!quantizedVolumeOffset) {
|
|
98
89
|
throw new Error('i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.');
|
|
99
90
|
}
|
|
100
|
-
var quantizedVolumeScale = featureTable.getGlobalProperty('QUANTIZED_VOLUME_SCALE', _math.GL.FLOAT, 3
|
|
91
|
+
var quantizedVolumeScale = featureTable.getGlobalProperty('QUANTIZED_VOLUME_SCALE', _math.GL.FLOAT, 3);
|
|
101
92
|
if (!quantizedVolumeScale) {
|
|
102
93
|
throw new Error('i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.');
|
|
103
94
|
}
|
|
@@ -120,8 +111,8 @@ function extractInstancedAttributes(tile, featureTable, batchTable, instancesLen
|
|
|
120
111
|
}
|
|
121
112
|
tile.hasCustomOrientation = true;
|
|
122
113
|
} else {
|
|
123
|
-
tile.octNormalUp = featureTable.getProperty('NORMAL_UP_OCT32P', _math.GL.UNSIGNED_SHORT, 2, scratch1);
|
|
124
|
-
tile.octNormalRight = featureTable.getProperty('NORMAL_RIGHT_OCT32P', _math.GL.UNSIGNED_SHORT, 2, scratch2);
|
|
114
|
+
tile.octNormalUp = featureTable.getProperty('NORMAL_UP_OCT32P', _math.GL.UNSIGNED_SHORT, 2, i, scratch1);
|
|
115
|
+
tile.octNormalRight = featureTable.getProperty('NORMAL_RIGHT_OCT32P', _math.GL.UNSIGNED_SHORT, 2, i, scratch2);
|
|
125
116
|
if (tile.octNormalUp) {
|
|
126
117
|
if (!tile.octNormalRight) {
|
|
127
118
|
throw new Error('i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P');
|
|
@@ -143,7 +134,7 @@ function extractInstancedAttributes(tile, featureTable, batchTable, instancesLen
|
|
|
143
134
|
instanceQuaternion.fromMatrix3(instanceRotation);
|
|
144
135
|
instanceTranslationRotationScale.rotation = instanceQuaternion;
|
|
145
136
|
instanceScale.set(1.0, 1.0, 1.0);
|
|
146
|
-
var scale = featureTable.getProperty('SCALE', _math.GL.FLOAT, 1, i);
|
|
137
|
+
var scale = featureTable.getProperty('SCALE', _math.GL.FLOAT, 1, i, scratch3);
|
|
147
138
|
if (Number.isFinite(scale)) {
|
|
148
139
|
instanceScale.multiplyByScalar(scale);
|
|
149
140
|
}
|
|
@@ -152,7 +143,7 @@ function extractInstancedAttributes(tile, featureTable, batchTable, instancesLen
|
|
|
152
143
|
instanceScale.scale(nonUniformScale);
|
|
153
144
|
}
|
|
154
145
|
instanceTranslationRotationScale.scale = instanceScale;
|
|
155
|
-
var batchId = featureTable.getProperty('BATCH_ID', _math.GL.UNSIGNED_SHORT, 1, i);
|
|
146
|
+
var batchId = featureTable.getProperty('BATCH_ID', _math.GL.UNSIGNED_SHORT, 1, i, scratch4);
|
|
156
147
|
if (batchId === undefined) {
|
|
157
148
|
batchId = i;
|
|
158
149
|
}
|