@loaders.gl/terrain 4.0.0-alpha.5 → 4.0.0-alpha.7

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 (98) hide show
  1. package/dist/bundle.js +2 -2
  2. package/dist/dist.min.js +100 -106
  3. package/dist/es5/bundle.js +6 -0
  4. package/dist/es5/bundle.js.map +1 -0
  5. package/dist/es5/index.js +87 -0
  6. package/dist/es5/index.js.map +1 -0
  7. package/dist/es5/lib/decode-quantized-mesh.js +250 -0
  8. package/dist/es5/lib/decode-quantized-mesh.js.map +1 -0
  9. package/dist/es5/lib/delatin/index.js +408 -0
  10. package/dist/es5/lib/delatin/index.js.map +1 -0
  11. package/dist/es5/lib/helpers/skirt.js +105 -0
  12. package/dist/es5/lib/helpers/skirt.js.map +1 -0
  13. package/dist/es5/lib/parse-quantized-mesh.js +95 -0
  14. package/dist/es5/lib/parse-quantized-mesh.js.map +1 -0
  15. package/dist/es5/lib/parse-terrain.js +152 -0
  16. package/dist/es5/lib/parse-terrain.js.map +1 -0
  17. package/dist/es5/lib/utils/version.js +9 -0
  18. package/dist/es5/lib/utils/version.js.map +1 -0
  19. package/dist/es5/quantized-mesh-loader.js +24 -0
  20. package/dist/es5/quantized-mesh-loader.js.map +1 -0
  21. package/dist/es5/terrain-loader.js +32 -0
  22. package/dist/es5/terrain-loader.js.map +1 -0
  23. package/dist/es5/workers/quantized-mesh-worker.js +6 -0
  24. package/dist/es5/workers/quantized-mesh-worker.js.map +1 -0
  25. package/dist/es5/workers/terrain-worker.js +6 -0
  26. package/dist/es5/workers/terrain-worker.js.map +1 -0
  27. package/dist/esm/bundle.js +4 -0
  28. package/dist/esm/bundle.js.map +1 -0
  29. package/dist/esm/index.js +32 -0
  30. package/dist/esm/index.js.map +1 -0
  31. package/dist/esm/lib/decode-quantized-mesh.js +231 -0
  32. package/dist/esm/lib/decode-quantized-mesh.js.map +1 -0
  33. package/dist/esm/lib/delatin/index.js +355 -0
  34. package/dist/esm/lib/delatin/index.js.map +1 -0
  35. package/dist/esm/lib/helpers/skirt.js +89 -0
  36. package/dist/esm/lib/helpers/skirt.js.map +1 -0
  37. package/dist/esm/lib/parse-quantized-mesh.js +85 -0
  38. package/dist/esm/lib/parse-quantized-mesh.js.map +1 -0
  39. package/dist/esm/lib/parse-terrain.js +151 -0
  40. package/dist/esm/lib/parse-terrain.js.map +1 -0
  41. package/dist/esm/lib/utils/version.js +2 -0
  42. package/dist/esm/lib/utils/version.js.map +1 -0
  43. package/dist/esm/quantized-mesh-loader.js +17 -0
  44. package/dist/esm/quantized-mesh-loader.js.map +1 -0
  45. package/dist/esm/terrain-loader.js +25 -0
  46. package/dist/esm/terrain-loader.js.map +1 -0
  47. package/dist/esm/workers/quantized-mesh-worker.js +4 -0
  48. package/dist/esm/workers/quantized-mesh-worker.js.map +1 -0
  49. package/dist/esm/workers/terrain-worker.js +4 -0
  50. package/dist/esm/workers/terrain-worker.js.map +1 -0
  51. package/dist/index.d.ts +27 -69
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +31 -14
  54. package/dist/lib/decode-quantized-mesh.d.ts +1 -1
  55. package/dist/lib/decode-quantized-mesh.d.ts.map +1 -1
  56. package/dist/lib/decode-quantized-mesh.js +200 -241
  57. package/dist/lib/delatin/index.js +397 -443
  58. package/dist/lib/helpers/skirt.d.ts +1 -1
  59. package/dist/lib/helpers/skirt.d.ts.map +1 -1
  60. package/dist/lib/helpers/skirt.js +119 -91
  61. package/dist/lib/parse-quantized-mesh.d.ts +6 -24
  62. package/dist/lib/parse-quantized-mesh.d.ts.map +1 -1
  63. package/dist/lib/parse-quantized-mesh.js +94 -93
  64. package/dist/lib/parse-terrain.d.ts +28 -2
  65. package/dist/lib/parse-terrain.d.ts.map +1 -1
  66. package/dist/lib/parse-terrain.js +146 -172
  67. package/dist/lib/utils/version.js +7 -2
  68. package/dist/quantized-mesh-loader.d.ts +8 -17
  69. package/dist/quantized-mesh-loader.d.ts.map +1 -1
  70. package/dist/quantized-mesh-loader.js +20 -16
  71. package/dist/quantized-mesh-worker.js +146 -117
  72. package/dist/terrain-loader.d.ts +7 -27
  73. package/dist/terrain-loader.d.ts.map +1 -1
  74. package/dist/terrain-loader.js +28 -24
  75. package/dist/terrain-worker.js +146 -117
  76. package/dist/workers/quantized-mesh-worker.js +5 -4
  77. package/dist/workers/terrain-worker.js +5 -4
  78. package/package.json +9 -8
  79. package/src/index.ts +29 -13
  80. package/src/lib/helpers/skirt.ts +7 -7
  81. package/src/lib/parse-quantized-mesh.ts +47 -43
  82. package/src/lib/parse-terrain.ts +83 -89
  83. package/src/quantized-mesh-loader.ts +9 -4
  84. package/src/terrain-loader.ts +14 -11
  85. package/dist/bundle.js.map +0 -1
  86. package/dist/index.js.map +0 -1
  87. package/dist/lib/decode-quantized-mesh.js.map +0 -1
  88. package/dist/lib/delatin/index.js.map +0 -1
  89. package/dist/lib/helpers/skirt.js.map +0 -1
  90. package/dist/lib/parse-quantized-mesh.js.map +0 -1
  91. package/dist/lib/parse-terrain.js.map +0 -1
  92. package/dist/lib/utils/version.js.map +0 -1
  93. package/dist/quantized-mesh-loader.js.map +0 -1
  94. package/dist/terrain-loader.js.map +0 -1
  95. package/dist/workers/quantized-mesh-worker.js.map +0 -1
  96. package/dist/workers/terrain-worker.js.map +0 -1
  97. package/src/workers/quantized-mesh-worker.js +0 -3
  98. package/src/workers/terrain-worker.js +0 -3
