@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.
- package/dist/bundle.js +2 -2
- package/dist/dist.min.js +100 -106
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/index.js +87 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/lib/decode-quantized-mesh.js +250 -0
- package/dist/es5/lib/decode-quantized-mesh.js.map +1 -0
- package/dist/es5/lib/delatin/index.js +408 -0
- package/dist/es5/lib/delatin/index.js.map +1 -0
- package/dist/es5/lib/helpers/skirt.js +105 -0
- package/dist/es5/lib/helpers/skirt.js.map +1 -0
- package/dist/es5/lib/parse-quantized-mesh.js +95 -0
- package/dist/es5/lib/parse-quantized-mesh.js.map +1 -0
- package/dist/es5/lib/parse-terrain.js +152 -0
- package/dist/es5/lib/parse-terrain.js.map +1 -0
- package/dist/es5/lib/utils/version.js +9 -0
- package/dist/es5/lib/utils/version.js.map +1 -0
- package/dist/es5/quantized-mesh-loader.js +24 -0
- package/dist/es5/quantized-mesh-loader.js.map +1 -0
- package/dist/es5/terrain-loader.js +32 -0
- package/dist/es5/terrain-loader.js.map +1 -0
- package/dist/es5/workers/quantized-mesh-worker.js +6 -0
- package/dist/es5/workers/quantized-mesh-worker.js.map +1 -0
- package/dist/es5/workers/terrain-worker.js +6 -0
- package/dist/es5/workers/terrain-worker.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/index.js +32 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/decode-quantized-mesh.js +231 -0
- package/dist/esm/lib/decode-quantized-mesh.js.map +1 -0
- package/dist/esm/lib/delatin/index.js +355 -0
- package/dist/esm/lib/delatin/index.js.map +1 -0
- package/dist/esm/lib/helpers/skirt.js +89 -0
- package/dist/esm/lib/helpers/skirt.js.map +1 -0
- package/dist/esm/lib/parse-quantized-mesh.js +85 -0
- package/dist/esm/lib/parse-quantized-mesh.js.map +1 -0
- package/dist/esm/lib/parse-terrain.js +151 -0
- package/dist/esm/lib/parse-terrain.js.map +1 -0
- package/dist/esm/lib/utils/version.js +2 -0
- package/dist/esm/lib/utils/version.js.map +1 -0
- package/dist/esm/quantized-mesh-loader.js +17 -0
- package/dist/esm/quantized-mesh-loader.js.map +1 -0
- package/dist/esm/terrain-loader.js +25 -0
- package/dist/esm/terrain-loader.js.map +1 -0
- package/dist/esm/workers/quantized-mesh-worker.js +4 -0
- package/dist/esm/workers/quantized-mesh-worker.js.map +1 -0
- package/dist/esm/workers/terrain-worker.js +4 -0
- package/dist/esm/workers/terrain-worker.js.map +1 -0
- package/dist/index.d.ts +27 -69
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -14
- package/dist/lib/decode-quantized-mesh.d.ts +1 -1
- package/dist/lib/decode-quantized-mesh.d.ts.map +1 -1
- package/dist/lib/decode-quantized-mesh.js +200 -241
- package/dist/lib/delatin/index.js +397 -443
- package/dist/lib/helpers/skirt.d.ts +1 -1
- package/dist/lib/helpers/skirt.d.ts.map +1 -1
- package/dist/lib/helpers/skirt.js +119 -91
- package/dist/lib/parse-quantized-mesh.d.ts +6 -24
- package/dist/lib/parse-quantized-mesh.d.ts.map +1 -1
- package/dist/lib/parse-quantized-mesh.js +94 -93
- package/dist/lib/parse-terrain.d.ts +28 -2
- package/dist/lib/parse-terrain.d.ts.map +1 -1
- package/dist/lib/parse-terrain.js +146 -172
- package/dist/lib/utils/version.js +7 -2
- package/dist/quantized-mesh-loader.d.ts +8 -17
- package/dist/quantized-mesh-loader.d.ts.map +1 -1
- package/dist/quantized-mesh-loader.js +20 -16
- package/dist/quantized-mesh-worker.js +146 -117
- package/dist/terrain-loader.d.ts +7 -27
- package/dist/terrain-loader.d.ts.map +1 -1
- package/dist/terrain-loader.js +28 -24
- package/dist/terrain-worker.js +146 -117
- package/dist/workers/quantized-mesh-worker.js +5 -4
- package/dist/workers/terrain-worker.js +5 -4
- package/package.json +9 -8
- package/src/index.ts +29 -13
- package/src/lib/helpers/skirt.ts +7 -7
- package/src/lib/parse-quantized-mesh.ts +47 -43
- package/src/lib/parse-terrain.ts +83 -89
- package/src/quantized-mesh-loader.ts +9 -4
- package/src/terrain-loader.ts +14 -11
- package/dist/bundle.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/decode-quantized-mesh.js.map +0 -1
- package/dist/lib/delatin/index.js.map +0 -1
- package/dist/lib/helpers/skirt.js.map +0 -1
- package/dist/lib/parse-quantized-mesh.js.map +0 -1
- package/dist/lib/parse-terrain.js.map +0 -1
- package/dist/lib/utils/version.js.map +0 -1
- package/dist/quantized-mesh-loader.js.map +0 -1
- package/dist/terrain-loader.js.map +0 -1
- package/dist/workers/quantized-mesh-worker.js.map +0 -1
- package/dist/workers/terrain-worker.js.map +0 -1
- package/src/workers/quantized-mesh-worker.js +0 -3
- package/src/workers/terrain-worker.js +0 -3
package/dist/bundle.js
CHANGED
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/
|
|
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/
|
|
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 =
|
|
326
|
+
let index = 0;
|
|
327
327
|
while (index < edges.length) {
|
|
328
|
-
if (edges[index][0] === edges[index
|
|
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
|
|
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] =
|
|
372
|
-
newTriangles[triangle1Offset + 2] =
|
|
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] =
|
|
375
|
-
newTriangles[triangle1Offset + 5] =
|
|
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
|
|
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
|
|
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
|
|
449
|
-
|
|
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
|
|
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
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
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:
|
|
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:
|
|
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
|
-
|
|
1149
|
-
_typecheckTerrainLoader: () => _typecheckTerrainLoader
|
|
1135
|
+
parseTerrain: () => parseTerrain
|
|
1150
1136
|
});
|
|
1151
|
-
|
|
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:
|
|
1156
|
+
parse: parseTerrain
|
|
1161
1157
|
};
|
|
1162
|
-
_typecheckTerrainLoader = TerrainLoader2;
|
|
1163
1158
|
QuantizedMeshLoader2 = {
|
|
1164
1159
|
...QuantizedMeshLoader,
|
|
1165
|
-
parseSync:
|
|
1166
|
-
parse: async (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 @@
|
|
|
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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"}
|