@loaders.gl/tile-converter 3.3.0-alpha.8 → 3.3.1

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.
Files changed (132) hide show
  1. package/dist/3d-tiles-attributes-worker.js +2 -2
  2. package/dist/3d-tiles-attributes-worker.js.map +3 -3
  3. package/dist/converter-cli.js +14 -2
  4. package/dist/converter.min.js +22 -22
  5. package/dist/deps-installer/deps-installer.d.ts.map +1 -1
  6. package/dist/deps-installer/deps-installer.js +8 -0
  7. package/dist/dist.min.js +1167 -848
  8. package/dist/es5/3d-tiles-attributes-worker.js +1 -1
  9. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -1
  10. package/dist/es5/converter-cli.js +14 -2
  11. package/dist/es5/converter-cli.js.map +1 -1
  12. package/dist/es5/deps-installer/deps-installer.js +13 -2
  13. package/dist/es5/deps-installer/deps-installer.js.map +1 -1
  14. package/dist/es5/i3s-attributes-worker.js +1 -1
  15. package/dist/es5/i3s-attributes-worker.js.map +1 -1
  16. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  17. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +16 -7
  18. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  19. package/dist/es5/i3s-converter/helpers/geometry-converter.js +363 -113
  20. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  21. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +6 -11
  22. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  23. package/dist/es5/i3s-converter/helpers/node-index-document.js +517 -0
  24. package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -0
  25. package/dist/es5/i3s-converter/helpers/node-pages.js +455 -173
  26. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
  27. package/dist/es5/i3s-converter/i3s-converter.js +549 -618
  28. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  29. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js +107 -0
  30. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  31. package/dist/es5/i3s-converter/json-templates/layers.js +2 -93
  32. package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
  33. package/dist/es5/i3s-converter/json-templates/shared-resources.js +3 -3
  34. package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -1
  35. package/dist/es5/i3s-converter/types.js.map +1 -1
  36. package/dist/es5/lib/utils/file-utils.js +93 -9
  37. package/dist/es5/lib/utils/file-utils.js.map +1 -1
  38. package/dist/es5/lib/utils/write-queue.js +38 -25
  39. package/dist/es5/lib/utils/write-queue.js.map +1 -1
  40. package/dist/es5/pgm-loader.js +1 -1
  41. package/dist/es5/pgm-loader.js.map +1 -1
  42. package/dist/es5/workers/i3s-attributes-worker.js +1 -1
  43. package/dist/es5/workers/i3s-attributes-worker.js.map +1 -1
  44. package/dist/esm/3d-tiles-attributes-worker.js +1 -1
  45. package/dist/esm/3d-tiles-attributes-worker.js.map +1 -1
  46. package/dist/esm/converter-cli.js +14 -2
  47. package/dist/esm/converter-cli.js.map +1 -1
  48. package/dist/esm/deps-installer/deps-installer.js +9 -1
  49. package/dist/esm/deps-installer/deps-installer.js.map +1 -1
  50. package/dist/esm/i3s-attributes-worker.js +1 -1
  51. package/dist/esm/i3s-attributes-worker.js.map +1 -1
  52. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  53. package/dist/esm/i3s-converter/helpers/geometry-attributes.js +16 -7
  54. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  55. package/dist/esm/i3s-converter/helpers/geometry-converter.js +150 -40
  56. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  57. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +6 -9
  58. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  59. package/dist/esm/i3s-converter/helpers/node-index-document.js +202 -0
  60. package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -0
  61. package/dist/esm/i3s-converter/helpers/node-pages.js +162 -76
  62. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
  63. package/dist/esm/i3s-converter/i3s-converter.js +115 -220
  64. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  65. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js +89 -0
  66. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  67. package/dist/esm/i3s-converter/json-templates/layers.js +2 -85
  68. package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -1
  69. package/dist/esm/i3s-converter/json-templates/shared-resources.js +3 -3
  70. package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -1
  71. package/dist/esm/i3s-converter/types.js.map +1 -1
  72. package/dist/esm/lib/utils/file-utils.js +44 -3
  73. package/dist/esm/lib/utils/file-utils.js.map +1 -1
  74. package/dist/esm/lib/utils/write-queue.js +19 -10
  75. package/dist/esm/lib/utils/write-queue.js.map +1 -1
  76. package/dist/esm/pgm-loader.js +1 -1
  77. package/dist/esm/pgm-loader.js.map +1 -1
  78. package/dist/esm/workers/i3s-attributes-worker.js +1 -1
  79. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -1
  80. package/dist/i3s-attributes-worker.js +2 -2
  81. package/dist/i3s-attributes-worker.js.map +2 -2
  82. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +3 -3
  83. package/dist/i3s-converter/helpers/batch-ids-extensions.js +3 -3
  84. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -1
  85. package/dist/i3s-converter/helpers/geometry-attributes.js +16 -10
  86. package/dist/i3s-converter/helpers/geometry-converter.d.ts +8 -4
  87. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  88. package/dist/i3s-converter/helpers/geometry-converter.js +200 -44
  89. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -1
  90. package/dist/i3s-converter/helpers/gltf-attributes.js +2 -3
  91. package/dist/i3s-converter/helpers/node-index-document.d.ts +95 -0
  92. package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -0
  93. package/dist/i3s-converter/helpers/node-index-document.js +250 -0
  94. package/dist/i3s-converter/helpers/node-pages.d.ts +78 -43
  95. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
  96. package/dist/i3s-converter/helpers/node-pages.js +194 -93
  97. package/dist/i3s-converter/i3s-converter.d.ts +33 -58
  98. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  99. package/dist/i3s-converter/i3s-converter.js +122 -233
  100. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts +7 -0
  101. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts.map +1 -0
  102. package/dist/i3s-converter/json-templates/geometry-definitions.js +87 -0
  103. package/dist/i3s-converter/json-templates/layers.d.ts +1 -30
  104. package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -1
  105. package/dist/i3s-converter/json-templates/layers.js +2 -86
  106. package/dist/i3s-converter/json-templates/shared-resources.js +3 -3
  107. package/dist/i3s-converter/types.d.ts +28 -2
  108. package/dist/i3s-converter/types.d.ts.map +1 -1
  109. package/dist/lib/utils/file-utils.d.ts +17 -1
  110. package/dist/lib/utils/file-utils.d.ts.map +1 -1
  111. package/dist/lib/utils/file-utils.js +64 -7
  112. package/dist/lib/utils/write-queue.d.ts +18 -2
  113. package/dist/lib/utils/write-queue.d.ts.map +1 -1
  114. package/dist/lib/utils/write-queue.js +18 -12
  115. package/dist/workers/i3s-attributes-worker.js +1 -1
  116. package/package.json +25 -20
  117. package/src/converter-cli.ts +22 -2
  118. package/src/deps-installer/deps-installer.ts +9 -0
  119. package/src/i3s-converter/helpers/batch-ids-extensions.ts +3 -3
  120. package/src/i3s-converter/helpers/geometry-attributes.ts +16 -11
  121. package/src/i3s-converter/helpers/geometry-converter.ts +217 -48
  122. package/src/i3s-converter/helpers/gltf-attributes.ts +2 -3
  123. package/src/i3s-converter/helpers/node-index-document.ts +315 -0
  124. package/src/i3s-converter/helpers/node-pages.ts +215 -110
  125. package/src/i3s-converter/i3s-converter.ts +170 -312
  126. package/src/i3s-converter/json-templates/geometry-definitions.ts +83 -0
  127. package/src/i3s-converter/json-templates/layers.ts +2 -91
  128. package/src/i3s-converter/json-templates/shared-resources.ts +3 -3
  129. package/src/i3s-converter/types.ts +29 -2
  130. package/src/lib/utils/file-utils.ts +62 -7
  131. package/src/lib/utils/write-queue.ts +36 -15
  132. package/src/workers/i3s-attributes-worker.ts +2 -1