package/dist/bundle.js CHANGED
@@ -1,5 +1,5 @@
1
+ "use strict";
2
+ // @ts-nocheck
1
3
  const moduleExports = require('./index');
2
-
3
4
  globalThis.loaders = globalThis.loaders || {};
4
5
  module.exports = Object.assign(globalThis.loaders, moduleExports);
5
- //# sourceMappingURL=bundle.js.map
package/dist/dist.min.js CHANGED
@@ -13,7 +13,7 @@
13
13
  __defProp(target, name, { get: all[name], enumerable: true });
14
14
  };
15
15
 
16
- // ../schema/src/category/mesh/mesh-utils.ts
16
+ // ../schema/src/lib/mesh/mesh-utils.ts
17
17
  function getMeshBoundingBox(attributes) {
18
18
  let minX = Infinity;
19
19
  let minY = Infinity;
@@ -40,7 +40,7 @@
40
40
  ];
41
41
  }
42
42
  var init_mesh_utils = __esm({
43
- "../schema/src/category/mesh/mesh-utils.ts"() {
43
+ "../schema/src/lib/mesh/mesh-utils.ts"() {
44
44
  }
45
45
  });
46
46
 
@@ -323,12 +323,12 @@
323
323
  }
324
324
  edges.sort((a, b) => Math.min(...a) - Math.min(...b) || Math.max(...a) - Math.max(...b));
325
325
  const outsideEdges = [];
