@loaders.gl/tile-converter 4.0.0-alpha.19 → 4.0.0-alpha.20
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/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -1
- package/dist/converter-cli.js +10 -2
- package/dist/converter.min.js +172 -103
- package/dist/dist.min.js +151 -86
- package/dist/es5/constants.js +5 -1
- package/dist/es5/constants.js.map +1 -1
- package/dist/es5/converter-cli.js +7 -2
- package/dist/es5/converter-cli.js.map +1 -1
- package/dist/es5/deps-installer/deps-installer.js +1 -1
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +21 -8
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +7 -6
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +67 -59
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +38 -9
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +55 -13
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/i3s-converter/types.js +11 -11
- package/dist/es5/i3s-converter/types.js.map +1 -1
- package/dist/es5/i3s-server/controllers/slpk-controller.js +1 -1
- package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -1
- package/dist/es5/index.js +3 -3
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/pgm-loader.js +1 -1
- package/dist/es5/slpk-extractor/helpers/{file-handle-provider.js → file-handle-file.js} +9 -9
- package/dist/es5/slpk-extractor/helpers/file-handle-file.js.map +1 -0
- package/dist/es5/slpk-extractor/slpk-extractor.js +5 -5
- package/dist/es5/slpk-extractor/slpk-extractor.js.map +1 -1
- package/dist/esm/constants.js +2 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/converter-cli.js +7 -2
- package/dist/esm/converter-cli.js.map +1 -1
- package/dist/esm/deps-installer/deps-installer.js +1 -1
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +18 -6
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js +7 -6
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +28 -20
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +28 -9
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +39 -9
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-converter/types.js +9 -9
- package/dist/esm/i3s-converter/types.js.map +1 -1
- package/dist/esm/i3s-server/bin/i3s-server.min.js +71 -71
- package/dist/esm/i3s-server/controllers/slpk-controller.js +2 -2
- package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pgm-loader.js +1 -1
- package/dist/esm/slpk-extractor/helpers/{file-handle-provider.js → file-handle-file.js} +3 -3
- package/dist/esm/slpk-extractor/helpers/file-handle-file.js.map +1 -0
- package/dist/esm/slpk-extractor/slpk-extractor.js +3 -3
- package/dist/esm/slpk-extractor/slpk-extractor.js.map +1 -1
- package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +11 -1
- package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/batch-ids-extensions.js +33 -13
- package/dist/i3s-converter/helpers/geometry-attributes.js +7 -6
- package/dist/i3s-converter/helpers/geometry-converter.d.ts +6 -3
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.js +42 -35
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +2 -2
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +39 -14
- package/dist/i3s-converter/i3s-converter.d.ts +2 -0
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +40 -10
- package/dist/i3s-converter/types.d.ts +4 -2
- package/dist/i3s-converter/types.d.ts.map +1 -1
- package/dist/i3s-converter/types.js +11 -11
- package/dist/i3s-server/controllers/slpk-controller.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/slpk-extractor/helpers/{file-handle-provider.d.ts → file-handle-file.d.ts} +5 -5
- package/dist/slpk-extractor/helpers/file-handle-file.d.ts.map +1 -0
- package/dist/slpk-extractor/helpers/{file-handle-provider.js → file-handle-file.js} +5 -5
- package/dist/slpk-extractor/slpk-extractor.js +5 -5
- package/dist/slpk-extractor.min.js +32 -32
- package/package.json +15 -14
- package/src/constants.ts +3 -0
- package/src/converter-cli.ts +9 -2
- package/src/i3s-converter/helpers/batch-ids-extensions.ts +39 -12
- package/src/i3s-converter/helpers/geometry-attributes.ts +15 -8
- package/src/i3s-converter/helpers/geometry-converter.ts +66 -35
- package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +48 -18
- package/src/i3s-converter/i3s-converter.ts +54 -12
- package/src/i3s-converter/types.ts +4 -2
- package/src/i3s-server/controllers/slpk-controller.ts +2 -2
- package/src/index.ts +1 -1
- package/src/slpk-extractor/helpers/{file-handle-provider.ts → file-handle-file.ts} +5 -5
- package/src/slpk-extractor/slpk-extractor.ts +3 -3
- package/dist/es5/slpk-extractor/helpers/file-handle-provider.js.map +0 -1
- package/dist/esm/slpk-extractor/helpers/file-handle-provider.js.map +0 -1
- package/dist/slpk-extractor/helpers/file-handle-provider.d.ts.map +0 -1
|
@@ -10,25 +10,27 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
10
10
|
var _types = require("../types");
|
|
11
11
|
var _gltf = require("@loaders.gl/gltf");
|
|
12
12
|
var _core = require("@loaders.gl/core");
|
|
13
|
+
var _constants = require("../../constants");
|
|
13
14
|
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
15
|
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
16
|
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.
|
|
17
|
+
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
18
|
exports.GLTF_PRIMITIVE_MODES = GLTF_PRIMITIVE_MODES;
|
|
18
19
|
var analyzeTileContent = function () {
|
|
19
20
|
var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tileContent) {
|
|
20
|
-
var
|
|
21
|
+
var defaultResult, gltfData, gltf, meshTopologyTypes, metadataClasses;
|
|
21
22
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
22
23
|
while (1) switch (_context.prev = _context.next) {
|
|
23
24
|
case 0:
|
|
24
|
-
|
|
25
|
-
meshTopologyTypes: new Set()
|
|
25
|
+
defaultResult = {
|
|
26
|
+
meshTopologyTypes: new Set(),
|
|
27
|
+
metadataClasses: new Set()
|
|
26
28
|
};
|
|
27
29
|
if (tileContent !== null && tileContent !== void 0 && tileContent.gltfArrayBuffer) {
|
|
28
30
|
_context.next = 3;
|
|
29
31
|
break;
|
|
30
32
|
}
|
|
31
|
-
return _context.abrupt("return",
|
|
33
|
+
return _context.abrupt("return", defaultResult);
|
|
32
34
|
case 3:
|
|
33
35
|
_context.next = 5;
|
|
34
36
|
return (0, _core.parse)(tileContent.gltfArrayBuffer, _gltf.GLTFLoader, {
|
|
@@ -46,11 +48,14 @@ var analyzeTileContent = function () {
|
|
|
46
48
|
_context.next = 9;
|
|
47
49
|
break;
|
|
48
50
|
}
|
|
49
|
-
return _context.abrupt("return",
|
|
51
|
+
return _context.abrupt("return", defaultResult);
|
|
50
52
|
case 9:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return _context.abrupt("return",
|
|
53
|
+
meshTopologyTypes = getMeshTypesFromGltf(gltf);
|
|
54
|
+
metadataClasses = getMetadataClassesFromGltf(gltf);
|
|
55
|
+
return _context.abrupt("return", {
|
|
56
|
+
meshTopologyTypes: meshTopologyTypes,
|
|
57
|
+
metadataClasses: metadataClasses
|
|
58
|
+
});
|
|
54
59
|
case 12:
|
|
55
60
|
case "end":
|
|
56
61
|
return _context.stop();
|
|
@@ -93,6 +98,18 @@ var getMeshTypesFromGltf = function getMeshTypesFromGltf(gltfJson) {
|
|
|
93
98
|
}
|
|
94
99
|
return result;
|
|
95
100
|
};
|
|
101
|
+
var getMetadataClassesFromGltf = function getMetadataClassesFromGltf(gltfJson) {
|
|
102
|
+
var _gltfJson$extensions, _gltfJson$extensions$, _gltfJson$extensions$2;
|
|
103
|
+
var result = new Set();
|
|
104
|
+
var classes = (_gltfJson$extensions = gltfJson.extensions) === null || _gltfJson$extensions === void 0 ? void 0 : (_gltfJson$extensions$ = _gltfJson$extensions[_constants.EXT_FEATURE_METADATA]) === null || _gltfJson$extensions$ === void 0 ? void 0 : (_gltfJson$extensions$2 = _gltfJson$extensions$.schema) === null || _gltfJson$extensions$2 === void 0 ? void 0 : _gltfJson$extensions$2.classes;
|
|
105
|
+
if (classes) {
|
|
106
|
+
for (var _i = 0, _Object$keys = Object.keys(classes); _i < _Object$keys.length; _i++) {
|
|
107
|
+
var classKey = _Object$keys[_i];
|
|
108
|
+
result.add(classKey);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return result;
|
|
112
|
+
};
|
|
96
113
|
var mergePreprocessData = function mergePreprocessData(object1, object2) {
|
|
97
114
|
var _iterator3 = _createForOfIteratorHelper(object2.meshTopologyTypes),
|
|
98
115
|
_step3;
|
|
@@ -106,6 +123,18 @@ var mergePreprocessData = function mergePreprocessData(object1, object2) {
|
|
|
106
123
|
} finally {
|
|
107
124
|
_iterator3.f();
|
|
108
125
|
}
|
|
126
|
+
var _iterator4 = _createForOfIteratorHelper(object2.metadataClasses),
|
|
127
|
+
_step4;
|
|
128
|
+
try {
|
|
129
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
130
|
+
var metadataClass = _step4.value;
|
|
131
|
+
object1.metadataClasses.add(metadataClass);
|
|
132
|
+
}
|
|
133
|
+
} catch (err) {
|
|
134
|
+
_iterator4.e(err);
|
|
135
|
+
} finally {
|
|
136
|
+
_iterator4.f();
|
|
137
|
+
}
|
|
109
138
|
};
|
|
110
139
|
exports.mergePreprocessData = mergePreprocessData;
|
|
111
140
|
//# sourceMappingURL=preprocess-3d-tiles.js.map
|
|
@@ -1 +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","tileContent","result","gltfData","gltf","meshTypes","wrap","_callee$","_context","prev","meshTopologyTypes","Set","gltfArrayBuffer","abrupt","parse","GLTFLoader","normalize","loadBuffers","loadImages","decompressMeshes","sent","json","getMeshTypesFromGltf","stop","_x","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} 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 tileContent - 3DTiles tile content ArrayBuffer\n * @returns\n */\nexport const analyzeTileContent = async (\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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"}
|
|
1
|
+
{"version":3,"file":"preprocess-3d-tiles.js","names":["_types","require","_gltf","_core","_constants","_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","tileContent","defaultResult","gltfData","gltf","meshTopologyTypes","metadataClasses","wrap","_callee$","_context","prev","Set","gltfArrayBuffer","abrupt","parse","GLTFLoader","normalize","loadBuffers","loadImages","decompressMeshes","sent","json","getMeshTypesFromGltf","getMetadataClassesFromGltf","stop","_x","apply","arguments","gltfJson","result","_iterator","meshes","_step","mesh","_iterator2","primitives","_step2","primitive","mode","add","_gltfJson$extensions","_gltfJson$extensions$","_gltfJson$extensions$2","classes","extensions","EXT_FEATURE_METADATA","schema","_i","_Object$keys","keys","classKey","mergePreprocessData","object1","object2","_iterator3","_step3","type","_iterator4","_step4","metadataClass"],"sources":["../../../../src/i3s-converter/helpers/preprocess-3d-tiles.ts"],"sourcesContent":["import {Tiles3DTileContent} from '@loaders.gl/3d-tiles';\nimport {GLTFPrimitiveModeString, PreprocessData} from '../types';\nimport {GLTF, GLTFLoader, GLTF_EXT_feature_metadata_GLTF} from '@loaders.gl/gltf';\nimport {parse} from '@loaders.gl/core';\nimport {EXT_FEATURE_METADATA} from '../../constants';\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 tileContent - 3DTiles tile content ArrayBuffer\n * @returns\n */\nexport const analyzeTileContent = async (\n tileContent: Tiles3DTileContent | null\n): Promise<PreprocessData> => {\n const defaultResult = {\n meshTopologyTypes: new Set<GLTFPrimitiveModeString>(),\n metadataClasses: new Set<string>()\n };\n if (!tileContent?.gltfArrayBuffer) {\n return defaultResult;\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 defaultResult;\n }\n const meshTopologyTypes = getMeshTypesFromGltf(gltf);\n const metadataClasses = getMetadataClassesFromGltf(gltf);\n return {\n meshTopologyTypes,\n metadataClasses\n };\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 * Get feature metadata classes from glTF\n * @param gltfJson - JSON part of GLB content\n * @returns array of classes\n */\nconst getMetadataClassesFromGltf = (gltfJson: GLTF): Set<string> => {\n const result: Set<string> = new Set();\n\n const classes = (gltfJson.extensions?.[EXT_FEATURE_METADATA] as GLTF_EXT_feature_metadata_GLTF)\n ?.schema?.classes;\n\n if (classes) {\n for (const classKey of Object.keys(classes)) {\n result.add(classKey);\n }\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 // Merge feature metadata classes\n for (const metadataClass of object2.metadataClasses) {\n object1.metadataClasses.add(metadataClass);\n }\n};\n"],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
53
53
|
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; }
|
|
54
54
|
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; }
|
|
55
55
|
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; }
|
|
56
|
-
var ION_DEFAULT_TOKEN = (
|
|
56
|
+
var ION_DEFAULT_TOKEN = (_process$env = _process.default.env) === null || _process$env === void 0 ? void 0 : _process$env.IonToken;
|
|
57
57
|
var HARDCODED_NODES_PER_PAGE = 64;
|
|
58
58
|
var _3D_TILES = '3DTILES';
|
|
59
59
|
var _3D_OBJECT_LAYER_TYPE = '3DObject';
|
|
@@ -101,7 +101,8 @@ var I3SConverter = function () {
|
|
|
101
101
|
(0, _defineProperty2.default)(this, "writeQueue", new _writeQueue.default());
|
|
102
102
|
(0, _defineProperty2.default)(this, "compressList", null);
|
|
103
103
|
(0, _defineProperty2.default)(this, "preprocessData", {
|
|
104
|
-
meshTopologyTypes: new Set()
|
|
104
|
+
meshTopologyTypes: new Set(),
|
|
105
|
+
metadataClasses: new Set()
|
|
105
106
|
});
|
|
106
107
|
this.nodePages = new _nodePages.default(_fileUtils.writeFile, HARDCODED_NODES_PER_PAGE, this);
|
|
107
108
|
this.options = {};
|
|
@@ -127,7 +128,7 @@ var I3SConverter = function () {
|
|
|
127
128
|
key: "convert",
|
|
128
129
|
value: function () {
|
|
129
130
|
var _convert = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
|
|
130
|
-
var tilesetName, slpk, egmFilePath, inputUrl, validate, outputPath, _options$draco, draco, sevenZipExe, maxDepth, token, generateTextures, generateBoundingVolumes, _options$instantNodeW, instantNodeWriting, _options$mergeMateria, mergeMaterials, preloadOptions, tilesetUrl, preprocessResult, workerFarm;
|
|
131
|
+
var tilesetName, slpk, egmFilePath, inputUrl, validate, outputPath, _options$draco, draco, sevenZipExe, maxDepth, token, generateTextures, generateBoundingVolumes, _options$instantNodeW, instantNodeWriting, _options$mergeMateria, mergeMaterials, inquirer, metadataClass, preloadOptions, tilesetUrl, preprocessResult, workerFarm;
|
|
131
132
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
132
133
|
while (1) switch (_context.prev = _context.next) {
|
|
133
134
|
case 0:
|
|
@@ -139,7 +140,7 @@ var I3SConverter = function () {
|
|
|
139
140
|
return _context.abrupt("return", _constants.BROWSER_ERROR_MESSAGE);
|
|
140
141
|
case 3:
|
|
141
142
|
this.conversionStartTime = _process.default.hrtime();
|
|
142
|
-
tilesetName = options.tilesetName, slpk = options.slpk, egmFilePath = options.egmFilePath, inputUrl = options.inputUrl, validate = options.validate, outputPath = options.outputPath, _options$draco = options.draco, draco = _options$draco === void 0 ? true : _options$draco, sevenZipExe = options.sevenZipExe, maxDepth = options.maxDepth, token = options.token, generateTextures = options.generateTextures, generateBoundingVolumes = options.generateBoundingVolumes, _options$instantNodeW = options.instantNodeWriting, instantNodeWriting = _options$instantNodeW === void 0 ? false : _options$instantNodeW, _options$mergeMateria = options.mergeMaterials, mergeMaterials = _options$mergeMateria === void 0 ? true : _options$mergeMateria;
|
|
143
|
+
tilesetName = options.tilesetName, slpk = options.slpk, egmFilePath = options.egmFilePath, inputUrl = options.inputUrl, validate = options.validate, outputPath = options.outputPath, _options$draco = options.draco, draco = _options$draco === void 0 ? true : _options$draco, sevenZipExe = options.sevenZipExe, maxDepth = options.maxDepth, token = options.token, generateTextures = options.generateTextures, generateBoundingVolumes = options.generateBoundingVolumes, _options$instantNodeW = options.instantNodeWriting, instantNodeWriting = _options$instantNodeW === void 0 ? false : _options$instantNodeW, _options$mergeMateria = options.mergeMaterials, mergeMaterials = _options$mergeMateria === void 0 ? true : _options$mergeMateria, inquirer = options.inquirer, metadataClass = options.metadataClass;
|
|
143
144
|
this.options = {
|
|
144
145
|
maxDepth: maxDepth,
|
|
145
146
|
slpk: slpk,
|
|
@@ -149,7 +150,9 @@ var I3SConverter = function () {
|
|
|
149
150
|
token: token,
|
|
150
151
|
inputUrl: inputUrl,
|
|
151
152
|
instantNodeWriting: instantNodeWriting,
|
|
152
|
-
mergeMaterials: mergeMaterials
|
|
153
|
+
mergeMaterials: mergeMaterials,
|
|
154
|
+
inquirer: inquirer,
|
|
155
|
+
metadataClass: metadataClass
|
|
153
156
|
};
|
|
154
157
|
this.compressList = this.options.instantNodeWriting && [] || null;
|
|
155
158
|
this.validate = Boolean(validate);
|
|
@@ -234,7 +237,7 @@ var I3SConverter = function () {
|
|
|
234
237
|
key: "preprocessConversion",
|
|
235
238
|
value: function () {
|
|
236
239
|
var _preprocessConversion = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {
|
|
237
|
-
var sourceRootTile, meshTopologyTypes;
|
|
240
|
+
var sourceRootTile, _this$preprocessData, meshTopologyTypes, metadataClasses, _this$options$metadat, result;
|
|
238
241
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
239
242
|
while (1) switch (_context2.prev = _context2.next) {
|
|
240
243
|
case 0:
|
|
@@ -243,21 +246,60 @@ var I3SConverter = function () {
|
|
|
243
246
|
_context2.next = 4;
|
|
244
247
|
return (0, _tilesetTraversal.traverseDatasetWith)(sourceRootTile, null, this.analyzeTile.bind(this), undefined, this.options.maxDepth);
|
|
245
248
|
case 4:
|
|
246
|
-
|
|
249
|
+
_this$preprocessData = this.preprocessData, meshTopologyTypes = _this$preprocessData.meshTopologyTypes, metadataClasses = _this$preprocessData.metadataClasses;
|
|
247
250
|
console.log("------------------------------------------------");
|
|
248
251
|
console.log("Preprocess results:");
|
|
249
252
|
console.log("glTF mesh topology types: ".concat(Array.from(meshTopologyTypes).join(', ')));
|
|
253
|
+
if (metadataClasses.size) {
|
|
254
|
+
console.log("Feature metadata classes have been found: ".concat(Array.from(metadataClasses).join(', ')));
|
|
255
|
+
} else {
|
|
256
|
+
console.log('Feature metadata classes have not been found');
|
|
257
|
+
}
|
|
250
258
|
console.log("------------------------------------------------");
|
|
251
|
-
if (!(!meshTopologyTypes.has(_types.
|
|
252
|
-
_context2.next =
|
|
259
|
+
if (!(!meshTopologyTypes.has(_types.GLTFPrimitiveModeString.TRIANGLES) && !meshTopologyTypes.has(_types.GLTFPrimitiveModeString.TRIANGLE_STRIP))) {
|
|
260
|
+
_context2.next = 14;
|
|
253
261
|
break;
|
|
254
262
|
}
|
|
255
263
|
console.log('The tileset is of unsupported mesh topology types. The conversion will be interrupted.');
|
|
256
264
|
console.log("------------------------------------------------");
|
|
257
265
|
return _context2.abrupt("return", false);
|
|
258
|
-
case 13:
|
|
259
|
-
return _context2.abrupt("return", true);
|
|
260
266
|
case 14:
|
|
267
|
+
if (!(metadataClasses.size > 1)) {
|
|
268
|
+
_context2.next = 30;
|
|
269
|
+
break;
|
|
270
|
+
}
|
|
271
|
+
if (!((_this$options$metadat = this.options.metadataClass) !== null && _this$options$metadat !== void 0 && _this$options$metadat.length)) {
|
|
272
|
+
_context2.next = 19;
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
console.log("".concat(this.options.metadataClass, " has been selected"));
|
|
276
|
+
_context2.next = 30;
|
|
277
|
+
break;
|
|
278
|
+
case 19:
|
|
279
|
+
if (!this.options.inquirer) {
|
|
280
|
+
_context2.next = 27;
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
_context2.next = 22;
|
|
284
|
+
return this.options.inquirer.prompt([{
|
|
285
|
+
name: 'metadataClass',
|
|
286
|
+
type: 'list',
|
|
287
|
+
message: 'Select feature metadata data class to convert...',
|
|
288
|
+
choices: Array.from(metadataClasses)
|
|
289
|
+
}]);
|
|
290
|
+
case 22:
|
|
291
|
+
result = _context2.sent;
|
|
292
|
+
this.options.metadataClass = result.metadataClass;
|
|
293
|
+
console.log("".concat(result.metadataClass, " has been selected"));
|
|
294
|
+
_context2.next = 30;
|
|
295
|
+
break;
|
|
296
|
+
case 27:
|
|
297
|
+
console.log("A feature metadata class has not been selected. Start the converter with option \"--metadata-class\". For example, \"npx tile-converter ... --metadata-class ".concat(Array.from(metadataClasses)[0], "\""));
|
|
298
|
+
console.log("------------------------------------------------");
|
|
299
|
+
return _context2.abrupt("return", false);
|
|
300
|
+
case 30:
|
|
301
|
+
return _context2.abrupt("return", true);
|
|
302
|
+
case 31:
|
|
261
303
|
case "end":
|
|
262
304
|
return _context2.stop();
|
|
263
305
|
}
|
|
@@ -719,7 +761,7 @@ var I3SConverter = function () {
|
|
|
719
761
|
case 13:
|
|
720
762
|
sourceBoundingVolume = (0, _tiles.createBoundingVolume)(sourceTile.boundingVolume, transformationMatrix, null);
|
|
721
763
|
boundingVolumes = (0, _coordinateConverter.createBoundingVolumes)(sourceBoundingVolume, this.geoidHeightModel);
|
|
722
|
-
propertyTable = (0, _geometryConverter.getPropertyTable)(tileContent);
|
|
764
|
+
propertyTable = (0, _geometryConverter.getPropertyTable)(tileContent, this.options.metadataClass);
|
|
723
765
|
if (propertyTable && !((_this$layers = this.layers0) !== null && _this$layers !== void 0 && (_this$layers$attribut = _this$layers.attributeStorageInfo) !== null && _this$layers$attribut !== void 0 && _this$layers$attribut.length)) {
|
|
724
766
|
this._convertPropertyTableToNodeAttributes(propertyTable);
|
|
725
767
|
}
|
|
@@ -854,7 +896,7 @@ var I3SConverter = function () {
|
|
|
854
896
|
return _context10.stop();
|
|
855
897
|
}
|
|
856
898
|
}, _callee10);
|
|
857
|
-
})), propertyTable, this.featuresHashArray, (_this$layers2 = this.layers0) === null || _this$layers2 === void 0 ? void 0 : _this$layers2.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.options.mergeMaterials, this.geoidHeightModel, this.loadOptions.modules);
|
|
899
|
+
})), propertyTable, this.featuresHashArray, (_this$layers2 = this.layers0) === null || _this$layers2 === void 0 ? void 0 : _this$layers2.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.options.mergeMaterials, this.geoidHeightModel, this.loadOptions.modules, this.options.metadataClass);
|
|
858
900
|
case 5:
|
|
859
901
|
resourcesData = _context11.sent;
|
|
860
902
|
return _context11.abrupt("return", resourcesData);
|