@deck.gl/core 9.3.0-alpha.5 → 9.3.0-beta.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.
- package/dist/dist.dev.js +876 -315
- package/dist/index.cjs +145 -67
- package/dist/index.cjs.map +3 -3
- package/dist/lib/attribute/attribute.d.ts +2 -0
- package/dist/lib/attribute/attribute.d.ts.map +1 -1
- package/dist/lib/attribute/attribute.js +57 -27
- package/dist/lib/attribute/attribute.js.map +1 -1
- package/dist/lib/constants.d.ts +11 -6
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +8 -9
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/deck.d.ts.map +1 -1
- package/dist/lib/deck.js +1 -1
- package/dist/lib/deck.js.map +1 -1
- package/dist/lib/init.js +2 -2
- package/dist/lib/init.js.map +1 -1
- package/dist/lib/layer.d.ts.map +1 -1
- package/dist/lib/layer.js +4 -6
- package/dist/lib/layer.js.map +1 -1
- package/dist/passes/layers-pass.d.ts.map +1 -1
- package/dist/passes/layers-pass.js +13 -0
- package/dist/passes/layers-pass.js.map +1 -1
- package/dist/shaderlib/index.d.ts +1 -2
- package/dist/shaderlib/index.d.ts.map +1 -1
- package/dist/shaderlib/index.js +1 -2
- package/dist/shaderlib/index.js.map +1 -1
- package/dist/shaderlib/picking/picking.d.ts +4 -4
- package/dist/shaderlib/picking/picking.js +4 -4
- package/dist/shaderlib/picking/picking.js.map +1 -1
- package/dist/shaderlib/project/project-functions.d.ts.map +1 -1
- package/dist/shaderlib/project/project-functions.js +19 -10
- package/dist/shaderlib/project/project-functions.js.map +1 -1
- package/dist/shaderlib/project/project.glsl.d.ts.map +1 -1
- package/dist/shaderlib/project/project.glsl.js +10 -5
- package/dist/shaderlib/project/project.glsl.js.map +1 -1
- package/dist/shaderlib/project/project.wgsl.d.ts.map +1 -1
- package/dist/shaderlib/project/project.wgsl.js +10 -5
- package/dist/shaderlib/project/project.wgsl.js.map +1 -1
- package/dist/shaderlib/project/viewport-uniforms.d.ts +1 -0
- package/dist/shaderlib/project/viewport-uniforms.d.ts.map +1 -1
- package/dist/shaderlib/project/viewport-uniforms.js +28 -17
- package/dist/shaderlib/project/viewport-uniforms.js.map +1 -1
- package/dist/shaderlib/shadow/shadow.d.ts +1 -1
- package/dist/shaderlib/shadow/shadow.d.ts.map +1 -1
- package/dist/shaderlib/shadow/shadow.js +3 -2
- package/dist/shaderlib/shadow/shadow.js.map +1 -1
- package/dist/utils/texture.d.ts.map +1 -1
- package/dist/utils/texture.js +3 -0
- package/dist/utils/texture.js.map +1 -1
- package/dist.min.js +162 -99
- package/package.json +8 -8
- package/src/lib/attribute/attribute.ts +70 -27
- package/src/lib/constants.ts +18 -12
- package/src/lib/deck.ts +1 -1
- package/src/lib/layer.ts +4 -6
- package/src/passes/layers-pass.ts +21 -1
- package/src/shaderlib/index.ts +1 -3
- package/src/shaderlib/picking/picking.ts +4 -4
- package/src/shaderlib/project/project-functions.ts +20 -10
- package/src/shaderlib/project/project.glsl.ts +15 -6
- package/src/shaderlib/project/project.wgsl.ts +15 -6
- package/src/shaderlib/project/viewport-uniforms.ts +30 -21
- package/src/shaderlib/shadow/shadow.ts +6 -2
- package/src/utils/texture.ts +2 -0
package/dist/index.cjs
CHANGED
|
@@ -82,9 +82,9 @@ __export(dist_exports, {
|
|
|
82
82
|
createIterable: () => createIterable,
|
|
83
83
|
fp64LowPart: () => fp64LowPart,
|
|
84
84
|
getShaderAssembler: () => getShaderAssembler,
|
|
85
|
-
gouraudMaterial: () =>
|
|
85
|
+
gouraudMaterial: () => import_shadertools3.gouraudMaterial,
|
|
86
86
|
log: () => log_default,
|
|
87
|
-
phongMaterial: () =>
|
|
87
|
+
phongMaterial: () => import_shadertools3.phongMaterial,
|
|
88
88
|
picking: () => picking_default,
|
|
89
89
|
project: () => project_default,
|
|
90
90
|
project32: () => project32_default,
|
|
@@ -230,7 +230,7 @@ var json_loader_default = {
|
|
|
230
230
|
|
|
231
231
|
// dist/lib/init.js
|
|
232
232
|
function checkVersion() {
|
|
233
|
-
const version = true ? "9.3.0-
|
|
233
|
+
const version = true ? "9.3.0-beta.1" : globalThis.DECK_VERSION || "untranspiled source";
|
|
234
234
|
const existingVersion = globalThis.deck && globalThis.deck.VERSION;
|
|
235
235
|
if (existingVersion && existingVersion !== version) {
|
|
236
236
|
throw new Error(`deck.gl - multiple versions detected: ${existingVersion} vs ${version}`);
|
|
@@ -257,7 +257,6 @@ var VERSION = checkVersion();
|
|
|
257
257
|
|
|
258
258
|
// dist/shaderlib/index.js
|
|
259
259
|
var import_shadertools3 = require("@luma.gl/shadertools");
|
|
260
|
-
var import_shadertools4 = require("@luma.gl/shadertools");
|
|
261
260
|
|
|
262
261
|
// dist/shaderlib/misc/layer-uniforms.js
|
|
263
262
|
var uniformBlockWGSL = (
|
|
@@ -400,33 +399,33 @@ var COORDINATE_SYSTEM = {
|
|
|
400
399
|
/**
|
|
401
400
|
* `LNGLAT` if rendering into a geospatial viewport, `CARTESIAN` otherwise
|
|
402
401
|
*/
|
|
403
|
-
DEFAULT:
|
|
402
|
+
DEFAULT: "default",
|
|
404
403
|
/**
|
|
405
404
|
* Positions are interpreted as [longitude, latitude, elevation]
|
|
406
405
|
* longitude/latitude are in degrees, elevation is in meters.
|
|
407
406
|
* Dimensions are in meters.
|
|
408
407
|
*/
|
|
409
|
-
LNGLAT:
|
|
408
|
+
LNGLAT: "lnglat",
|
|
410
409
|
/**
|
|
411
410
|
* Positions are interpreted as [x, y, z] in meter offsets from the coordinate origin.
|
|
412
411
|
* Dimensions are in meters.
|
|
413
412
|
*/
|
|
414
|
-
METER_OFFSETS:
|
|
413
|
+
METER_OFFSETS: "meter-offsets",
|
|
415
414
|
/**
|
|
416
415
|
* Positions are interpreted as [deltaLng, deltaLat, elevation] from the coordinate origin.
|
|
417
416
|
* deltaLng/deltaLat are in degrees, elevation is in meters.
|
|
418
417
|
* Dimensions are in meters.
|
|
419
418
|
*/
|
|
420
|
-
LNGLAT_OFFSETS:
|
|
419
|
+
LNGLAT_OFFSETS: "lnglat-offsets",
|
|
421
420
|
/**
|
|
422
421
|
* Positions and dimensions are in the common units of the viewport.
|
|
423
422
|
*/
|
|
424
|
-
CARTESIAN:
|
|
423
|
+
CARTESIAN: "cartesian"
|
|
425
424
|
};
|
|
426
425
|
Object.defineProperty(COORDINATE_SYSTEM, "IDENTITY", {
|
|
427
426
|
get: () => {
|
|
428
427
|
log_default.deprecated("COORDINATE_SYSTEM.IDENTITY", "COORDINATE_SYSTEM.CARTESIAN")();
|
|
429
|
-
return
|
|
428
|
+
return COORDINATE_SYSTEM.CARTESIAN;
|
|
430
429
|
}
|
|
431
430
|
});
|
|
432
431
|
var PROJECTION_MODE = {
|
|
@@ -512,6 +511,20 @@ var VECTOR_TO_POINT_MATRIX = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0];
|
|
|
512
511
|
var IDENTITY_MATRIX = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
|
|
513
512
|
var DEFAULT_PIXELS_PER_UNIT2 = [0, 0, 0];
|
|
514
513
|
var DEFAULT_COORDINATE_ORIGIN = [0, 0, 0];
|
|
514
|
+
var COORDINATE_SYSTEM_NUMBERS = {
|
|
515
|
+
default: -1,
|
|
516
|
+
cartesian: 0,
|
|
517
|
+
lnglat: 1,
|
|
518
|
+
"meter-offsets": 2,
|
|
519
|
+
"lnglat-offsets": 3
|
|
520
|
+
};
|
|
521
|
+
function getShaderCoordinateSystem(coordinateSystem) {
|
|
522
|
+
const shaderCoordinateSystem = COORDINATE_SYSTEM_NUMBERS[coordinateSystem];
|
|
523
|
+
if (shaderCoordinateSystem === void 0) {
|
|
524
|
+
throw new Error(`Invalid coordinateSystem: ${coordinateSystem}`);
|
|
525
|
+
}
|
|
526
|
+
return shaderCoordinateSystem;
|
|
527
|
+
}
|
|
515
528
|
var getMemoizedViewportUniforms = memoize(calculateViewportUniforms);
|
|
516
529
|
function getOffsetOrigin(viewport, coordinateSystem, coordinateOrigin = DEFAULT_COORDINATE_ORIGIN) {
|
|
517
530
|
if (coordinateOrigin.length < 3) {
|
|
@@ -520,7 +533,7 @@ function getOffsetOrigin(viewport, coordinateSystem, coordinateOrigin = DEFAULT_
|
|
|
520
533
|
let shaderCoordinateOrigin = coordinateOrigin;
|
|
521
534
|
let geospatialOrigin;
|
|
522
535
|
let offsetMode = true;
|
|
523
|
-
if (coordinateSystem ===
|
|
536
|
+
if (coordinateSystem === "lnglat-offsets" || coordinateSystem === "meter-offsets") {
|
|
524
537
|
geospatialOrigin = coordinateOrigin;
|
|
525
538
|
} else {
|
|
526
539
|
geospatialOrigin = viewport.isGeospatial ? (
|
|
@@ -530,15 +543,15 @@ function getOffsetOrigin(viewport, coordinateSystem, coordinateOrigin = DEFAULT_
|
|
|
530
543
|
}
|
|
531
544
|
switch (viewport.projectionMode) {
|
|
532
545
|
case PROJECTION_MODE.WEB_MERCATOR:
|
|
533
|
-
if (coordinateSystem ===
|
|
546
|
+
if (coordinateSystem === "lnglat" || coordinateSystem === "cartesian") {
|
|
534
547
|
geospatialOrigin = [0, 0, 0];
|
|
535
548
|
offsetMode = false;
|
|
536
549
|
}
|
|
537
550
|
break;
|
|
538
551
|
case PROJECTION_MODE.WEB_MERCATOR_AUTO_OFFSET:
|
|
539
|
-
if (coordinateSystem ===
|
|
552
|
+
if (coordinateSystem === "lnglat") {
|
|
540
553
|
shaderCoordinateOrigin = geospatialOrigin;
|
|
541
|
-
} else if (coordinateSystem ===
|
|
554
|
+
} else if (coordinateSystem === "cartesian") {
|
|
542
555
|
shaderCoordinateOrigin = [
|
|
543
556
|
Math.fround(viewport.center[0]),
|
|
544
557
|
Math.fround(viewport.center[1]),
|
|
@@ -598,12 +611,12 @@ function getUniformsFromViewport({
|
|
|
598
611
|
devicePixelRatio = 1,
|
|
599
612
|
modelMatrix = null,
|
|
600
613
|
// Match Layer.defaultProps
|
|
601
|
-
coordinateSystem =
|
|
614
|
+
coordinateSystem = "default",
|
|
602
615
|
coordinateOrigin = DEFAULT_COORDINATE_ORIGIN,
|
|
603
616
|
autoWrapLongitude = false
|
|
604
617
|
}) {
|
|
605
|
-
if (coordinateSystem ===
|
|
606
|
-
coordinateSystem = viewport.isGeospatial ?
|
|
618
|
+
if (coordinateSystem === "default") {
|
|
619
|
+
coordinateSystem = viewport.isGeospatial ? "lnglat" : "cartesian";
|
|
607
620
|
}
|
|
608
621
|
const uniforms = getMemoizedViewportUniforms({
|
|
609
622
|
viewport,
|
|
@@ -625,7 +638,7 @@ function calculateViewportUniforms({ viewport, devicePixelRatio, coordinateSyste
|
|
|
625
638
|
const focalDistance = import_core2.vec4.transformMat4([], [0, 0, -viewport.focalDistance, 1], viewport.projectionMatrix)[3] || 1;
|
|
626
639
|
const uniforms = {
|
|
627
640
|
// Projection mode values
|
|
628
|
-
coordinateSystem,
|
|
641
|
+
coordinateSystem: getShaderCoordinateSystem(coordinateSystem),
|
|
629
642
|
projectionMode: viewport.projectionMode,
|
|
630
643
|
coordinateOrigin: shaderCoordinateOrigin,
|
|
631
644
|
commonOrigin: originCommon.slice(0, 3),
|
|
@@ -652,19 +665,19 @@ function calculateViewportUniforms({ viewport, devicePixelRatio, coordinateSyste
|
|
|
652
665
|
if (geospatialOrigin) {
|
|
653
666
|
const distanceScalesAtOrigin = viewport.getDistanceScales(geospatialOrigin);
|
|
654
667
|
switch (coordinateSystem) {
|
|
655
|
-
case
|
|
668
|
+
case "meter-offsets":
|
|
656
669
|
uniforms.commonUnitsPerWorldUnit = distanceScalesAtOrigin.unitsPerMeter;
|
|
657
670
|
uniforms.commonUnitsPerWorldUnit2 = distanceScalesAtOrigin.unitsPerMeter2;
|
|
658
671
|
break;
|
|
659
|
-
case
|
|
660
|
-
case
|
|
672
|
+
case "lnglat":
|
|
673
|
+
case "lnglat-offsets":
|
|
661
674
|
if (!viewport._pseudoMeters) {
|
|
662
675
|
uniforms.commonUnitsPerMeter = distanceScalesAtOrigin.unitsPerMeter;
|
|
663
676
|
}
|
|
664
677
|
uniforms.commonUnitsPerWorldUnit = distanceScalesAtOrigin.unitsPerDegree;
|
|
665
678
|
uniforms.commonUnitsPerWorldUnit2 = distanceScalesAtOrigin.unitsPerDegree2;
|
|
666
679
|
break;
|
|
667
|
-
case
|
|
680
|
+
case "cartesian":
|
|
668
681
|
uniforms.commonUnitsPerWorldUnit = [1, 1, distanceScalesAtOrigin.unitsPerMeter[2]];
|
|
669
682
|
uniforms.commonUnitsPerWorldUnit2 = [0, 0, distanceScalesAtOrigin.unitsPerMeter2[2]];
|
|
670
683
|
break;
|
|
@@ -676,7 +689,14 @@ function calculateViewportUniforms({ viewport, devicePixelRatio, coordinateSyste
|
|
|
676
689
|
}
|
|
677
690
|
|
|
678
691
|
// dist/shaderlib/project/project.wgsl.js
|
|
679
|
-
var
|
|
692
|
+
var SHADER_COORDINATE_SYSTEMS = [
|
|
693
|
+
"default",
|
|
694
|
+
"lnglat",
|
|
695
|
+
"meter-offsets",
|
|
696
|
+
"lnglat-offsets",
|
|
697
|
+
"cartesian"
|
|
698
|
+
];
|
|
699
|
+
var COORDINATE_SYSTEM_WGSL_CONSTANTS = SHADER_COORDINATE_SYSTEMS.map((coordinateSystem) => `const COORDINATE_SYSTEM_${coordinateSystem.toUpperCase().replaceAll("-", "_")}: i32 = ${getShaderCoordinateSystem(coordinateSystem)};`).join("");
|
|
680
700
|
var PROJECTION_MODE_WGSL_CONSTANTS = Object.keys(PROJECTION_MODE).map((key) => `const PROJECTION_MODE_${key}: i32 = ${PROJECTION_MODE[key]};`).join("");
|
|
681
701
|
var UNIT_WGSL_CONSTANTS = Object.keys(UNIT).map((key) => `const UNIT_${key.toUpperCase()}: i32 = ${UNIT[key]};`).join("");
|
|
682
702
|
var projectWGSLHeader = (
|
|
@@ -970,7 +990,14 @@ fn project_pixel_size_vec2(pixels: vec2<f32>) -> vec2<f32> {
|
|
|
970
990
|
);
|
|
971
991
|
|
|
972
992
|
// dist/shaderlib/project/project.glsl.js
|
|
973
|
-
var
|
|
993
|
+
var SHADER_COORDINATE_SYSTEMS2 = [
|
|
994
|
+
"default",
|
|
995
|
+
"lnglat",
|
|
996
|
+
"meter-offsets",
|
|
997
|
+
"lnglat-offsets",
|
|
998
|
+
"cartesian"
|
|
999
|
+
];
|
|
1000
|
+
var COORDINATE_SYSTEM_GLSL_CONSTANTS = SHADER_COORDINATE_SYSTEMS2.map((coordinateSystem) => `const int COORDINATE_SYSTEM_${coordinateSystem.toUpperCase().replaceAll("-", "_")} = ${getShaderCoordinateSystem(coordinateSystem)};`).join("");
|
|
974
1001
|
var PROJECTION_MODE_GLSL_CONSTANTS = Object.keys(PROJECTION_MODE).map((key) => `const int PROJECTION_MODE_${key} = ${PROJECTION_MODE[key]};`).join("");
|
|
975
1002
|
var UNIT_GLSL_CONSTANTS = Object.keys(UNIT).map((key) => `const int UNIT_${key.toUpperCase()} = ${UNIT[key]};`).join("");
|
|
976
1003
|
var projectGLSL = (
|
|
@@ -1466,7 +1493,7 @@ function createShadowUniforms(opts) {
|
|
|
1466
1493
|
for (let i = 0; i < opts.shadowMatrices.length; i++) {
|
|
1467
1494
|
const viewProjectionMatrix = viewProjectionMatrices[i];
|
|
1468
1495
|
const viewProjectionMatrixCentered = viewProjectionMatrix.clone().translate(new import_core3.Vector3(projectProps.viewport.center).negate());
|
|
1469
|
-
if (projectUniforms.coordinateSystem ===
|
|
1496
|
+
if (projectUniforms.coordinateSystem === getShaderCoordinateSystem("lnglat") && projectUniforms.projectionMode === PROJECTION_MODE.WEB_MERCATOR) {
|
|
1470
1497
|
viewProjectionMatrices[i] = viewProjectionMatrixCentered;
|
|
1471
1498
|
projectCenters[i] = center;
|
|
1472
1499
|
} else {
|
|
@@ -1527,7 +1554,7 @@ var sourceWGSL = (
|
|
|
1527
1554
|
isActive: f32,
|
|
1528
1555
|
isAttribute: f32,
|
|
1529
1556
|
isHighlightActive: f32,
|
|
1530
|
-
|
|
1557
|
+
useByteColors: f32,
|
|
1531
1558
|
highlightedObjectColor: vec3<f32>,
|
|
1532
1559
|
highlightColor: vec4<f32>,
|
|
1533
1560
|
};
|
|
@@ -1535,11 +1562,11 @@ var sourceWGSL = (
|
|
|
1535
1562
|
@group(0) @binding(auto) var<uniform> picking: pickingUniforms;
|
|
1536
1563
|
|
|
1537
1564
|
fn picking_normalizeColor(color: vec3<f32>) -> vec3<f32> {
|
|
1538
|
-
return select(color / 255.0,
|
|
1565
|
+
return select(color, color / 255.0, picking.useByteColors > 0.5);
|
|
1539
1566
|
}
|
|
1540
1567
|
|
|
1541
1568
|
fn picking_normalizeColor4(color: vec4<f32>) -> vec4<f32> {
|
|
1542
|
-
return select(color / 255.0,
|
|
1569
|
+
return select(color, color / 255.0, picking.useByteColors > 0.5);
|
|
1543
1570
|
}
|
|
1544
1571
|
|
|
1545
1572
|
fn picking_isColorZero(color: vec3<f32>) -> bool {
|
|
@@ -1554,7 +1581,7 @@ fn picking_isColorValid(color: vec3<f32>) -> bool {
|
|
|
1554
1581
|
var picking_default = {
|
|
1555
1582
|
...import_shadertools2.picking,
|
|
1556
1583
|
source: sourceWGSL,
|
|
1557
|
-
defaultUniforms: { ...import_shadertools2.picking.defaultUniforms,
|
|
1584
|
+
defaultUniforms: { ...import_shadertools2.picking.defaultUniforms, useByteColors: true },
|
|
1558
1585
|
inject: {
|
|
1559
1586
|
"vs:DECKGL_FILTER_GL_POSITION": `
|
|
1560
1587
|
// for picking depth values
|
|
@@ -1664,6 +1691,16 @@ var Pass = class {
|
|
|
1664
1691
|
};
|
|
1665
1692
|
|
|
1666
1693
|
// dist/passes/layers-pass.js
|
|
1694
|
+
var WEBGPU_DEFAULT_DRAW_PARAMETERS = {
|
|
1695
|
+
depthWriteEnabled: true,
|
|
1696
|
+
depthCompare: "less-equal",
|
|
1697
|
+
blendColorOperation: "add",
|
|
1698
|
+
blendColorSrcFactor: "src-alpha",
|
|
1699
|
+
blendColorDstFactor: "one",
|
|
1700
|
+
blendAlphaOperation: "add",
|
|
1701
|
+
blendAlphaSrcFactor: "one-minus-dst-alpha",
|
|
1702
|
+
blendAlphaDstFactor: "one"
|
|
1703
|
+
};
|
|
1667
1704
|
var LayersPass = class extends Pass {
|
|
1668
1705
|
constructor() {
|
|
1669
1706
|
super(...arguments);
|
|
@@ -1752,7 +1789,9 @@ var LayersPass = class extends Pass {
|
|
|
1752
1789
|
layerParam.shouldDrawLayer = true;
|
|
1753
1790
|
layerParam.layerRenderIndex = indexResolver(layer, shouldDrawLayer);
|
|
1754
1791
|
layerParam.shaderModuleProps = this._getShaderModuleProps(layer, effects, pass, shaderModuleProps);
|
|
1792
|
+
const defaultParams = layer.context.device.type === "webgpu" ? WEBGPU_DEFAULT_DRAW_PARAMETERS : null;
|
|
1755
1793
|
layerParam.layerParameters = {
|
|
1794
|
+
...defaultParams,
|
|
1756
1795
|
...(_a = layer.context.deck) == null ? void 0 : _a.props.parameters,
|
|
1757
1796
|
...this.getLayerParameters(layer, layerIndex, viewport)
|
|
1758
1797
|
};
|
|
@@ -2833,11 +2872,13 @@ function lngLatZToWorldPosition(lngLatZ, viewport, offsetMode = false) {
|
|
|
2833
2872
|
function normalizeParameters(opts) {
|
|
2834
2873
|
const { viewport, modelMatrix, coordinateOrigin } = opts;
|
|
2835
2874
|
let { coordinateSystem, fromCoordinateSystem, fromCoordinateOrigin } = opts;
|
|
2836
|
-
if (coordinateSystem ===
|
|
2837
|
-
coordinateSystem = viewport.isGeospatial ?
|
|
2875
|
+
if (coordinateSystem === "default") {
|
|
2876
|
+
coordinateSystem = viewport.isGeospatial ? "lnglat" : "cartesian";
|
|
2838
2877
|
}
|
|
2839
2878
|
if (fromCoordinateSystem === void 0) {
|
|
2840
2879
|
fromCoordinateSystem = coordinateSystem;
|
|
2880
|
+
} else if (fromCoordinateSystem === "default") {
|
|
2881
|
+
fromCoordinateSystem = viewport.isGeospatial ? "lnglat" : "cartesian";
|
|
2841
2882
|
}
|
|
2842
2883
|
if (fromCoordinateOrigin === void 0) {
|
|
2843
2884
|
fromCoordinateOrigin = coordinateOrigin;
|
|
@@ -2857,15 +2898,24 @@ function getWorldPosition(position, { viewport, modelMatrix, coordinateSystem, c
|
|
|
2857
2898
|
[x, y, z] = import_core9.vec4.transformMat4([], [x, y, z, 1], modelMatrix);
|
|
2858
2899
|
}
|
|
2859
2900
|
switch (coordinateSystem) {
|
|
2860
|
-
case
|
|
2901
|
+
case "default":
|
|
2902
|
+
return getWorldPosition(position, {
|
|
2903
|
+
viewport,
|
|
2904
|
+
modelMatrix,
|
|
2905
|
+
coordinateSystem: viewport.isGeospatial ? "lnglat" : "cartesian",
|
|
2906
|
+
coordinateOrigin,
|
|
2907
|
+
offsetMode
|
|
2908
|
+
});
|
|
2909
|
+
case "lnglat":
|
|
2861
2910
|
return lngLatZToWorldPosition([x, y, z], viewport, offsetMode);
|
|
2862
|
-
case
|
|
2911
|
+
case "lnglat-offsets":
|
|
2863
2912
|
return lngLatZToWorldPosition([x + coordinateOrigin[0], y + coordinateOrigin[1], z + (coordinateOrigin[2] || 0)], viewport, offsetMode);
|
|
2864
|
-
case
|
|
2913
|
+
case "meter-offsets":
|
|
2865
2914
|
return lngLatZToWorldPosition((0, import_web_mercator4.addMetersToLngLat)(coordinateOrigin, [x, y, z]), viewport, offsetMode);
|
|
2866
|
-
case
|
|
2867
|
-
default:
|
|
2915
|
+
case "cartesian":
|
|
2868
2916
|
return viewport.isGeospatial ? [x + coordinateOrigin[0], y + coordinateOrigin[1], z + coordinateOrigin[2]] : viewport.projectPosition([x, y, z]);
|
|
2917
|
+
default:
|
|
2918
|
+
throw new Error(`Invalid coordinateSystem: ${coordinateSystem}`);
|
|
2869
2919
|
}
|
|
2870
2920
|
}
|
|
2871
2921
|
function projectPosition(position, params) {
|
|
@@ -2971,7 +3021,7 @@ var SunLight = class extends DirectionalLight {
|
|
|
2971
3021
|
};
|
|
2972
3022
|
|
|
2973
3023
|
// dist/effects/post-process-effect.js
|
|
2974
|
-
var
|
|
3024
|
+
var import_shadertools4 = require("@luma.gl/shadertools");
|
|
2975
3025
|
|
|
2976
3026
|
// dist/passes/screen-pass.js
|
|
2977
3027
|
var import_engine = require("@luma.gl/engine");
|
|
@@ -3050,7 +3100,7 @@ var PostProcessEffect = class {
|
|
|
3050
3100
|
constructor(module2, props) {
|
|
3051
3101
|
this.id = `${module2.name}-pass`;
|
|
3052
3102
|
this.props = props;
|
|
3053
|
-
(0,
|
|
3103
|
+
(0, import_shadertools4.initializeShaderModule)(module2);
|
|
3054
3104
|
this.module = module2;
|
|
3055
3105
|
}
|
|
3056
3106
|
setup({ device }) {
|
|
@@ -7403,9 +7453,9 @@ TooltipWidget.defaultProps = {
|
|
|
7403
7453
|
// dist/lib/deck.js
|
|
7404
7454
|
var import_core17 = require("@luma.gl/core");
|
|
7405
7455
|
var import_webgl = require("@luma.gl/webgl");
|
|
7456
|
+
var import_constants10 = require("@luma.gl/webgl/constants");
|
|
7406
7457
|
var import_engine3 = require("@luma.gl/engine");
|
|
7407
7458
|
var import_engine4 = require("@luma.gl/engine");
|
|
7408
|
-
var import_constants11 = require("@luma.gl/webgl/constants");
|
|
7409
7459
|
var import_stats2 = require("@probe.gl/stats");
|
|
7410
7460
|
var import_mjolnir2 = require("mjolnir.js");
|
|
7411
7461
|
function noop2() {
|
|
@@ -9016,10 +9066,14 @@ var Attribute = class extends DataColumn {
|
|
|
9016
9066
|
}
|
|
9017
9067
|
if (!this.value) {
|
|
9018
9068
|
} else if (this.constant || !this.buffer || this.buffer.byteLength < this.value.byteLength + this.byteOffset) {
|
|
9019
|
-
this.
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9069
|
+
if (this.constant) {
|
|
9070
|
+
this.setConstantValue(context, this.value);
|
|
9071
|
+
} else {
|
|
9072
|
+
this.setData({
|
|
9073
|
+
value: this.value,
|
|
9074
|
+
constant: this.constant
|
|
9075
|
+
});
|
|
9076
|
+
}
|
|
9023
9077
|
this.constant = false;
|
|
9024
9078
|
} else {
|
|
9025
9079
|
for (const [startRow, endRow] of updateRanges) {
|
|
@@ -9039,17 +9093,13 @@ var Attribute = class extends DataColumn {
|
|
|
9039
9093
|
// Use generic value
|
|
9040
9094
|
// Returns true if successful
|
|
9041
9095
|
setConstantValue(context, value) {
|
|
9042
|
-
|
|
9043
|
-
if (isWebGPU || value === void 0 || typeof value === "function") {
|
|
9044
|
-
if (isWebGPU && typeof value !== "function") {
|
|
9045
|
-
const normalisedValue = this._normalizeValue(value, [], 0);
|
|
9046
|
-
if (!this._areValuesEqual(normalisedValue, this.value)) {
|
|
9047
|
-
this.setNeedsUpdate("WebGPU constant updated");
|
|
9048
|
-
}
|
|
9049
|
-
}
|
|
9096
|
+
if (value === void 0 || typeof value === "function") {
|
|
9050
9097
|
return false;
|
|
9051
9098
|
}
|
|
9052
9099
|
const transformedValue = this.settings.transform && context ? this.settings.transform.call(context, value) : value;
|
|
9100
|
+
if (this.device.type === "webgpu") {
|
|
9101
|
+
return this.setConstantBufferValue(transformedValue, this.numInstances);
|
|
9102
|
+
}
|
|
9053
9103
|
const hasChanged = this.setData({ constant: true, value: transformedValue });
|
|
9054
9104
|
if (hasChanged) {
|
|
9055
9105
|
this.setNeedsRedraw();
|
|
@@ -9057,6 +9107,41 @@ var Attribute = class extends DataColumn {
|
|
|
9057
9107
|
this.clearNeedsUpdate();
|
|
9058
9108
|
return true;
|
|
9059
9109
|
}
|
|
9110
|
+
setConstantBufferValue(value, numInstances) {
|
|
9111
|
+
const ArrayType = this.settings.defaultType;
|
|
9112
|
+
const constantValue = this._normalizeValue(value, new ArrayType(this.size), 0);
|
|
9113
|
+
if (this._hasConstantBufferValue(constantValue, numInstances)) {
|
|
9114
|
+
this.constant = false;
|
|
9115
|
+
this.clearNeedsUpdate();
|
|
9116
|
+
return false;
|
|
9117
|
+
}
|
|
9118
|
+
const repeatedValue = new ArrayType(Math.max(numInstances, 1) * this.size);
|
|
9119
|
+
for (let i = 0; i < repeatedValue.length; i += this.size) {
|
|
9120
|
+
repeatedValue.set(constantValue, i);
|
|
9121
|
+
}
|
|
9122
|
+
const hasChanged = this.setData({ value: repeatedValue });
|
|
9123
|
+
this.constant = false;
|
|
9124
|
+
this.clearNeedsUpdate();
|
|
9125
|
+
if (hasChanged) {
|
|
9126
|
+
this.setNeedsRedraw();
|
|
9127
|
+
}
|
|
9128
|
+
return hasChanged;
|
|
9129
|
+
}
|
|
9130
|
+
_hasConstantBufferValue(value, numInstances) {
|
|
9131
|
+
const currentValue = this.value;
|
|
9132
|
+
const expectedLength = Math.max(numInstances, 1) * this.size;
|
|
9133
|
+
if (!ArrayBuffer.isView(currentValue) || currentValue.length !== expectedLength || currentValue.length % this.size !== 0) {
|
|
9134
|
+
return false;
|
|
9135
|
+
}
|
|
9136
|
+
for (let i = 0; i < currentValue.length; i += this.size) {
|
|
9137
|
+
for (let j = 0; j < this.size; j++) {
|
|
9138
|
+
if (currentValue[i + j] !== value[j]) {
|
|
9139
|
+
return false;
|
|
9140
|
+
}
|
|
9141
|
+
}
|
|
9142
|
+
}
|
|
9143
|
+
return true;
|
|
9144
|
+
}
|
|
9060
9145
|
// Use external buffer
|
|
9061
9146
|
// Returns true if successful
|
|
9062
9147
|
// eslint-disable-next-line max-statements
|
|
@@ -9153,18 +9238,10 @@ var Attribute = class extends DataColumn {
|
|
|
9153
9238
|
}
|
|
9154
9239
|
/* eslint-disable max-depth, max-statements */
|
|
9155
9240
|
_autoUpdater(attribute, { data, startRow, endRow, props, numInstances }) {
|
|
9156
|
-
if (attribute.constant) {
|
|
9157
|
-
if (this.context.device.type !== "webgpu") {
|
|
9158
|
-
return;
|
|
9159
|
-
}
|
|
9160
|
-
}
|
|
9161
9241
|
const { settings, state, value, size, startIndices } = attribute;
|
|
9162
9242
|
const { accessor, transform } = settings;
|
|
9163
|
-
|
|
9243
|
+
const accessorFunc = state.binaryAccessor || // @ts-ignore
|
|
9164
9244
|
(typeof accessor === "function" ? accessor : props[accessor]);
|
|
9165
|
-
if (typeof accessorFunc !== "function" && typeof accessor === "string") {
|
|
9166
|
-
accessorFunc = () => props[accessor];
|
|
9167
|
-
}
|
|
9168
9245
|
assert(typeof accessorFunc === "function", `accessor "${accessor}" is not a function`);
|
|
9169
9246
|
let i = attribute.getVertexOffset(startRow);
|
|
9170
9247
|
const { iterable, objectInfo } = createIterable(data, startRow, endRow);
|
|
@@ -9238,8 +9315,8 @@ var Attribute = class extends DataColumn {
|
|
|
9238
9315
|
|
|
9239
9316
|
// dist/transitions/gpu-interpolation-transition.js
|
|
9240
9317
|
var import_engine5 = require("@luma.gl/engine");
|
|
9241
|
-
var
|
|
9242
|
-
var
|
|
9318
|
+
var import_shadertools5 = require("@luma.gl/shadertools");
|
|
9319
|
+
var import_constants13 = require("@luma.gl/webgl/constants");
|
|
9243
9320
|
|
|
9244
9321
|
// dist/utils/array-utils.js
|
|
9245
9322
|
function padArrayChunk(options) {
|
|
@@ -9306,7 +9383,7 @@ function padArray({ source: source3, target, size, getData, sourceStartIndices,
|
|
|
9306
9383
|
}
|
|
9307
9384
|
|
|
9308
9385
|
// dist/transitions/gpu-transition-utils.js
|
|
9309
|
-
var
|
|
9386
|
+
var import_constants12 = require("@luma.gl/webgl/constants");
|
|
9310
9387
|
function cloneAttribute(attribute) {
|
|
9311
9388
|
const { device, settings, value } = attribute;
|
|
9312
9389
|
const newAttribute = new Attribute(device, settings);
|
|
@@ -9602,7 +9679,7 @@ function getTransform(device, attribute) {
|
|
|
9602
9679
|
}
|
|
9603
9680
|
],
|
|
9604
9681
|
// @ts-expect-error fp64 module only sets ONE uniform via defaultUniforms
|
|
9605
|
-
modules: [
|
|
9682
|
+
modules: [import_shadertools5.fp64arithmetic, interpolationUniforms],
|
|
9606
9683
|
defines: {
|
|
9607
9684
|
// @ts-expect-error TODO fix luma type
|
|
9608
9685
|
ATTRIBUTE_TYPE: attributeType,
|
|
@@ -10544,6 +10621,8 @@ function createTexture(owner, device, image, sampler) {
|
|
|
10544
10621
|
});
|
|
10545
10622
|
if (device.type === "webgl") {
|
|
10546
10623
|
texture.generateMipmapsWebGL();
|
|
10624
|
+
} else if (device.type === "webgpu") {
|
|
10625
|
+
device.generateMipmapsWebGPU(texture);
|
|
10547
10626
|
}
|
|
10548
10627
|
internalTextures[texture.id] = owner;
|
|
10549
10628
|
return texture;
|
|
@@ -11229,7 +11308,7 @@ var defaultProps2 = {
|
|
|
11229
11308
|
onDragStart: { type: "function", value: null, optional: true },
|
|
11230
11309
|
onDrag: { type: "function", value: null, optional: true },
|
|
11231
11310
|
onDragEnd: { type: "function", value: null, optional: true },
|
|
11232
|
-
coordinateSystem:
|
|
11311
|
+
coordinateSystem: "default",
|
|
11233
11312
|
coordinateOrigin: { type: "array", value: [0, 0, 0], compare: true },
|
|
11234
11313
|
modelMatrix: { type: "array", value: null, compare: true, optional: true },
|
|
11235
11314
|
wrapLongitude: false,
|
|
@@ -11372,7 +11451,7 @@ var Layer = class extends component_default {
|
|
|
11372
11451
|
}
|
|
11373
11452
|
use64bitPositions() {
|
|
11374
11453
|
const { coordinateSystem } = this.props;
|
|
11375
|
-
return coordinateSystem ===
|
|
11454
|
+
return coordinateSystem === "default" || coordinateSystem === "lnglat" || coordinateSystem === "cartesian";
|
|
11376
11455
|
}
|
|
11377
11456
|
// Event handling
|
|
11378
11457
|
onHover(info, pickingEvent) {
|
|
@@ -11754,7 +11833,6 @@ var Layer = class extends component_default {
|
|
|
11754
11833
|
/* (Internal) Called by layer manager when a new layer is found */
|
|
11755
11834
|
_initialize() {
|
|
11756
11835
|
assert(!this.internalState);
|
|
11757
|
-
assert(Number.isFinite(this.props.coordinateSystem));
|
|
11758
11836
|
debug(TRACE_INITIALIZE, this);
|
|
11759
11837
|
const attributeManager = this._getAttributeManager();
|
|
11760
11838
|
if (attributeManager) {
|