326
- let index = 1;
326
+ let index = 0;
327
327
  while (index < edges.length) {
328
- if (edges[index][0] === edges[index - 1][1] && edges[index][1] === edges[index - 1][0]) {
328
+ if (edges[index][0] === edges[index + 1]?.[1] && edges[index][1] === edges[index + 1]?.[0]) {
329
329
  index += 2;
330
330
  } else {
331
- outsideEdges.push(edges[index - 1]);
331
+ outsideEdges.push(edges[index]);
332
332
  index++;
333
333
  }
334
334
  }
@@ -368,11 +368,11 @@
368
368
  newTexcoord0.set(attributes.TEXCOORD_0.value.subarray(edge[1] * 2, edge[1] * 2 + 2), vertex2Offset * 2);
369
369
  const triangle1Offset = edgeIndex * 2 * 3;
370
370
  newTriangles[triangle1Offset] = edge[0];
371
- newTriangles[triangle1Offset + 1] = edge[1];
372
- newTriangles[triangle1Offset + 2] = positionsLength / 3 + vertex2Offset;
371
+ newTriangles[triangle1Offset + 1] = positionsLength / 3 + vertex2Offset;
372
+ newTriangles[triangle1Offset + 2] = edge[1];
373
373
  newTriangles[triangle1Offset + 3] = positionsLength / 3 + vertex2Offset;
374
- newTriangles[triangle1Offset + 4] = positionsLength / 3 + vertex1Offset;
375
- newTriangles[triangle1Offset + 5] = edge[0];
374
+ newTriangles[triangle1Offset + 4] = edge[0];
375
+ newTriangles[triangle1Offset + 5] = positionsLength / 3 + vertex1Offset;
376
376
  }