@@ -14,21 +14,26 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
14
14
  var _path = require("path");
15
15
  var _jsonMapTransform = _interopRequireDefault(require("json-map-transform"));
16
16
  var _metadata = require("../json-templates/metadata");
17
+ var _fileUtils = require("../../lib/utils/file-utils");
17
18
  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; } } }; }
18
19
  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); }
19
20
  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; }
20
21
  var NodePages = function () {
21
- function NodePages(writeFileFunc, nodesPerPage) {
22
+ function NodePages(writeFileFunc, nodesPerPage, converter) {
22
23
  (0, _classCallCheck2.default)(this, NodePages);
23
24
  (0, _defineProperty2.default)(this, "nodesPerPage", void 0);
24
25
  (0, _defineProperty2.default)(this, "nodesCounter", void 0);
25
26
  (0, _defineProperty2.default)(this, "writeFile", void 0);
27
+ (0, _defineProperty2.default)(this, "converter", void 0);
26
28
  (0, _defineProperty2.default)(this, "nodePages", void 0);
29
+ (0, _defineProperty2.default)(this, "length", 0);
27
30
  this.nodesPerPage = nodesPerPage;
28
31
  this.nodesCounter = 0;
29
32
  this.nodePages = [{}];
30
33
  this.nodePages[0].nodes = [];
31
34
  this.writeFile = writeFileFunc;
35
+ this.converter = converter;
36
+ this.length = 0;
32
37
  }
33
38
 
34
39
  (0, _createClass2.default)(NodePages, [{
@@ -39,237 +44,514 @@ var NodePages = function () {
39
44
  }
40
45
 
41
46
  }, {
42
- key: "getNodeById",
43
- value:
44
- function getNodeById(id) {
45
- var pageIndex = Math.floor(id / this.nodesPerPage);
46
- var nodeIndex = id % this.nodesPerPage;
47
- return this.nodePages[pageIndex].nodes[nodeIndex];
48
- }
49
-
50
- }, {
51
- key: "updateAll",
47
+ key: "getNodePageFileName",
52
48
  value:
53
- function updateAll(id, data) {
54
- var node = this.getNodeById(id);
55
- Object.assign(node, data, {
56
- index: node.index
57
- });
58
- }
59
-
60
- }, {
61
- key: "updateMaterialByNodeId",
62
- value:
63
- function updateMaterialByNodeId(id, materialId) {
64
- var node = this.getNodeById(id);
65
- if (!node.mesh) {
66
- return;
49
+ function getNodePageFileName(nodePageId) {
50
+ var filePath;
51
+ var fileName;
52
+ if (this.converter.options.slpk) {
53
+ filePath = (0, _path.join)(this.converter.layers0Path, 'nodepages');
54
+ fileName = "".concat(nodePageId.toString(), ".json");
55
+ } else {
56
+ filePath = (0, _path.join)(this.converter.layers0Path, 'nodepages', nodePageId.toString());
57
+ fileName = 'index.json';
67
58
  }
68
- node.mesh.material = {
69
- definition: materialId,
70
- resource: node.index
59
+ return {
60
+ filePath: filePath,
61
+ fileName: fileName
71
62
  };
72
63
  }
73
64
 
74
65
  }, {
75
- key: "updateVertexCountByNodeId",
76
- value:
77
- function updateVertexCountByNodeId(id, vertexCount) {
78
- var node = this.getNodeById(id);
79
- if (!node.mesh) {
80
- return;
66
+ key: "loadNodePage",
67
+ value: function () {
68
+ var _loadNodePage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(nodePageId) {
69
+ var _this$getNodePageFile, filePath, fileName, fullName;
70
+ return _regenerator.default.wrap(function _callee$(_context) {
71
+ while (1) {
72
+ switch (_context.prev = _context.next) {
73
+ case 0:
74
+ _this$getNodePageFile = this.getNodePageFileName(nodePageId), filePath = _this$getNodePageFile.filePath, fileName = _this$getNodePageFile.fileName;
75
+ fullName = (0, _path.join)(filePath, fileName);
76
+ _context.next = 4;
77
+ return (0, _fileUtils.isFileExists)(fullName);
78
+ case 4:
79
+ if (!_context.sent) {
80
+ _context.next = 11;
81
+ break;
82
+ }
83
+ console.log("load ".concat(fullName, "."));
84
+ _context.next = 8;
85
+ return (0, _fileUtils.openJson)(filePath, fileName);
86
+ case 8:
87
+ return _context.abrupt("return", _context.sent);
88
+ case 11:
89
+ return _context.abrupt("return", {
90
+ nodes: []
91
+ });
92
+ case 12:
93
+ case "end":
94
+ return _context.stop();
95
+ }
96
+ }
97
+ }, _callee, this);
98
+ }));
99
+ function loadNodePage(_x) {
100
+ return _loadNodePage.apply(this, arguments);
81
101
  }
82
- node.mesh.geometry.vertexCount = vertexCount;
83
- }
84
-
102
+ return loadNodePage;
103
+ }()
85
104
  }, {
86
- key: "updateNodeAttributeByNodeId",
105
+ key: "getPageIndexByNodeId",
87
106
  value:
88
- function updateNodeAttributeByNodeId(id) {
89
- var node = this.getNodeById(id);
90
- if (!node.mesh || !node.index) {
91
- return;
92
- }
93
- node.mesh.attribute.resource = node.index;
107
+ function getPageIndexByNodeId(id) {
108
+ return Math.floor(id / this.nodesPerPage);
94
109
  }
95
110
 
96
111
  }, {
97
- key: "updateFeatureCountByNodeId",
98
- value:
99
- function updateFeatureCountByNodeId(id, featureCount) {
100
- var node = this.getNodeById(id);
101
- if (!node.mesh) {
102
- return;
112
+ key: "getPageByNodeId",
113
+ value: function () {
114
+ var _getPageByNodeId = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(id) {
115
+ var pageIndex;
116
+ return _regenerator.default.wrap(function _callee2$(_context2) {
117
+ while (1) {
118
+ switch (_context2.prev = _context2.next) {
119
+ case 0:
120
+ pageIndex = this.getPageIndexByNodeId(id);
121
+ if (!this.converter.options.instantNodeWriting) {
122
+ _context2.next = 5;
123
+ break;
124
+ }
125
+ _context2.next = 4;
126
+ return this.loadNodePage(pageIndex);
127
+ case 4:
128
+ return _context2.abrupt("return", _context2.sent);
129
+ case 5:
130
+ return _context2.abrupt("return", this.nodePages[pageIndex]);
131
+ case 6:
132
+ case "end":
133
+ return _context2.stop();
134
+ }
135
+ }
136
+ }, _callee2, this);
137
+ }));
138
+ function getPageByNodeId(_x2) {
139
+ return _getPageByNodeId.apply(this, arguments);
103
140
  }
104
- node.mesh.geometry.featureCount = featureCount;
105
- }
106
-
141
+ return getPageByNodeId;
142
+ }()
107
143
  }, {
108
- key: "updateTexelCountHintByNodeId",
109
- value:
110
- function updateTexelCountHintByNodeId(id, texelCountHint) {
111
- var node = this.getNodeById(id);
112
- if (!node.mesh || !node.mesh.material) {
113
- return;
144
+ key: "getNodeById",
145
+ value: function () {
146
+ var _getNodeById = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(id, nodePage) {
147
+ var nodeIndex;
148
+ return _regenerator.default.wrap(function _callee3$(_context3) {
149
+ while (1) {
150
+ switch (_context3.prev = _context3.next) {
151
+ case 0:
152
+ nodeIndex = id % this.nodesPerPage;
153
+ _context3.t0 = nodePage;
154
+ if (_context3.t0) {
155
+ _context3.next = 6;
156
+ break;
157
+ }
158
+ _context3.next = 5;
159
+ return this.getPageByNodeId(id);
160
+ case 5:
161
+ _context3.t0 = _context3.sent;
162
+ case 6:
163
+ nodePage = _context3.t0;
164
+ return _context3.abrupt("return", nodePage.nodes[nodeIndex]);
165
+ case 8:
166
+ case "end":
167
+ return _context3.stop();
168
+ }
169
+ }
170
+ }, _callee3, this);
171
+ }));
172
+ function getNodeById(_x3, _x4) {
173
+ return _getNodeById.apply(this, arguments);
114
174
  }
115
- node.mesh.material.texelCountHint = texelCountHint;
116
- }
117
-
175
+ return getNodeById;
176
+ }()
118
177
  }, {
119
178
  key: "addChildRelation",
120
- value:
121
- function addChildRelation(parentId, childId) {
122
- var _parentNode$children;
123
- if (parentId === null || parentId === undefined) {
124
- return;
179
+ value: function () {
180
+ var _addChildRelation = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(parentId, childId) {
181
+ var _parentNode$children;
182
+ var parentNode;
183
+ return _regenerator.default.wrap(function _callee4$(_context4) {
184
+ while (1) {
185
+ switch (_context4.prev = _context4.next) {
186
+ case 0:
187
+ if (!(parentId === null || parentId === undefined)) {
188
+ _context4.next = 2;
189
+ break;
190
+ }
191
+ return _context4.abrupt("return");
192
+ case 2:
193
+ _context4.next = 4;
194
+ return this.getNodeById(parentId);
195
+ case 4:
196
+ parentNode = _context4.sent;
197
+ (_parentNode$children = parentNode.children) === null || _parentNode$children === void 0 ? void 0 : _parentNode$children.push(childId);
198
+ _context4.next = 8;
199
+ return this.saveNode(parentNode);
200
+ case 8:
201
+ case "end":
202
+ return _context4.stop();
203
+ }
204
+ }
205
+ }, _callee4, this);
206
+ }));
207
+ function addChildRelation(_x5, _x6) {
208
+ return _addChildRelation.apply(this, arguments);
125
209
  }
126
- var parentNode = this.getNodeById(parentId);
127
- (_parentNode$children = parentNode.children) === null || _parentNode$children === void 0 ? void 0 : _parentNode$children.push(childId);
128
- }
129
-
210
+ return addChildRelation;
211
+ }()
130
212
  }, {
131
- key: "updateResourceInMesh",
132
- value:
133
- function updateResourceInMesh(node) {
134
- if (node.mesh && isFinite(node.index)) {
135
- node.mesh.geometry.resource = node.index;
213
+ key: "push",
214
+ value: function () {
215
+ var _push = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(node, parentId) {
216
+ var currentNodePage;
217
+ return _regenerator.default.wrap(function _callee5$(_context5) {
218
+ while (1) {
219
+ switch (_context5.prev = _context5.next) {
220
+ case 0:
221
+ node.index = this.nodesCounter++;
222
+ if (!this.converter.options.instantNodeWriting) {
223
+ currentNodePage = this.nodePages[this.nodePages.length - 1];
224
+ if (currentNodePage.nodes.length === this.nodesPerPage) {
225
+ currentNodePage = {
226
+ nodes: []
227
+ };
228
+ this.nodePages.push(currentNodePage);
229
+ }
230
+ currentNodePage.nodes.push(node);
231
+ }
232
+ _context5.next = 4;
233
+ return this.addChildRelation(parentId, node.index);
234
+ case 4:
235
+ NodePages.updateResourceInMesh(node);
236
+ _context5.next = 7;
237
+ return this.saveNode(node);
238
+ case 7:
239
+ return _context5.abrupt("return", node);
240
+ case 8:
241
+ case "end":
242
+ return _context5.stop();
243
+ }
244
+ }
245
+ }, _callee5, this);
246
+ }));
247
+ function push(_x7, _x8) {
248
+ return _push.apply(this, arguments);
136
249
  }
137
- }
138
-
250
+ return push;
251
+ }()
139
252
  }, {
140
- key: "push",
141
- value:
142
- function push(node, parentId) {
143
- var currentNodePage = this.nodePages[this.nodePages.length - 1];
144
- if (currentNodePage.nodes.length === this.nodesPerPage) {
145
- currentNodePage = {
146
- nodes: []
147
- };
148
- this.nodePages.push(currentNodePage);
253
+ key: "saveNode",
254
+ value: function () {
255
+ var _saveNode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(node) {
256
+ var _this = this;
257
+ var nodePageIndex, nodePage, _this$getNodePageFile2, filePath, fileName, nodeToUpdate, nodePageStr;
258
+ return _regenerator.default.wrap(function _callee6$(_context6) {
259
+ while (1) {
260
+ switch (_context6.prev = _context6.next) {
261
+ case 0:
262
+ if (this.converter.options.instantNodeWriting) {
263
+ _context6.next = 4;
264
+ break;
265
+ }
266
+ return _context6.abrupt("return");
267
+ case 4:
268
+ nodePageIndex = this.getPageIndexByNodeId(node.index);
269
+ _context6.next = 7;
270
+ return this.getPageByNodeId(node.index);
271
+ case 7:
272
+ nodePage = _context6.sent;
273
+ _this$getNodePageFile2 = this.getNodePageFileName(nodePageIndex), filePath = _this$getNodePageFile2.filePath, fileName = _this$getNodePageFile2.fileName;
274
+ _context6.next = 11;
275
+ return this.getNodeById(node.index, nodePage);
276
+ case 11:
277
+ nodeToUpdate = _context6.sent;
278
+ if (nodeToUpdate) {
279
+ NodePages.updateAll(nodeToUpdate, node);
280
+ } else {
281
+ nodePage.nodes.push(node);
282
+ }
283
+ nodePageStr = JSON.stringify(nodePage);
284
+ if (!this.converter.options.slpk) {
285
+ _context6.next = 19;
286
+ break;
287
+ }
288
+ _context6.next = 17;
289
+ return this.converter.writeQueue.enqueue({
290
+ archiveKey: "nodePages/".concat(nodePageIndex.toString(), ".json.gz"),
291
+ writePromise: function writePromise() {
292
+ return _this.writeFile(filePath, nodePageStr, fileName, true, _this.converter.compressList);
293
+ }
294
+ }, true);
295
+ case 17:
296
+ _context6.next = 21;
297
+ break;
298
+ case 19:
299
+ _context6.next = 21;
300
+ return this.converter.writeQueue.enqueue({
301
+ writePromise: function writePromise() {
302
+ return _this.writeFile(filePath, nodePageStr);
303
+ }
304
+ }, true);
305
+ case 21:
306
+ case "end":
307
+ return _context6.stop();
308
+ }
309
+ }
310
+ }, _callee6, this);
311
+ }));
312
+ function saveNode(_x9) {
313
+ return _saveNode.apply(this, arguments);
149
314
  }
150
- node.index = this.nodesCounter++;
151
- currentNodePage.nodes.push(node);
152
- this.addChildRelation(parentId, node.index);
153
- this.updateResourceInMesh(node);
154
- return node.index;
155
- }
156
-
315
+ return saveNode;
316
+ }()
317
+ }, {
318
+ key: "saveMetadata",
319
+ value: function () {
320
+ var _saveMetadata = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7() {
321
+ var _this2 = this;
322
+ var metadata, compress;
323
+ return _regenerator.default.wrap(function _callee7$(_context7) {
324
+ while (1) {
325
+ switch (_context7.prev = _context7.next) {
326
+ case 0:
327
+ metadata = (0, _jsonMapTransform.default)({
328
+ nodeCount: this.nodesCounter
329
+ }, (0, _metadata.METADATA)());
330
+ compress = false;
331
+ _context7.next = 4;
332
+ return this.converter.writeQueue.enqueue({
333
+ archiveKey: 'metadata.json',
334
+ writePromise: function writePromise() {
335
+ return _this2.writeFile(_this2.converter.layers0Path, JSON.stringify(metadata), 'metadata.json', compress);
336
+ }
337
+ });
338
+ case 4:
339
+ case "end":
340
+ return _context7.stop();
341
+ }
342
+ }
343
+ }, _callee7, this);
344
+ }));
345
+ function saveMetadata() {
346
+ return _saveMetadata.apply(this, arguments);
347
+ }
348
+ return saveMetadata;
349
+ }()
157
350
  }, {
158
351
  key: "save",
159
352
  value: function () {
160
- var _save = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(layers0Path, writeQueue) {
161
- var slpk,
162
- _iterator,
163
- _step,
164
- _step$value,
165
- index,
166
- nodePage,
167
- nodePageStr,
168
- slpkPath,
169
- metadata,
170
- compress,
171
- _iterator2,
172
- _step2,
173
- _step2$value,
174
- _index,
175
- _nodePage,
176
- _nodePageStr,
177
- nodePagePath,
178
- _args = arguments;
179
- return _regenerator.default.wrap(function _callee$(_context) {
353
+ var _save = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee8() {
354
+ var _this3 = this;
355
+ var _iterator, _step, _loop, _iterator2, _step2, _loop2;
356
+ return _regenerator.default.wrap(function _callee8$(_context10) {
180
357
  while (1) {
181
- switch (_context.prev = _context.next) {
358
+ switch (_context10.prev = _context10.next) {
182
359
  case 0:
183
- slpk = _args.length > 2 && _args[2] !== undefined ? _args[2] : false;
184
- if (!slpk) {
185
- _context.next = 27;
360
+ if (!this.converter.options.instantNodeWriting) {
361
+ _context10.next = 4;
362
+ break;
363
+ }
364
+ _context10.next = 3;
365
+ return this.saveMetadata();
366
+ case 3:
367
+ return _context10.abrupt("return");
368
+ case 4:
369
+ if (!this.converter.options.slpk) {
370
+ _context10.next = 25;
186
371
  break;
187
372
  }
188
373
  _iterator = _createForOfIteratorHelper(this.nodePages.entries());
189
- _context.prev = 3;
374
+ _context10.prev = 6;
375
+ _loop = _regenerator.default.mark(function _loop() {
376
+ var _step$value, index, nodePage, nodePageStr, slpkPath;
377
+ return _regenerator.default.wrap(function _loop$(_context8) {
378
+ while (1) {
379
+ switch (_context8.prev = _context8.next) {
380
+ case 0:
381
+ _step$value = (0, _slicedToArray2.default)(_step.value, 2), index = _step$value[0], nodePage = _step$value[1];
382
+ nodePageStr = JSON.stringify(nodePage);
383
+ slpkPath = (0, _path.join)(_this3.converter.layers0Path, 'nodepages');
384
+ _context8.next = 5;
385
+ return _this3.converter.writeQueue.enqueue({
386
+ archiveKey: "nodePages/".concat(index.toString(), ".json.gz"),
387
+ writePromise: function writePromise() {
388
+ return _this3.writeFile(slpkPath, nodePageStr, "".concat(index.toString(), ".json"));
389
+ }
390
+ });
391
+ case 5:
392
+ case "end":
393
+ return _context8.stop();
394
+ }
395
+ }
396
+ }, _loop);
397
+ });
190
398
  _iterator.s();
191
- case 5:
399
+ case 9:
192
400
  if ((_step = _iterator.n()).done) {
193
- _context.next = 13;
401
+ _context10.next = 13;
194
402
  break;
195
403
  }
196
- _step$value = (0, _slicedToArray2.default)(_step.value, 2), index = _step$value[0], nodePage = _step$value[1];
197
- nodePageStr = JSON.stringify(nodePage);
198
- slpkPath = (0, _path.join)(layers0Path, 'nodepages');
199
- _context.next = 11;
200
- return writeQueue.enqueue({
201
- archiveKey: "nodePages/".concat(index.toString(), ".json.gz"),
202
- writePromise: this.writeFile(slpkPath, nodePageStr, "".concat(index.toString(), ".json"))
203
- });
404
+ return _context10.delegateYield(_loop(), "t0", 11);
204
405
  case 11:
205
- _context.next = 5;
406
+ _context10.next = 9;
206
407
  break;
207
408
  case 13:
208
- _context.next = 18;
409
+ _context10.next = 18;
209
410
  break;
210
411
  case 15:
211
- _context.prev = 15;
212
- _context.t0 = _context["catch"](3);
213
- _iterator.e(_context.t0);
412
+ _context10.prev = 15;
413
+ _context10.t1 = _context10["catch"](6);
414
+ _iterator.e(_context10.t1);
214
415
  case 18:
215
- _context.prev = 18;
416
+ _context10.prev = 18;
216
417
  _iterator.f();
217
- return _context.finish(18);
418
+ return _context10.finish(18);
218
419
  case 21:
219
- metadata = (0, _jsonMapTransform.default)({
220
- nodeCount: this.nodesCounter
221
- }, (0, _metadata.METADATA)());
222
- compress = false;
223
- _context.next = 25;
224
- return writeQueue.enqueue({
225
- archiveKey: 'metadata.json',
226
- writePromise: this.writeFile(layers0Path, JSON.stringify(metadata), 'metadata.json', compress)
227
- });
228
- case 25:
229
- _context.next = 46;
420
+ _context10.next = 23;
421
+ return this.saveMetadata();
422
+ case 23:
423
+ _context10.next = 41;
230
424
  break;
231
- case 27:
425
+ case 25:
232
426
  _iterator2 = _createForOfIteratorHelper(this.nodePages.entries());
233
- _context.prev = 28;
427
+ _context10.prev = 26;
428
+ _loop2 = _regenerator.default.mark(function _loop2() {
429
+ var _step2$value, index, nodePage, nodePageStr, nodePagePath;
430
+ return _regenerator.default.wrap(function _loop2$(_context9) {
431
+ while (1) {
432
+ switch (_context9.prev = _context9.next) {
433
+ case 0:
434
+ _step2$value = (0, _slicedToArray2.default)(_step2.value, 2), index = _step2$value[0], nodePage = _step2$value[1];
435
+ nodePageStr = JSON.stringify(nodePage);
436
+ nodePagePath = (0, _path.join)(_this3.converter.layers0Path, 'nodepages', index.toString());
437
+ _context9.next = 5;
438
+ return _this3.converter.writeQueue.enqueue({
439
+ writePromise: function writePromise() {
440
+ return _this3.writeFile(nodePagePath, nodePageStr);
441
+ }
442
+ });
443
+ case 5:
444
+ case "end":
445
+ return _context9.stop();
446
+ }
447
+ }
448
+ }, _loop2);
449
+ });
234
450
  _iterator2.s();
235
- case 30:
451
+ case 29:
236
452
  if ((_step2 = _iterator2.n()).done) {
237
- _context.next = 38;
453
+ _context10.next = 33;
238
454
  break;
239
455
  }
240
- _step2$value = (0, _slicedToArray2.default)(_step2.value, 2), _index = _step2$value[0], _nodePage = _step2$value[1];
241
- _nodePageStr = JSON.stringify(_nodePage);
242
- nodePagePath = (0, _path.join)(layers0Path, 'nodepages', _index.toString());
243
- _context.next = 36;
244
- return writeQueue.enqueue({
245
- writePromise: this.writeFile(nodePagePath, _nodePageStr)
246
- });
247
- case 36:
248
- _context.next = 30;
456
+ return _context10.delegateYield(_loop2(), "t2", 31);
457
+ case 31:
458
+ _context10.next = 29;
249
459
  break;
250
- case 38:
251
- _context.next = 43;
460
+ case 33:
461
+ _context10.next = 38;
252
462
  break;
253
- case 40:
254
- _context.prev = 40;
255
- _context.t1 = _context["catch"](28);
256
- _iterator2.e(_context.t1);
257
- case 43:
258
- _context.prev = 43;
463
+ case 35:
464
+ _context10.prev = 35;
465
+ _context10.t3 = _context10["catch"](26);
466
+ _iterator2.e(_context10.t3);
467
+ case 38:
468
+ _context10.prev = 38;
259
469
  _iterator2.f();
260
- return _context.finish(43);
261
- case 46:
470
+ return _context10.finish(38);
471
+ case 41:
262
472
  case "end":
263
- return _context.stop();
473
+ return _context10.stop();
264
474
  }
265
475
  }
266
- }, _callee, this, [[3, 15, 18, 21], [28, 40, 43, 46]]);
476
+ }, _callee8, this, [[6, 15, 18, 21], [26, 35, 38, 41]]);
267
477
  }));
268
- function save(_x, _x2) {
478
+ function save() {
269
479
  return _save.apply(this, arguments);
270
480
  }
271
481
  return save;
272
482
  }()
483
+ }], [{
484
+ key: "updateResourceInMesh",
485
+ value:
486
+ function updateResourceInMesh(node) {
487
+ if (node.mesh && isFinite(node.index)) {
488
+ node.mesh.geometry.resource = node.index;
489
+ }
490
+ }
491
+
492
+ }, {
493
+ key: "updateAll",
494
+ value:
495
+ function updateAll(node, data) {
496
+ Object.assign(node, data, {
497
+ index: node.index
498
+ });
499
+ NodePages.updateResourceInMesh(node);
500
+ return node;
501
+ }
502
+
503
+ }, {
504
+ key: "updateMaterialByNodeId",
505
+ value:
506
+ function updateMaterialByNodeId(node, materialId) {
507
+ if (!node.mesh) {
508
+ return;
509
+ }
510
+ node.mesh.material = {
511
+ definition: materialId,
512
+ resource: node.index
513
+ };
514
+ }
515
+
516
+ }, {
517
+ key: "updateVertexCountByNodeId",
518
+ value:
519
+ function updateVertexCountByNodeId(node, vertexCount) {
520
+ if (!node.mesh) {
521
+ return;
522
+ }
523
+ node.mesh.geometry.vertexCount = vertexCount;
524
+ }
525
+
526
+ }, {
527
+ key: "updateNodeAttributeByNodeId",
528
+ value:
529
+ function updateNodeAttributeByNodeId(node) {
530
+ if (!node.mesh || !node.index) {
531
+ return;
532
+ }
533
+ node.mesh.attribute.resource = node.index;
534
+ }
535
+
536
+ }, {
537
+ key: "updateFeatureCountByNodeId",
538
+ value:
539
+ function updateFeatureCountByNodeId(node, featureCount) {
540
+ if (!node.mesh) {
541
+ return;
542
+ }
543
+ node.mesh.geometry.featureCount = featureCount;
544
+ }
545
+
546
+ }, {
547
+ key: "updateTexelCountHintByNodeId",
548
+ value:
549
+ function updateTexelCountHintByNodeId(node, texelCountHint) {
550
+ if (!node.mesh || !node.mesh.material) {
551
+ return;
552
+ }
553
+ node.mesh.material.texelCountHint = texelCountHint;
554
+ }
273
555
  }]);
274
556
  return NodePages;
275
557
  }();