@loaders.gl/tile-converter 3.2.9 → 3.2.11

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 (37) hide show
  1. package/dist/3d-tiles-attributes-worker.js +1 -1
  2. package/dist/3d-tiles-attributes-worker.js.map +1 -1
  3. package/dist/converter-cli.js +15 -2
  4. package/dist/converter.min.js +1 -1
  5. package/dist/dist.min.js +16 -12
  6. package/dist/es5/3d-tiles-attributes-worker.js +1 -1
  7. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -1
  8. package/dist/es5/converter-cli.js +9 -2
  9. package/dist/es5/converter-cli.js.map +1 -1
  10. package/dist/es5/i3s-attributes-worker.js +1 -1
  11. package/dist/es5/i3s-attributes-worker.js.map +1 -1
  12. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +6 -6
  13. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  14. package/dist/es5/i3s-converter/i3s-converter.js +27 -20
  15. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  16. package/dist/es5/pgm-loader.js +1 -1
  17. package/dist/es5/pgm-loader.js.map +1 -1
  18. package/dist/esm/3d-tiles-attributes-worker.js +1 -1
  19. package/dist/esm/3d-tiles-attributes-worker.js.map +1 -1
  20. package/dist/esm/converter-cli.js +9 -2
  21. package/dist/esm/converter-cli.js.map +1 -1
  22. package/dist/esm/i3s-attributes-worker.js +1 -1
  23. package/dist/esm/i3s-attributes-worker.js.map +1 -1
  24. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +6 -6
  25. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  26. package/dist/esm/i3s-converter/i3s-converter.js +12 -4
  27. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  28. package/dist/esm/pgm-loader.js +1 -1
  29. package/dist/esm/pgm-loader.js.map +1 -1
  30. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -1
  31. package/dist/i3s-converter/helpers/coordinate-converter.js +8 -6
  32. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  33. package/dist/i3s-converter/i3s-converter.js +8 -4
  34. package/package.json +15 -15
  35. package/src/converter-cli.ts +16 -2
  36. package/src/i3s-converter/helpers/coordinate-converter.ts +8 -6
  37. package/src/i3s-converter/i3s-converter.ts +16 -4
@@ -194,7 +194,7 @@ function validateOptions(options: TileConversionOptions): ValidatedTileConversio
194
194
  }
195
195
  if (exceptions.length) {
196
196
  exceptions.forEach((exeption) => exeption());
197
- process.exit(0); // eslint-disable-line
197
+ process.exit(1);
198
198
  }
199
199
  return <ValidatedTileConversionOptions>options;
200
200
  }
@@ -225,7 +225,7 @@ function parseOptions(args: string[]): TileConversionOptions {
225
225
  opts.inputType = getStringValue(index, args);
226
226
  break;
227
227
  case '--tileset':
228
- opts.tileset = getStringValue(index, args);
228
+ opts.tileset = getURLValue(index, args);
229
229
  break;
230
230
  case '--name':
231
231
  opts.name = getStringValue(index, args);
@@ -293,6 +293,20 @@ function getStringValue(index: number, args: string[]): string {
293
293
  return value;
294
294
  }
295
295
 
296
+ /**
297
+ * Modyfy URL path to be compatible with fetch
298
+ * @param index - option's name index in the argument's array.
299
+ * The value of the option should be next to name of the option.
300
+ * @param args - cli arguments array
301
+ * @returns - string value of the option
302
+ */
303
+ function getURLValue(index: number, args: string[]): string {
304
+ const value = getStringValue(index, args);
305
+ console.log(`Input tileset value: ${value}`);
306
+ console.log(`Modified tileset value: ${value.replace(/\\/g, '/')}`);
307
+ return value.replace(/\\/g, '/');
308
+ }
309
+
296
310
  /**
297
311
  * Get integer option value from cli arguments
298
312
  * @param index - option's name index in the argument's array
@@ -126,13 +126,15 @@ export function convertBoundingVolumeToI3SFullExtent(
126
126
  new Vector3()
127
127
  );
128
128
 
129
+ // Converter sometimes returns min values that are bigger then max,
130
+ // so we should check and take bigger value from max and smaller for nim
129
131
  return {
130
- xmin: vertexMin[0],
131
- xmax: vertexMax[0],
132
- ymin: vertexMin[1],
133
- ymax: vertexMax[1],
134
- zmin: vertexMin[2],
135
- zmax: vertexMax[2]
132
+ xmin: Math.min(vertexMin[0], vertexMax[0]),
133
+ xmax: Math.max(vertexMin[0], vertexMax[0]),
134
+ ymin: Math.min(vertexMin[1], vertexMax[1]),
135
+ ymax: Math.max(vertexMin[1], vertexMax[1]),
136
+ zmin: Math.min(vertexMin[2], vertexMax[2]),
137
+ zmax: Math.max(vertexMin[2], vertexMax[2])
136
138
  };
137
139
  }
138
140
 
@@ -199,7 +199,11 @@ export default class I3SConverter {
199
199
  // console.log(tilesetJson); // eslint-disable-line
200
200
  this.sourceTileset = new Tileset3D(sourceTilesetJson, tilesetOptions);
201
201
 
202
- await this._createAndSaveTileset(outputPath, tilesetName);
202
+ await this._createAndSaveTileset(
203
+ outputPath,
204
+ tilesetName,
205
+ sourceTilesetJson?.root?.boundingVolume?.region
206
+ );
203
207
  await this._finishConversion({slpk: Boolean(slpk), outputPath, tilesetName});
204
208
  return sourceTilesetJson;
205
209
  } catch (error) {
@@ -216,7 +220,11 @@ export default class I3SConverter {
216
220
  * @param outputPath - path to save output data
217
221
  * @param tilesetName - new tileset path
218
222
  */
219
- private async _createAndSaveTileset(outputPath: string, tilesetName: string): Promise<void> {
223
+ private async _createAndSaveTileset(
224
+ outputPath: string,
225
+ tilesetName: string,
226
+ boundingVolumeRegion?: number[]
227
+ ): Promise<void> {
220
228
  const tilesetPath = join(`${outputPath}`, `${tilesetName}`);
221
229
  // Removing the tilesetPath needed to exclude erroneous files after conversion
222
230
  try {
@@ -227,7 +235,7 @@ export default class I3SConverter {
227
235
 
228
236
  this.layers0Path = join(tilesetPath, 'SceneServer', 'layers', '0');
229
237
 
230
- this._formLayers0(tilesetName);
238
+ this._formLayers0(tilesetName, boundingVolumeRegion);
231
239
 
232
240
  this.materialDefinitions = [];
233
241
  this.materialMap = new Map();
@@ -267,10 +275,14 @@ export default class I3SConverter {
267
275
  * Form object of 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md
268
276
  * @param tilesetName - Name of layer
269
277
  */
270
- private _formLayers0(tilesetName: string): void {
278
+ private _formLayers0(tilesetName: string, boundingVolumeRegion?: number[]): void {
271
279
  const fullExtent = convertBoundingVolumeToI3SFullExtent(
272
280
  this.sourceTileset?.boundingVolume || this.sourceTileset?.root?.boundingVolume
273
281
  );
282
+ if (boundingVolumeRegion) {
283
+ fullExtent.zmin = boundingVolumeRegion[4];
284
+ fullExtent.zmax = boundingVolumeRegion[5];
285
+ }
274
286
  const extent = [fullExtent.xmin, fullExtent.ymin, fullExtent.xmax, fullExtent.ymax];
275
287
  const layers0data = {
276
288
  version: `{${uuidv4().toUpperCase()}}`,