377
377
  var init_skirt = __esm({
378
378
  "src/lib/helpers/skirt.ts"() {
@@ -381,34 +381,7 @@
381
381
  });
382
382
 
383
383
  // src/lib/parse-quantized-mesh.ts
384
- function getMeshAttributes(vertexData, header, bounds) {
385
- const { minHeight, maxHeight } = header;
386
- const [minX, minY, maxX, maxY] = bounds || [0, 0, 1, 1];
387
- const xScale = maxX - minX;
388
- const yScale = maxY - minY;
389
- const zScale = maxHeight - minHeight;
390
- const nCoords = vertexData.length / 3;
391
- const positions = new Float32Array(nCoords * 3);
392
- const texCoords = new Float32Array(nCoords * 2);
393
- for (let i = 0; i < nCoords; i++) {
394
- const x = vertexData[i] / 32767;
395
- const y = vertexData[i + nCoords] / 32767;
396
- const z = vertexData[i + nCoords * 2] / 32767;
397
- positions[3 * i + 0] = x * xScale + minX;
398
- positions[3 * i + 1] = y * yScale + minY;
399
- positions[3 * i + 2] = z * zScale + minHeight;
400
- texCoords[2 * i + 0] = x;
401
- texCoords[2 * i + 1] = y;
402
- }
403
- return {
404
- POSITION: { value: positions, size: 3 },
405
- TEXCOORD_0: { value: texCoords, size: 2 }
406
- };
407
- }
408
- function getTileMesh(arrayBuffer, options) {
409
- if (!arrayBuffer) {
410
- return null;
411
- }
384
+ function parseQuantizedMesh(arrayBuffer, options = {}) {
412
385
  const { bounds } = options;
413
386
  const {
414
387
  header,
@@ -422,7 +395,7 @@
422
395
  let triangleIndices = originalTriangleIndices;
423
396
  let attributes = getMeshAttributes(vertexData, header, bounds);
424
397
  const boundingBox = getMeshBoundingBox(attributes);
425
- if (options.skirtHeight) {
398
+ if (options?.skirtHeight) {
426
399
  const { attributes: newAttributes, triangles: newTriangles } = addSkirt(attributes, triangleIndices, options.skirtHeight, {
427
400
  westIndices,
428
401
  northIndices,
@@ -440,13 +413,36 @@
440
413
  vertexCount: triangleIndices.length,
441
414
  boundingBox
442
415
  },
416
+ schema: void 0,
417
+ topology: "triangle-list",
443
418
  mode: 4,
444
419
  indices: { value: triangleIndices, size: 1 },
445
420
  attributes
446
421
  };
447
422
  }
448
- function loadQuantizedMesh(arrayBuffer, options) {
449
- return getTileMesh(arrayBuffer, options["quantized-mesh"]);
423
+ function getMeshAttributes(vertexData, header, bounds) {
424
+ const { minHeight, maxHeight } = header;
425
+ const [minX, minY, maxX, maxY] = bounds || [0, 0, 1, 1];
426
+ const xScale = maxX - minX;
427
+ const yScale = maxY - minY;
428
+ const zScale = maxHeight - minHeight;
429
+ const nCoords = vertexData.length / 3;
430
+ const positions = new Float32Array(nCoords * 3);
431
+ const texCoords = new Float32Array(nCoords * 2);
432
+ for (let i = 0; i < nCoords; i++) {
433
+ const x = vertexData[i] / 32767;
434
+ const y = vertexData[i + nCoords] / 32767;
435
+ const z = vertexData[i + nCoords * 2] / 32767;
436
+ positions[3 * i + 0] = x * xScale + minX;
437
+ positions[3 * i + 1] = y * yScale + minY;
438
+ positions[3 * i + 2] = z * zScale + minHeight;
439
+ texCoords[2 * i + 0] = x;
440
+ texCoords[2 * i + 1] = y;
441
+ }
442
+ return {
443
+ POSITION: { value: positions, size: 3 },
444
+ TEXCOORD_0: { value: texCoords, size: 2 }
445
+ };
450
446
  }
451
447
  var init_parse_quantized_mesh = __esm({
452
448
  "src/lib/parse-quantized-mesh.ts"() {
@@ -953,55 +949,7 @@
953
949
  });
954
950
 
955
951
  // src/lib/parse-terrain.ts
956
- function getTerrain(imageData, width, height, elevationDecoder, tesselator) {
957
- const { rScaler, bScaler, gScaler, offset } = elevationDecoder;
958
- const terrain = new Float32Array((width + 1) * (height + 1));
959
- for (let i = 0, y = 0; y < height; y++) {
960
- for (let x = 0; x < width; x++, i++) {
961
- const k = i * 4;
962
- const r = imageData[k + 0];
963
- const g = imageData[k + 1];
964
- const b = imageData[k + 2];
965
- terrain[i + y] = r * rScaler + g * gScaler + b * bScaler + offset;
966
- }
967
- }
968
- if (tesselator === "martini") {
969
- for (let i = (width + 1) * width, x = 0; x < width; x++, i++) {
970
- terrain[i] = terrain[i - width - 1];
971
- }
972
- for (let i = height, y = 0; y < height + 1; y++, i += height + 1) {
973
- terrain[i] = terrain[i - 1];
974
- }
975
- }
976
- return terrain;
977
- }
978
- function getMeshAttributes2(vertices, terrain, width, height, bounds) {
979
- const gridSize = width + 1;
980
- const numOfVerticies = vertices.length / 2;
981
- const positions = new Float32Array(numOfVerticies * 3);
982
- const texCoords = new Float32Array(numOfVerticies * 2);
983
- const [minX, minY, maxX, maxY] = bounds || [0, 0, width, height];
984
- const xScale = (maxX - minX) / width;
985
- const yScale = (maxY - minY) / height;
986
- for (let i = 0; i < numOfVerticies; i++) {
987
- const x = vertices[i * 2];
988
- const y = vertices[i * 2 + 1];
989
- const pixelIdx = y * gridSize + x;
990
- positions[3 * i + 0] = x * xScale + minX;
991
- positions[3 * i + 1] = -y * yScale + maxY;
992
- positions[3 * i + 2] = terrain[pixelIdx];
993
- texCoords[2 * i + 0] = x / width;
994
- texCoords[2 * i + 1] = y / height;
995
- }
996
- return {
997
- POSITION: { value: positions, size: 3 },
998
- TEXCOORD_0: { value: texCoords, size: 2 }
999
- };
1000
- }
1001
- function getMesh(terrainImage, terrainOptions) {
1002
- if (terrainImage === null) {
1003
- return null;
1004
- }
952
+ function makeTerrainMeshFromImage(terrainImage, terrainOptions) {
1005
953
  const { meshMaxError, bounds, elevationDecoder } = terrainOptions;
1006
954
  const { data, width, height } = terrainImage;
1007
955
  let terrain;
@@ -1061,11 +1009,50 @@
1061
1009
  const vertices = coords;
1062
1010
  return { vertices, triangles };
1063
1011
  }
1064
- async function loadTerrain(arrayBuffer, options, context) {
1065
- options.image = options.image || {};
1066
- options.image.type = "data";
1067
- const image = await context.parse(arrayBuffer, options, options.baseUri);
1068
- return getMesh(image, options.terrain);
1012
+ function getTerrain(imageData, width, height, elevationDecoder, tesselator) {
1013
+ const { rScaler, bScaler, gScaler, offset } = elevationDecoder;
1014
+ const terrain = new Float32Array((width + 1) * (height + 1));
1015
+ for (let i = 0, y = 0; y < height; y++) {
1016
+ for (let x = 0; x < width; x++, i++) {
1017
+ const k = i * 4;
1018
+ const r = imageData[k + 0];
1019
+ const g = imageData[k + 1];
1020
+ const b = imageData[k + 2];
1021
+ terrain[i + y] = r * rScaler + g * gScaler + b * bScaler + offset;
1022
+ }
1023
+ }
1024
+ if (tesselator === "martini") {
1025
+ for (let i = (width + 1) * width, x = 0; x < width; x++, i++) {
1026
+ terrain[i] = terrain[i - width - 1];
1027
+ }
1028
+ for (let i = height, y = 0; y < height + 1; y++, i += height + 1) {
1029
+ terrain[i] = terrain[i - 1];
1030
+ }
1031
+ }
1032
+ return terrain;
1033
+ }
1034
+ function getMeshAttributes2(vertices, terrain, width, height, bounds) {
1035
+ const gridSize = width + 1;
1036
+ const numOfVerticies = vertices.length / 2;
1037
+ const positions = new Float32Array(numOfVerticies * 3);
1038
+ const texCoords = new Float32Array(numOfVerticies * 2);
1039
+ const [minX, minY, maxX, maxY] = bounds || [0, 0, width, height];
1040
+ const xScale = (maxX - minX) / width;
1041
+ const yScale = (maxY - minY) / height;
1042
+ for (let i = 0; i < numOfVerticies; i++) {
1043
+ const x = vertices[i * 2];
1044
+ const y = vertices[i * 2 + 1];
1045
+ const pixelIdx = y * gridSize + x;
1046
+ positions[3 * i + 0] = x * xScale + minX;
1047
+ positions[3 * i + 1] = -y * yScale + maxY;
1048
+ positions[3 * i + 2] = terrain[pixelIdx];
1049
+ texCoords[2 * i + 0] = x / width;
1050
+ texCoords[2 * i + 1] = y / height;
1051
+ }
1052
+ return {
1053
+ POSITION: { value: positions, size: 3 },
1054
+ TEXCOORD_0: { value: texCoords, size: 2 }
1055
+ };
1069
1056
  }
1070
1057
  var init_parse_terrain = __esm({
1071
1058
  "src/lib/parse-terrain.ts"() {
@@ -1095,12 +1082,12 @@
1095
1082
  module: "terrain",
1096
1083
  version: VERSION,
1097
1084
  worker: true,
1098
- extensions: ["png", "pngraw"],
1099
- mimeTypes: ["image/png"],
1085
+ extensions: ["png", "pngraw", "jpg", "jpeg", "gif", "webp", "bmp"],
1086
+ mimeTypes: ["image/png", "image/jpeg", "image/gif", "image/webp", "image/bmp"],
1100
1087
  options: {
1101
1088
  terrain: {
1102
1089
  tesselator: "auto",
1103
- bounds: null,
1090
+ bounds: void 0,
1104
1091
  meshMaxError: 10,
1105
1092
  elevationDecoder: {
1106
1093
  rScaler: 1,
@@ -1108,7 +1095,7 @@
1108
1095
  bScaler: 0,
1109
1096
  offset: 0
1110
1097
  },
1111
- skirtHeight: null
1098
+ skirtHeight: void 0
1112
1099
  }
1113
1100
  }
1114
1101
  };
@@ -1145,10 +1132,19 @@
1145
1132
  QuantizedMeshWorkerLoader: () => QuantizedMeshLoader,
1146
1133
  TerrainLoader: () => TerrainLoader2,
1147
1134
  TerrainWorkerLoader: () => TerrainLoader,
1148
- _typecheckQuantizedMeshLoader: () => _typecheckQuantizedMeshLoader,
1149
- _typecheckTerrainLoader: () => _typecheckTerrainLoader
1135
+ parseTerrain: () => parseTerrain
1150
1136
  });
1151
- var TerrainLoader2, _typecheckTerrainLoader, QuantizedMeshLoader2, _typecheckQuantizedMeshLoader;
1137
+ async function parseTerrain(arrayBuffer, options, context) {
1138
+ const loadImageOptions = {
1139
+ ...options,
1140
+ mimeType: "application/x.image",
1141
+ image: { ...options?.image, type: "data" }
1142
+ };
1143
+ const image = await context?.parse(arrayBuffer, loadImageOptions);
1144
+ const terrainOptions = { ...TerrainLoader2.options.terrain, ...options?.terrain };
1145
+ return makeTerrainMeshFromImage(image, terrainOptions);
1146
+ }
1147
+ var TerrainLoader2, QuantizedMeshLoader2;
1152
1148
  var init_src3 = __esm({
1153
1149
  "src/index.ts"() {
1154
1150
  init_parse_quantized_mesh();
@@ -1157,15 +1153,13 @@
1157
1153
  init_quantized_mesh_loader();
1158
1154
  TerrainLoader2 = {
1159
1155
  ...TerrainLoader,
1160
- parse: loadTerrain
1156
+ parse: parseTerrain
1161
1157
  };
1162
- _typecheckTerrainLoader = TerrainLoader2;
1163
1158
  QuantizedMeshLoader2 = {
1164
1159
  ...QuantizedMeshLoader,
1165
- parseSync: loadQuantizedMesh,
1166
- parse: async (arrayBuffer, options) => loadQuantizedMesh(arrayBuffer, options)
1160
+ parseSync: (arrayBuffer, options) => parseQuantizedMesh(arrayBuffer, options?.["quantized-mesh"]),
1161
+ parse: async (arrayBuffer, options) => parseQuantizedMesh(arrayBuffer, options?.["quantized-mesh"])
1167
1162
  };
1168
- _typecheckQuantizedMeshLoader = QuantizedMeshLoader2;
1169
1163
  }
1170
1164
  });
1171
1165
 
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ var moduleExports = require('./index');
4
+ globalThis.loaders = globalThis.loaders || {};
5
+ module.exports = Object.assign(globalThis.loaders, moduleExports);
6
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACC,OAAO,IAAI,CAAC,CAAC;AAC7CC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,OAAO,EAAEH,aAAa,CAAC"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.QuantizedMeshLoader = void 0;
8
+ Object.defineProperty(exports, "QuantizedMeshWorkerLoader", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _quantizedMeshLoader.QuantizedMeshLoader;
12
+ }
13
+ });
14
+ exports.TerrainLoader = void 0;
15
+ Object.defineProperty(exports, "TerrainWorkerLoader", {
16
+ enumerable: true,
17
+ get: function get() {
18
+ return _terrainLoader.TerrainLoader;
19
+ }
20
+ });
21
+ exports.parseTerrain = parseTerrain;
22
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
23
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+ var _parseQuantizedMesh = require("./lib/parse-quantized-mesh");
26
+ var _parseTerrain2 = require("./lib/parse-terrain");
27
+ var _terrainLoader = require("./terrain-loader");
28
+ var _quantizedMeshLoader = require("./quantized-mesh-loader");
29
+ 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; }
30
+ 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; }
31
+ var TerrainLoader = _objectSpread(_objectSpread({}, _terrainLoader.TerrainLoader), {}, {
32
+ parse: parseTerrain
33
+ });
34
+ exports.TerrainLoader = TerrainLoader;
35
+ function parseTerrain(_x, _x2, _x3) {
36
+ return _parseTerrain.apply(this, arguments);
37
+ }
38
+ function _parseTerrain() {
39
+ _parseTerrain = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(arrayBuffer, options, context) {
40
+ var loadImageOptions, image, terrainOptions;
41
+ return _regenerator.default.wrap(function _callee2$(_context2) {
42
+ while (1) switch (_context2.prev = _context2.next) {
43
+ case 0:
44
+ loadImageOptions = _objectSpread(_objectSpread({}, options), {}, {
45
+ mimeType: 'application/x.image',
46
+ image: _objectSpread(_objectSpread({}, options === null || options === void 0 ? void 0 : options.image), {}, {
47
+ type: 'data'
48
+ })
49
+ });
50
+ _context2.next = 3;
51
+ return context === null || context === void 0 ? void 0 : context.parse(arrayBuffer, loadImageOptions);
52
+ case 3:
53
+ image = _context2.sent;
54
+ terrainOptions = _objectSpread(_objectSpread({}, TerrainLoader.options.terrain), options === null || options === void 0 ? void 0 : options.terrain);
55
+ return _context2.abrupt("return", (0, _parseTerrain2.makeTerrainMeshFromImage)(image, terrainOptions));
56
+ case 6:
57
+ case "end":
58
+ return _context2.stop();
59
+ }
60
+ }, _callee2);
61
+ }));
62
+ return _parseTerrain.apply(this, arguments);
63
+ }
64
+ var QuantizedMeshLoader = _objectSpread(_objectSpread({}, _quantizedMeshLoader.QuantizedMeshLoader), {}, {
65
+ parseSync: function parseSync(arrayBuffer, options) {
66
+ return (0, _parseQuantizedMesh.parseQuantizedMesh)(arrayBuffer, options === null || options === void 0 ? void 0 : options['quantized-mesh']);
67
+ },
68
+ parse: function () {
69
+ var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
70
+ return _regenerator.default.wrap(function _callee$(_context) {
71
+ while (1) switch (_context.prev = _context.next) {
72
+ case 0:
73
+ return _context.abrupt("return", (0, _parseQuantizedMesh.parseQuantizedMesh)(arrayBuffer, options === null || options === void 0 ? void 0 : options['quantized-mesh']));
74
+ case 1:
75
+ case "end":
76
+ return _context.stop();
77
+ }
78
+ }, _callee);
79
+ }));
80
+ function parse(_x4, _x5) {
81
+ return _parse.apply(this, arguments);
82
+ }
83
+ return parse;
84
+ }()
85
+ });
86
+ exports.QuantizedMeshLoader = QuantizedMeshLoader;
87
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_parseQuantizedMesh","require","_parseTerrain2","_terrainLoader","_quantizedMeshLoader","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","TerrainLoader","TerrainWorkerLoader","parse","parseTerrain","exports","_x","_x2","_x3","_parseTerrain","_asyncToGenerator2","_regenerator","mark","_callee2","arrayBuffer","options","context","loadImageOptions","image","terrainOptions","wrap","_callee2$","_context2","prev","next","mimeType","type","sent","terrain","abrupt","makeTerrainMeshFromImage","stop","QuantizedMeshLoader","QuantizedMeshWorkerLoader","parseSync","parseQuantizedMesh","_parse","_callee","_callee$","_context","_x4","_x5"],"sources":["../../src/index.ts"],"sourcesContent":["import type {LoaderContext, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {parseQuantizedMesh} from './lib/parse-quantized-mesh';\nimport {TerrainOptions, makeTerrainMeshFromImage} from './lib/parse-terrain';\n\nimport {TerrainLoader as TerrainWorkerLoader, TerrainLoaderOptions} from './terrain-loader';\nimport {\n QuantizedMeshLoader as QuantizedMeshWorkerLoader,\n QuantizedMeshLoaderOptions\n} from './quantized-mesh-loader';\n\n// TerrainLoader\n\nexport {TerrainWorkerLoader};\n\nexport const TerrainLoader: LoaderWithParser<any, never, TerrainLoaderOptions> = {\n ...TerrainWorkerLoader,\n parse: parseTerrain\n};\n\nexport async function parseTerrain(\n arrayBuffer: ArrayBuffer,\n options?: TerrainLoaderOptions,\n context?: LoaderContext\n) {\n const loadImageOptions = {\n ...options,\n mimeType: 'application/x.image',\n image: {...options?.image, type: 'data'}\n };\n const image = await context?.parse(arrayBuffer, loadImageOptions);\n // Extend function to support additional mesh generation options (square grid or delatin)\n const terrainOptions = {...TerrainLoader.options.terrain, ...options?.terrain} as TerrainOptions;\n return makeTerrainMeshFromImage(image, terrainOptions);\n}\n\n// QuantizedMeshLoader\n\nexport {QuantizedMeshWorkerLoader};\n\n/**\n * Loader for quantized meshes\n */\nexport const QuantizedMeshLoader: LoaderWithParser<any, never, QuantizedMeshLoaderOptions> = {\n ...QuantizedMeshWorkerLoader,\n parseSync: (arrayBuffer, options) => parseQuantizedMesh(arrayBuffer, options?.['quantized-mesh']),\n parse: async (arrayBuffer, options) =>\n parseQuantizedMesh(arrayBuffer, options?.['quantized-mesh'])\n};\n"],"mappings":"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"}