@loaders.gl/tile-converter 4.0.0-alpha.7 → 4.0.0-alpha.9
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/3d-tiles-attributes-worker.js +2 -2
- package/dist/3d-tiles-attributes-worker.js.map +2 -2
- package/dist/converter.min.js +67 -67
- package/dist/deps-installer/deps-installer.d.ts.map +1 -1
- package/dist/deps-installer/deps-installer.js +3 -2
- package/dist/dist.min.js +698 -340
- package/dist/es5/3d-tiles-attributes-worker.js +1 -1
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/es5/deps-installer/deps-installer.js +4 -3
- package/dist/es5/deps-installer/deps-installer.js.map +1 -1
- package/dist/es5/i3s-attributes-worker.js +1 -1
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +2 -2
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js +6 -7
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +25 -14
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js +45 -12
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/load-3d-tiles.js +82 -0
- package/dist/es5/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/node-index-document.js +74 -45
- package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +111 -0
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/tileset-traversal.js +82 -0
- package/dist/es5/i3s-converter/helpers/tileset-traversal.js.map +1 -0
- package/dist/es5/i3s-converter/i3s-converter.js +545 -516
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/i3s-converter/types.js +16 -0
- package/dist/es5/i3s-converter/types.js.map +1 -1
- package/dist/es5/i3s-server/README.md +19 -0
- package/dist/es5/i3s-server/app.js +10 -1
- package/dist/es5/i3s-server/app.js.map +1 -1
- package/dist/es5/i3s-server/controllers/slpk-controller.js +84 -0
- package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -0
- package/dist/es5/i3s-server/routes/slpk-router.js +71 -0
- package/dist/es5/i3s-server/routes/slpk-router.js.map +1 -0
- package/dist/es5/i3s-server/utils/create-scene-server.js +17 -0
- package/dist/es5/i3s-server/utils/create-scene-server.js.map +1 -0
- package/dist/es5/lib/utils/file-utils.js +1 -1
- package/dist/es5/lib/utils/file-utils.js.map +1 -1
- package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/es5/pgm-loader.js +1 -1
- package/dist/esm/3d-tiles-attributes-worker.js +1 -1
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/esm/deps-installer/deps-installer.js +4 -3
- package/dist/esm/deps-installer/deps-installer.js.map +1 -1
- package/dist/esm/i3s-attributes-worker.js +1 -1
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +2 -2
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js +6 -7
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +19 -8
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js +49 -12
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/load-3d-tiles.js +35 -0
- package/dist/esm/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/node-index-document.js +14 -1
- package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +48 -0
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/tileset-traversal.js +14 -0
- package/dist/esm/i3s-converter/helpers/tileset-traversal.js.map +1 -0
- package/dist/esm/i3s-converter/i3s-converter.js +134 -120
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-converter/types.js +10 -1
- package/dist/esm/i3s-converter/types.js.map +1 -1
- package/dist/esm/i3s-server/README.md +19 -0
- package/dist/esm/i3s-server/app.js +11 -1
- package/dist/esm/i3s-server/app.js.map +1 -1
- package/dist/esm/i3s-server/controllers/slpk-controller.js +36 -0
- package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -0
- package/dist/esm/i3s-server/routes/slpk-router.js +33 -0
- package/dist/esm/i3s-server/routes/slpk-router.js.map +1 -0
- package/dist/esm/i3s-server/utils/create-scene-server.js +16 -0
- package/dist/esm/i3s-server/utils/create-scene-server.js.map +1 -0
- package/dist/esm/lib/utils/file-utils.js +1 -1
- package/dist/esm/lib/utils/file-utils.js.map +1 -1
- package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/esm/pgm-loader.js +1 -1
- package/dist/i3s-attributes-worker.js +2 -2
- package/dist/i3s-attributes-worker.js.map +2 -2
- package/dist/i3s-converter/helpers/batch-ids-extensions.js +2 -5
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts +3 -4
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/coordinate-converter.js +8 -9
- package/dist/i3s-converter/helpers/geometry-converter.d.ts +9 -4
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.js +34 -12
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts +22 -3
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/gltf-attributes.js +61 -18
- package/dist/i3s-converter/helpers/load-3d-tiles.d.ts +18 -0
- package/dist/i3s-converter/helpers/load-3d-tiles.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/load-3d-tiles.js +53 -0
- package/dist/i3s-converter/helpers/node-index-document.d.ts +8 -0
- package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/node-index-document.js +20 -2
- package/dist/i3s-converter/helpers/node-pages.js +1 -1
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +23 -0
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +76 -0
- package/dist/i3s-converter/helpers/tileset-traversal.d.ts +25 -0
- package/dist/i3s-converter/helpers/tileset-traversal.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/tileset-traversal.js +29 -0
- package/dist/i3s-converter/i3s-converter.d.ts +40 -40
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +150 -126
- package/dist/i3s-converter/types.d.ts +18 -0
- package/dist/i3s-converter/types.d.ts.map +1 -1
- package/dist/i3s-converter/types.js +15 -0
- package/dist/i3s-server/app.d.ts.map +1 -1
- package/dist/i3s-server/app.js +9 -1
- package/dist/i3s-server/controllers/slpk-controller.d.ts +3 -0
- package/dist/i3s-server/controllers/slpk-controller.d.ts.map +1 -0
- package/dist/i3s-server/controllers/slpk-controller.js +32 -0
- package/dist/i3s-server/routes/slpk-router.d.ts +3 -0
- package/dist/i3s-server/routes/slpk-router.d.ts.map +1 -0
- package/dist/i3s-server/routes/slpk-router.js +33 -0
- package/dist/i3s-server/utils/create-scene-server.d.ts +11 -0
- package/dist/i3s-server/utils/create-scene-server.d.ts.map +1 -0
- package/dist/i3s-server/utils/create-scene-server.js +14 -0
- package/dist/lib/utils/file-utils.d.ts.map +1 -1
- package/dist/lib/utils/file-utils.js +2 -1
- package/dist/lib/utils/lod-conversion-utils.d.ts +3 -2
- package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -1
- package/dist/lib/utils/lod-conversion-utils.js +1 -1
- package/package.json +15 -15
- package/src/3d-tiles-converter/3d-tiles-converter.ts +5 -5
- package/src/deps-installer/deps-installer.ts +3 -2
- package/src/i3s-converter/helpers/batch-ids-extensions.ts +2 -5
- package/src/i3s-converter/helpers/coordinate-converter.ts +11 -10
- package/src/i3s-converter/helpers/geometry-converter.ts +51 -19
- package/src/i3s-converter/helpers/gltf-attributes.ts +84 -21
- package/src/i3s-converter/helpers/load-3d-tiles.ts +68 -0
- package/src/i3s-converter/helpers/node-index-document.ts +22 -2
- package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +81 -0
- package/src/i3s-converter/helpers/tileset-traversal.ts +51 -0
- package/src/i3s-converter/i3s-converter.ts +228 -178
- package/src/i3s-converter/types.ts +20 -0
- package/src/i3s-server/README.md +19 -0
- package/src/i3s-server/app.js +8 -1
- package/src/i3s-server/controllers/slpk-controller.js +38 -0
- package/src/i3s-server/routes/slpk-router.js +33 -0
- package/src/i3s-server/utils/create-scene-server.js +15 -0
- package/src/lib/utils/file-utils.ts +2 -1
- package/src/lib/utils/lod-conversion-utils.ts +6 -2
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.mergePreprocessData = exports.analyzeTileContent = exports.GLTF_PRIMITIVE_MODES = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _types = require("../types");
|
|
11
|
+
var _gltf = require("@loaders.gl/gltf");
|
|
12
|
+
var _core = require("@loaders.gl/core");
|
|
13
|
+
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; } } }; }
|
|
14
|
+
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); }
|
|
15
|
+
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; }
|
|
16
|
+
var GLTF_PRIMITIVE_MODES = [_types.GltfPrimitiveModeString.POINTS, _types.GltfPrimitiveModeString.LINES, _types.GltfPrimitiveModeString.LINE_LOOP, _types.GltfPrimitiveModeString.LINE_STRIP, _types.GltfPrimitiveModeString.TRIANGLES, _types.GltfPrimitiveModeString.TRIANGLE_STRIP, _types.GltfPrimitiveModeString.TRIANGLE_FAN];
|
|
17
|
+
exports.GLTF_PRIMITIVE_MODES = GLTF_PRIMITIVE_MODES;
|
|
18
|
+
var analyzeTileContent = function () {
|
|
19
|
+
var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tile, tileContent) {
|
|
20
|
+
var result, gltfData, gltf, meshTypes;
|
|
21
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
22
|
+
while (1) switch (_context.prev = _context.next) {
|
|
23
|
+
case 0:
|
|
24
|
+
result = {
|
|
25
|
+
meshTopologyTypes: new Set()
|
|
26
|
+
};
|
|
27
|
+
if (tileContent !== null && tileContent !== void 0 && tileContent.gltfArrayBuffer) {
|
|
28
|
+
_context.next = 3;
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
return _context.abrupt("return", result);
|
|
32
|
+
case 3:
|
|
33
|
+
_context.next = 5;
|
|
34
|
+
return (0, _core.parse)(tileContent.gltfArrayBuffer, _gltf.GLTFLoader, {
|
|
35
|
+
gltf: {
|
|
36
|
+
normalize: false,
|
|
37
|
+
loadBuffers: false,
|
|
38
|
+
loadImages: false,
|
|
39
|
+
decompressMeshes: false
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
case 5:
|
|
43
|
+
gltfData = _context.sent;
|
|
44
|
+
gltf = gltfData.json;
|
|
45
|
+
if (gltf) {
|
|
46
|
+
_context.next = 9;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
return _context.abrupt("return", result);
|
|
50
|
+
case 9:
|
|
51
|
+
meshTypes = getMeshTypesFromGltf(gltf);
|
|
52
|
+
result.meshTopologyTypes = meshTypes;
|
|
53
|
+
return _context.abrupt("return", result);
|
|
54
|
+
case 12:
|
|
55
|
+
case "end":
|
|
56
|
+
return _context.stop();
|
|
57
|
+
}
|
|
58
|
+
}, _callee);
|
|
59
|
+
}));
|
|
60
|
+
return function analyzeTileContent(_x, _x2) {
|
|
61
|
+
return _ref.apply(this, arguments);
|
|
62
|
+
};
|
|
63
|
+
}();
|
|
64
|
+
exports.analyzeTileContent = analyzeTileContent;
|
|
65
|
+
var getMeshTypesFromGltf = function getMeshTypesFromGltf(gltfJson) {
|
|
66
|
+
var result = new Set();
|
|
67
|
+
var _iterator = _createForOfIteratorHelper(gltfJson.meshes || []),
|
|
68
|
+
_step;
|
|
69
|
+
try {
|
|
70
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
71
|
+
var mesh = _step.value;
|
|
72
|
+
var _iterator2 = _createForOfIteratorHelper(mesh.primitives),
|
|
73
|
+
_step2;
|
|
74
|
+
try {
|
|
75
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
76
|
+
var primitive = _step2.value;
|
|
77
|
+
var mode = primitive.mode;
|
|
78
|
+
if (typeof mode !== 'number') {
|
|
79
|
+
mode = 4;
|
|
80
|
+
}
|
|
81
|
+
result.add(GLTF_PRIMITIVE_MODES[mode]);
|
|
82
|
+
}
|
|
83
|
+
} catch (err) {
|
|
84
|
+
_iterator2.e(err);
|
|
85
|
+
} finally {
|
|
86
|
+
_iterator2.f();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
} catch (err) {
|
|
90
|
+
_iterator.e(err);
|
|
91
|
+
} finally {
|
|
92
|
+
_iterator.f();
|
|
93
|
+
}
|
|
94
|
+
return result;
|
|
95
|
+
};
|
|
96
|
+
var mergePreprocessData = function mergePreprocessData(object1, object2) {
|
|
97
|
+
var _iterator3 = _createForOfIteratorHelper(object2.meshTopologyTypes),
|
|
98
|
+
_step3;
|
|
99
|
+
try {
|
|
100
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
101
|
+
var type = _step3.value;
|
|
102
|
+
object1.meshTopologyTypes.add(type);
|
|
103
|
+
}
|
|
104
|
+
} catch (err) {
|
|
105
|
+
_iterator3.e(err);
|
|
106
|
+
} finally {
|
|
107
|
+
_iterator3.f();
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
exports.mergePreprocessData = mergePreprocessData;
|
|
111
|
+
//# sourceMappingURL=preprocess-3d-tiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preprocess-3d-tiles.js","names":["_types","require","_gltf","_core","_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","GLTF_PRIMITIVE_MODES","GltfPrimitiveModeString","POINTS","LINES","LINE_LOOP","LINE_STRIP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","exports","analyzeTileContent","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","tile","tileContent","result","gltfData","gltf","meshTypes","wrap","_callee$","_context","prev","meshTopologyTypes","Set","gltfArrayBuffer","abrupt","parse","GLTFLoader","normalize","loadBuffers","loadImages","decompressMeshes","sent","json","getMeshTypesFromGltf","stop","_x","_x2","apply","arguments","gltfJson","_iterator","meshes","_step","mesh","_iterator2","primitives","_step2","primitive","mode","add","mergePreprocessData","object1","object2","_iterator3","_step3","type"],"sources":["../../../../src/i3s-converter/helpers/preprocess-3d-tiles.ts"],"sourcesContent":["import {Tiles3DTileContent, Tiles3DTileJSONPostprocessed} from '@loaders.gl/3d-tiles';\nimport {GltfPrimitiveModeString, PreprocessData} from '../types';\nimport {GLTF, GLTFLoader} from '@loaders.gl/gltf';\nimport {parse} from '@loaders.gl/core';\n\n/**\n * glTF primitive modes\n * @see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode\n */\nexport const GLTF_PRIMITIVE_MODES = [\n GltfPrimitiveModeString.POINTS, // 0\n GltfPrimitiveModeString.LINES, // 1\n GltfPrimitiveModeString.LINE_LOOP, // 2\n GltfPrimitiveModeString.LINE_STRIP, // 3\n GltfPrimitiveModeString.TRIANGLES, // 4\n GltfPrimitiveModeString.TRIANGLE_STRIP, // 5\n GltfPrimitiveModeString.TRIANGLE_FAN // 6\n];\n\n/**\n * Analyze tile content. This function is used during preprocess stage of\n * conversion\n * @param tile - 3DTiles tile JSON metadata\n * @param tileContent - 3DTiles tile content ArrayBuffer\n * @returns\n */\nexport const analyzeTileContent = async (\n tile: Tiles3DTileJSONPostprocessed,\n tileContent: Tiles3DTileContent | null\n): Promise<PreprocessData> => {\n const result: PreprocessData = {\n meshTopologyTypes: new Set()\n };\n if (!tileContent?.gltfArrayBuffer) {\n return result;\n }\n\n const gltfData = await parse(tileContent.gltfArrayBuffer, GLTFLoader, {\n gltf: {normalize: false, loadBuffers: false, loadImages: false, decompressMeshes: false}\n });\n const gltf = gltfData.json;\n\n if (!gltf) {\n return result;\n }\n const meshTypes = getMeshTypesFromGltf(gltf);\n result.meshTopologyTypes = meshTypes;\n return result;\n};\n\n/**\n * Get mesh topology types that the glb content has\n * @param gltfJson - JSON part of GLB content\n * @returns array of mesh types found\n */\nconst getMeshTypesFromGltf = (gltfJson: GLTF): Set<GltfPrimitiveModeString> => {\n const result: Set<GltfPrimitiveModeString> = new Set();\n for (const mesh of gltfJson.meshes || []) {\n for (const primitive of mesh.primitives) {\n let {mode} = primitive;\n if (typeof mode !== 'number') {\n mode = 4; // Default is 4 - TRIANGLES\n }\n result.add(GLTF_PRIMITIVE_MODES[mode]);\n }\n }\n return result;\n};\n\n/**\n * Merge object2 into object1\n * @param object1\n * @param object2\n * @returns nothing\n */\nexport const mergePreprocessData = (object1: PreprocessData, object2: PreprocessData): void => {\n // Merge topology mesh types info\n for (const type of object2.meshTopologyTypes) {\n object1.meshTopologyTypes.add(type);\n }\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.traverseDatasetWith = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
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; } } }; }
|
|
11
|
+
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); }
|
|
12
|
+
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; }
|
|
13
|
+
var traverseDatasetWith = function () {
|
|
14
|
+
var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tile, traversalProps, processTile, postprocessTile, maxDepth) {
|
|
15
|
+
var level,
|
|
16
|
+
processResults,
|
|
17
|
+
newTraversalProps,
|
|
18
|
+
_iterator,
|
|
19
|
+
_step,
|
|
20
|
+
childTile,
|
|
21
|
+
_args = arguments;
|
|
22
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
23
|
+
while (1) switch (_context.prev = _context.next) {
|
|
24
|
+
case 0:
|
|
25
|
+
level = _args.length > 5 && _args[5] !== undefined ? _args[5] : 0;
|
|
26
|
+
if (!(maxDepth && level > maxDepth)) {
|
|
27
|
+
_context.next = 3;
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
return _context.abrupt("return");
|
|
31
|
+
case 3:
|
|
32
|
+
processResults = [];
|
|
33
|
+
_context.next = 6;
|
|
34
|
+
return processTile(tile, traversalProps);
|
|
35
|
+
case 6:
|
|
36
|
+
newTraversalProps = _context.sent;
|
|
37
|
+
processResults.push(newTraversalProps);
|
|
38
|
+
_iterator = _createForOfIteratorHelper(tile.children);
|
|
39
|
+
_context.prev = 9;
|
|
40
|
+
_iterator.s();
|
|
41
|
+
case 11:
|
|
42
|
+
if ((_step = _iterator.n()).done) {
|
|
43
|
+
_context.next = 17;
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
childTile = _step.value;
|
|
47
|
+
_context.next = 15;
|
|
48
|
+
return traverseDatasetWith(childTile, newTraversalProps, processTile, postprocessTile, maxDepth, level + 1);
|
|
49
|
+
case 15:
|
|
50
|
+
_context.next = 11;
|
|
51
|
+
break;
|
|
52
|
+
case 17:
|
|
53
|
+
_context.next = 22;
|
|
54
|
+
break;
|
|
55
|
+
case 19:
|
|
56
|
+
_context.prev = 19;
|
|
57
|
+
_context.t0 = _context["catch"](9);
|
|
58
|
+
_iterator.e(_context.t0);
|
|
59
|
+
case 22:
|
|
60
|
+
_context.prev = 22;
|
|
61
|
+
_iterator.f();
|
|
62
|
+
return _context.finish(22);
|
|
63
|
+
case 25:
|
|
64
|
+
_context.t1 = postprocessTile;
|
|
65
|
+
if (!_context.t1) {
|
|
66
|
+
_context.next = 29;
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
_context.next = 29;
|
|
70
|
+
return postprocessTile(processResults, traversalProps);
|
|
71
|
+
case 29:
|
|
72
|
+
case "end":
|
|
73
|
+
return _context.stop();
|
|
74
|
+
}
|
|
75
|
+
}, _callee, null, [[9, 19, 22, 25]]);
|
|
76
|
+
}));
|
|
77
|
+
return function traverseDatasetWith(_x, _x2, _x3, _x4, _x5) {
|
|
78
|
+
return _ref.apply(this, arguments);
|
|
79
|
+
};
|
|
80
|
+
}();
|
|
81
|
+
exports.traverseDatasetWith = traverseDatasetWith;
|
|
82
|
+
//# sourceMappingURL=tileset-traversal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tileset-traversal.js","names":["traverseDatasetWith","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","tile","traversalProps","processTile","postprocessTile","maxDepth","level","processResults","newTraversalProps","_iterator","_step","childTile","_args","arguments","wrap","_callee$","_context","prev","next","length","undefined","abrupt","sent","push","_createForOfIteratorHelper","children","s","n","done","value","t0","e","f","finish","t1","stop","_x","_x2","_x3","_x4","_x5","apply","exports"],"sources":["../../../../src/i3s-converter/helpers/tileset-traversal.ts"],"sourcesContent":["import {Tiles3DTileJSONPostprocessed} from '@loaders.gl/3d-tiles';\nimport {NodeIndexDocument} from './node-index-document';\nimport {Matrix4} from '@math.gl/core';\n\n/** Traversal props for the conversion stage */\nexport type TraversalConversionProps = {\n /** Transformation matrix for the specific tile */\n transform: Matrix4;\n /** Parent nodes of the converted tile. Multiple nodes can be if one tile is converted to multiple nodes*/\n parentNodes: NodeIndexDocument[];\n};\n\n/**\n * Travesal of 3DTile tiles tree with making specific actions with each tile\n * @param tile - 3DTiles tile JSON metadata\n * @param traversalProps - traversal props used to pass data through recursive calls\n * @param processTile - callback to make some actions with the current tile\n * @param postprocessTile - callback to make some action after processing of the current tile and all the subtree\n * @param maxDepth - max recursive calls number the travesal function will do. If not set, the traversal function will\n * go through all the tree.\n * This value is used to limit the convertion with only partial number of levels of the tileset\n * @param level - counter to keep recursive calls number of the tiles tree. This value used to be able to break\n * traversal at the some level of the tree\n * @returns void\n */\nexport const traverseDatasetWith = async <TProps>(\n tile: Tiles3DTileJSONPostprocessed,\n traversalProps: TProps,\n processTile: (tile: Tiles3DTileJSONPostprocessed, traversalProps: TProps) => Promise<TProps>,\n postprocessTile?: (processResults: TProps[], currentTraversalProps: TProps) => Promise<void>,\n maxDepth?: number,\n level = 0\n): Promise<void> => {\n if (maxDepth && level > maxDepth) {\n return;\n }\n const processResults: TProps[] = [];\n const newTraversalProps: TProps = await processTile(tile, traversalProps);\n processResults.push(newTraversalProps);\n for (const childTile of tile.children) {\n await traverseDatasetWith(\n childTile,\n newTraversalProps,\n processTile,\n postprocessTile,\n maxDepth,\n level + 1\n );\n }\n postprocessTile && (await postprocessTile(processResults, traversalProps));\n};\n"],"mappings":";;;;;;;;;;;;AAyBO,IAAMA,mBAAmB;EAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAG,SAAAC,QACjCC,IAAkC,EAClCC,cAAsB,EACtBC,WAA4F,EAC5FC,eAA4F,EAC5FC,QAAiB;IAAA,IAAAC,KAAA;MAAAC,cAAA;MAAAC,iBAAA;MAAAC,SAAA;MAAAC,KAAA;MAAAC,SAAA;MAAAC,KAAA,GAAAC,SAAA;IAAA,OAAAf,YAAA,CAAAD,OAAA,CAAAiB,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UACjBZ,KAAK,GAAAM,KAAA,CAAAO,MAAA,QAAAP,KAAA,QAAAQ,SAAA,GAAAR,KAAA,MAAG,CAAC;UAAA,MAELP,QAAQ,IAAIC,KAAK,GAAGD,QAAQ;YAAAW,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAK,MAAA;QAAA;UAG1Bd,cAAwB,GAAG,EAAE;UAAAS,QAAA,CAAAE,IAAA;UAAA,OACKf,WAAW,CAACF,IAAI,EAAEC,cAAc,CAAC;QAAA;UAAnEM,iBAAyB,GAAAQ,QAAA,CAAAM,IAAA;UAC/Bf,cAAc,CAACgB,IAAI,CAACf,iBAAiB,CAAC;UAACC,SAAA,GAAAe,0BAAA,CACfvB,IAAI,CAACwB,QAAQ;UAAAT,QAAA,CAAAC,IAAA;UAAAR,SAAA,CAAAiB,CAAA;QAAA;UAAA,KAAAhB,KAAA,GAAAD,SAAA,CAAAkB,CAAA,IAAAC,IAAA;YAAAZ,QAAA,CAAAE,IAAA;YAAA;UAAA;UAA1BP,SAAS,GAAAD,KAAA,CAAAmB,KAAA;UAAAb,QAAA,CAAAE,IAAA;UAAA,OACZxB,mBAAmB,CACvBiB,SAAS,EACTH,iBAAiB,EACjBL,WAAW,EACXC,eAAe,EACfC,QAAQ,EACRC,KAAK,GAAG,CACV,CAAC;QAAA;UAAAU,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAc,EAAA,GAAAd,QAAA;UAAAP,SAAA,CAAAsB,CAAA,CAAAf,QAAA,CAAAc,EAAA;QAAA;UAAAd,QAAA,CAAAC,IAAA;UAAAR,SAAA,CAAAuB,CAAA;UAAA,OAAAhB,QAAA,CAAAiB,MAAA;QAAA;UAAAjB,QAAA,CAAAkB,EAAA,GAEH9B,eAAe;UAAA,KAAAY,QAAA,CAAAkB,EAAA;YAAAlB,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OAAWd,eAAe,CAACG,cAAc,EAAEL,cAAc,CAAC;QAAA;QAAA;UAAA,OAAAc,QAAA,CAAAmB,IAAA;MAAA;IAAA,GAAAnC,OAAA;EAAA,CAC1E;EAAA,gBAzBYN,mBAAmBA,CAAA0C,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;IAAA,OAAA7C,IAAA,CAAA8C,KAAA,OAAA5B,SAAA;EAAA;AAAA,GAyB/B;AAAC6B,OAAA,CAAAhD,mBAAA,GAAAA,mBAAA"}
|