@deck.gl/core 9.3.0-alpha.6 → 9.3.0-beta.2
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 +125 -56
- package/dist/index.cjs +125 -60
- 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/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/shaderlib/picking/picking.d.ts +1 -2
- package/dist/shaderlib/picking/picking.d.ts.map +1 -1
- 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.min.js +84 -84
- package/package.json +2 -2
- package/src/lib/attribute/attribute.ts +70 -27
- package/src/lib/constants.ts +18 -12
- package/src/lib/layer.ts +4 -6
- 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/dist/index.cjs
CHANGED
|
@@ -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.2" : 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}`);
|
|
@@ -399,33 +399,33 @@ var COORDINATE_SYSTEM = {
|
|
|
399
399
|
/**
|
|
400
400
|
* `LNGLAT` if rendering into a geospatial viewport, `CARTESIAN` otherwise
|
|
401
401
|
*/
|
|
402
|
-
DEFAULT:
|
|
402
|
+
DEFAULT: "default",
|
|
403
403
|
/**
|
|
404
404
|
* Positions are interpreted as [longitude, latitude, elevation]
|
|
405
405
|
* longitude/latitude are in degrees, elevation is in meters.
|
|
406
406
|
* Dimensions are in meters.
|
|
407
407
|
*/
|
|
408
|
-
LNGLAT:
|
|
408
|
+
LNGLAT: "lnglat",
|
|
409
409
|
/**
|
|
410
410
|
* Positions are interpreted as [x, y, z] in meter offsets from the coordinate origin.
|
|
411
411
|
* Dimensions are in meters.
|
|
412
412
|
*/
|
|
413
|
-
METER_OFFSETS:
|
|
413
|
+
METER_OFFSETS: "meter-offsets",
|
|
414
414
|
/**
|
|
415
415
|
* Positions are interpreted as [deltaLng, deltaLat, elevation] from the coordinate origin.
|
|
416
416
|
* deltaLng/deltaLat are in degrees, elevation is in meters.
|
|
417
417
|
* Dimensions are in meters.
|
|
418
418
|
*/
|
|
419
|
-
LNGLAT_OFFSETS:
|
|
419
|
+
LNGLAT_OFFSETS: "lnglat-offsets",
|
|
420
420
|
/**
|
|
421
421
|
* Positions and dimensions are in the common units of the viewport.
|
|
422
422
|
*/
|
|
423
|
-
CARTESIAN:
|
|
423
|
+
CARTESIAN: "cartesian"
|
|
424
424
|
};
|
|
425
425
|
Object.defineProperty(COORDINATE_SYSTEM, "IDENTITY", {
|
|
426
426
|
get: () => {
|
|
427
427
|
log_default.deprecated("COORDINATE_SYSTEM.IDENTITY", "COORDINATE_SYSTEM.CARTESIAN")();
|
|
428
|
-
return
|
|
428
|
+
return COORDINATE_SYSTEM.CARTESIAN;
|
|
429
429
|
}
|
|
430
430
|
});
|
|
431
431
|
var PROJECTION_MODE = {
|
|
@@ -511,6 +511,20 @@ var VECTOR_TO_POINT_MATRIX = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0];
|
|
|
511
511
|
var IDENTITY_MATRIX = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
|
|
512
512
|
var DEFAULT_PIXELS_PER_UNIT2 = [0, 0, 0];
|
|
513
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
|
+
}
|
|
514
528
|
var getMemoizedViewportUniforms = memoize(calculateViewportUniforms);
|
|
515
529
|
function getOffsetOrigin(viewport, coordinateSystem, coordinateOrigin = DEFAULT_COORDINATE_ORIGIN) {
|
|
516
530
|
if (coordinateOrigin.length < 3) {
|
|
@@ -519,7 +533,7 @@ function getOffsetOrigin(viewport, coordinateSystem, coordinateOrigin = DEFAULT_
|
|
|
519
533
|
let shaderCoordinateOrigin = coordinateOrigin;
|
|
520
534
|
let geospatialOrigin;
|
|
521
535
|
let offsetMode = true;
|
|
522
|
-
if (coordinateSystem ===
|
|
536
|
+
if (coordinateSystem === "lnglat-offsets" || coordinateSystem === "meter-offsets") {
|
|
523
537
|
geospatialOrigin = coordinateOrigin;
|
|
524
538
|
} else {
|
|
525
539
|
geospatialOrigin = viewport.isGeospatial ? (
|
|
@@ -529,15 +543,15 @@ function getOffsetOrigin(viewport, coordinateSystem, coordinateOrigin = DEFAULT_
|
|
|
529
543
|
}
|
|
530
544
|
switch (viewport.projectionMode) {
|
|
531
545
|
case PROJECTION_MODE.WEB_MERCATOR:
|
|
532
|
-
if (coordinateSystem ===
|
|
546
|
+
if (coordinateSystem === "lnglat" || coordinateSystem === "cartesian") {
|
|
533
547
|
geospatialOrigin = [0, 0, 0];
|
|
534
548
|
offsetMode = false;
|
|
535
549
|
}
|
|
536
550
|
break;
|
|
537
551
|
case PROJECTION_MODE.WEB_MERCATOR_AUTO_OFFSET:
|
|
538
|
-
if (coordinateSystem ===
|
|
552
|
+
if (coordinateSystem === "lnglat") {
|
|
539
553
|
shaderCoordinateOrigin = geospatialOrigin;
|
|
540
|
-
} else if (coordinateSystem ===
|
|
554
|
+
} else if (coordinateSystem === "cartesian") {
|
|
541
555
|
shaderCoordinateOrigin = [
|
|
542
556
|
Math.fround(viewport.center[0]),
|
|
543
557
|
Math.fround(viewport.center[1]),
|
|
@@ -597,12 +611,12 @@ function getUniformsFromViewport({
|
|
|
597
611
|
devicePixelRatio = 1,
|
|
598
612
|
modelMatrix = null,
|
|
599
613
|
// Match Layer.defaultProps
|
|
600
|
-
coordinateSystem =
|
|
614
|
+
coordinateSystem = "default",
|
|
601
615
|
coordinateOrigin = DEFAULT_COORDINATE_ORIGIN,
|
|
602
616
|
autoWrapLongitude = false
|
|
603
617
|
}) {
|
|
604
|
-
if (coordinateSystem ===
|
|
605
|
-
coordinateSystem = viewport.isGeospatial ?
|
|
618
|
+
if (coordinateSystem === "default") {
|
|
619
|
+
coordinateSystem = viewport.isGeospatial ? "lnglat" : "cartesian";
|
|
606
620
|
}
|
|
607
621
|
const uniforms = getMemoizedViewportUniforms({
|
|
608
622
|
viewport,
|
|
@@ -624,7 +638,7 @@ function calculateViewportUniforms({ viewport, devicePixelRatio, coordinateSyste
|
|
|
624
638
|
const focalDistance = import_core2.vec4.transformMat4([], [0, 0, -viewport.focalDistance, 1], viewport.projectionMatrix)[3] || 1;
|
|
625
639
|
const uniforms = {
|
|
626
640
|
// Projection mode values
|
|
627
|
-
coordinateSystem,
|
|
641
|
+
coordinateSystem: getShaderCoordinateSystem(coordinateSystem),
|
|
628
642
|
projectionMode: viewport.projectionMode,
|
|
629
643
|
coordinateOrigin: shaderCoordinateOrigin,
|
|
630
644
|
commonOrigin: originCommon.slice(0, 3),
|
|
@@ -651,19 +665,19 @@ function calculateViewportUniforms({ viewport, devicePixelRatio, coordinateSyste
|
|
|
651
665
|
if (geospatialOrigin) {
|
|
652
666
|
const distanceScalesAtOrigin = viewport.getDistanceScales(geospatialOrigin);
|
|
653
667
|
switch (coordinateSystem) {
|
|
654
|
-
case
|
|
668
|
+
case "meter-offsets":
|
|
655
669
|
uniforms.commonUnitsPerWorldUnit = distanceScalesAtOrigin.unitsPerMeter;
|
|
656
670
|
uniforms.commonUnitsPerWorldUnit2 = distanceScalesAtOrigin.unitsPerMeter2;
|
|
657
671
|
break;
|
|
658
|
-
case
|
|
659
|
-
case
|
|
672
|
+
case "lnglat":
|
|
673
|
+
case "lnglat-offsets":
|
|
660
674
|
if (!viewport._pseudoMeters) {
|
|
661
675
|
uniforms.commonUnitsPerMeter = distanceScalesAtOrigin.unitsPerMeter;
|
|
662
676
|
}
|
|
663
677
|
uniforms.commonUnitsPerWorldUnit = distanceScalesAtOrigin.unitsPerDegree;
|
|
664
678
|
uniforms.commonUnitsPerWorldUnit2 = distanceScalesAtOrigin.unitsPerDegree2;
|
|
665
679
|
break;
|
|
666
|
-
case
|
|
680
|
+
case "cartesian":
|
|
667
681
|
uniforms.commonUnitsPerWorldUnit = [1, 1, distanceScalesAtOrigin.unitsPerMeter[2]];
|
|
668
682
|
uniforms.commonUnitsPerWorldUnit2 = [0, 0, distanceScalesAtOrigin.unitsPerMeter2[2]];
|
|
669
683
|
break;
|
|
@@ -675,7 +689,14 @@ function calculateViewportUniforms({ viewport, devicePixelRatio, coordinateSyste
|
|
|
675
689
|
}
|
|
676
690
|
|
|
677
691
|
// dist/shaderlib/project/project.wgsl.js
|
|
678
|
-
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("");
|
|
679
700
|
var PROJECTION_MODE_WGSL_CONSTANTS = Object.keys(PROJECTION_MODE).map((key) => `const PROJECTION_MODE_${key}: i32 = ${PROJECTION_MODE[key]};`).join("");
|
|
680
701
|
var UNIT_WGSL_CONSTANTS = Object.keys(UNIT).map((key) => `const UNIT_${key.toUpperCase()}: i32 = ${UNIT[key]};`).join("");
|
|
681
702
|
var projectWGSLHeader = (
|
|
@@ -969,7 +990,14 @@ fn project_pixel_size_vec2(pixels: vec2<f32>) -> vec2<f32> {
|
|
|
969
990
|
);
|
|
970
991
|
|
|
971
992
|
// dist/shaderlib/project/project.glsl.js
|
|
972
|
-
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("");
|
|
973
1001
|
var PROJECTION_MODE_GLSL_CONSTANTS = Object.keys(PROJECTION_MODE).map((key) => `const int PROJECTION_MODE_${key} = ${PROJECTION_MODE[key]};`).join("");
|
|
974
1002
|
var UNIT_GLSL_CONSTANTS = Object.keys(UNIT).map((key) => `const int UNIT_${key.toUpperCase()} = ${UNIT[key]};`).join("");
|
|
975
1003
|
var projectGLSL = (
|
|
@@ -1465,7 +1493,7 @@ function createShadowUniforms(opts) {
|
|
|
1465
1493
|
for (let i = 0; i < opts.shadowMatrices.length; i++) {
|
|
1466
1494
|
const viewProjectionMatrix = viewProjectionMatrices[i];
|
|
1467
1495
|
const viewProjectionMatrixCentered = viewProjectionMatrix.clone().translate(new import_core3.Vector3(projectProps.viewport.center).negate());
|
|
1468
|
-
if (projectUniforms.coordinateSystem ===
|
|
1496
|
+
if (projectUniforms.coordinateSystem === getShaderCoordinateSystem("lnglat") && projectUniforms.projectionMode === PROJECTION_MODE.WEB_MERCATOR) {
|
|
1469
1497
|
viewProjectionMatrices[i] = viewProjectionMatrixCentered;
|
|
1470
1498
|
projectCenters[i] = center;
|
|
1471
1499
|
} else {
|
|
@@ -1526,7 +1554,7 @@ var sourceWGSL = (
|
|
|
1526
1554
|
isActive: f32,
|
|
1527
1555
|
isAttribute: f32,
|
|
1528
1556
|
isHighlightActive: f32,
|
|
1529
|
-
|
|
1557
|
+
useByteColors: f32,
|
|
1530
1558
|
highlightedObjectColor: vec3<f32>,
|
|
1531
1559
|
highlightColor: vec4<f32>,
|
|
1532
1560
|
};
|
|
@@ -1534,11 +1562,11 @@ var sourceWGSL = (
|
|
|
1534
1562
|
@group(0) @binding(auto) var<uniform> picking: pickingUniforms;
|
|
1535
1563
|
|
|
1536
1564
|
fn picking_normalizeColor(color: vec3<f32>) -> vec3<f32> {
|
|
1537
|
-
return select(color / 255.0,
|
|
1565
|
+
return select(color, color / 255.0, picking.useByteColors > 0.5);
|
|
1538
1566
|
}
|
|
1539
1567
|
|
|
1540
1568
|
fn picking_normalizeColor4(color: vec4<f32>) -> vec4<f32> {
|
|
1541
|
-
return select(color / 255.0,
|
|
1569
|
+
return select(color, color / 255.0, picking.useByteColors > 0.5);
|
|
1542
1570
|
}
|
|
1543
1571
|
|
|
1544
1572
|
fn picking_isColorZero(color: vec3<f32>) -> bool {
|
|
@@ -1553,7 +1581,7 @@ fn picking_isColorValid(color: vec3<f32>) -> bool {
|
|
|
1553
1581
|
var picking_default = {
|
|
1554
1582
|
...import_shadertools2.picking,
|
|
1555
1583
|
source: sourceWGSL,
|
|
1556
|
-
defaultUniforms: { ...import_shadertools2.picking.defaultUniforms,
|
|
1584
|
+
defaultUniforms: { ...import_shadertools2.picking.defaultUniforms, useByteColors: true },
|
|
1557
1585
|
inject: {
|
|
1558
1586
|
"vs:DECKGL_FILTER_GL_POSITION": `
|
|
1559
1587
|
// for picking depth values
|
|
@@ -2844,11 +2872,13 @@ function lngLatZToWorldPosition(lngLatZ, viewport, offsetMode = false) {
|
|
|
2844
2872
|
function normalizeParameters(opts) {
|
|
2845
2873
|
const { viewport, modelMatrix, coordinateOrigin } = opts;
|
|
2846
2874
|
let { coordinateSystem, fromCoordinateSystem, fromCoordinateOrigin } = opts;
|
|
2847
|
-
if (coordinateSystem ===
|
|
2848
|
-
coordinateSystem = viewport.isGeospatial ?
|
|
2875
|
+
if (coordinateSystem === "default") {
|
|
2876
|
+
coordinateSystem = viewport.isGeospatial ? "lnglat" : "cartesian";
|
|
2849
2877
|
}
|
|
2850
2878
|
if (fromCoordinateSystem === void 0) {
|
|
2851
2879
|
fromCoordinateSystem = coordinateSystem;
|
|
2880
|
+
} else if (fromCoordinateSystem === "default") {
|
|
2881
|
+
fromCoordinateSystem = viewport.isGeospatial ? "lnglat" : "cartesian";
|
|
2852
2882
|
}
|
|
2853
2883
|
if (fromCoordinateOrigin === void 0) {
|
|
2854
2884
|
fromCoordinateOrigin = coordinateOrigin;
|
|
@@ -2868,15 +2898,24 @@ function getWorldPosition(position, { viewport, modelMatrix, coordinateSystem, c
|
|
|
2868
2898
|
[x, y, z] = import_core9.vec4.transformMat4([], [x, y, z, 1], modelMatrix);
|
|
2869
2899
|
}
|
|
2870
2900
|
switch (coordinateSystem) {
|
|
2871
|
-
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":
|
|
2872
2910
|
return lngLatZToWorldPosition([x, y, z], viewport, offsetMode);
|
|
2873
|
-
case
|
|
2911
|
+
case "lnglat-offsets":
|
|
2874
2912
|
return lngLatZToWorldPosition([x + coordinateOrigin[0], y + coordinateOrigin[1], z + (coordinateOrigin[2] || 0)], viewport, offsetMode);
|
|
2875
|
-
case
|
|
2913
|
+
case "meter-offsets":
|
|
2876
2914
|
return lngLatZToWorldPosition((0, import_web_mercator4.addMetersToLngLat)(coordinateOrigin, [x, y, z]), viewport, offsetMode);
|
|
2877
|
-
case
|
|
2878
|
-
default:
|
|
2915
|
+
case "cartesian":
|
|
2879
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}`);
|
|
2880
2919
|
}
|
|
2881
2920
|
}
|
|
2882
2921
|
function projectPosition(position, params) {
|
|
@@ -7414,7 +7453,7 @@ TooltipWidget.defaultProps = {
|
|
|
7414
7453
|
// dist/lib/deck.js
|
|
7415
7454
|
var import_core17 = require("@luma.gl/core");
|
|
7416
7455
|
var import_webgl = require("@luma.gl/webgl");
|
|
7417
|
-
var
|
|
7456
|
+
var import_constants10 = require("@luma.gl/webgl/constants");
|
|
7418
7457
|
var import_engine3 = require("@luma.gl/engine");
|
|
7419
7458
|
var import_engine4 = require("@luma.gl/engine");
|
|
7420
7459
|
var import_stats2 = require("@probe.gl/stats");
|
|
@@ -9027,10 +9066,14 @@ var Attribute = class extends DataColumn {
|
|
|
9027
9066
|
}
|
|
9028
9067
|
if (!this.value) {
|
|
9029
9068
|
} else if (this.constant || !this.buffer || this.buffer.byteLength < this.value.byteLength + this.byteOffset) {
|
|
9030
|
-
this.
|
|
9031
|
-
|
|
9032
|
-
|
|
9033
|
-
|
|
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
|
+
}
|
|
9034
9077
|
this.constant = false;
|
|
9035
9078
|
} else {
|
|
9036
9079
|
for (const [startRow, endRow] of updateRanges) {
|
|
@@ -9050,17 +9093,13 @@ var Attribute = class extends DataColumn {
|
|
|
9050
9093
|
// Use generic value
|
|
9051
9094
|
// Returns true if successful
|
|
9052
9095
|
setConstantValue(context, value) {
|
|
9053
|
-
|
|
9054
|
-
if (isWebGPU || value === void 0 || typeof value === "function") {
|
|
9055
|
-
if (isWebGPU && typeof value !== "function") {
|
|
9056
|
-
const normalisedValue = this._normalizeValue(value, [], 0);
|
|
9057
|
-
if (!this._areValuesEqual(normalisedValue, this.value)) {
|
|
9058
|
-
this.setNeedsUpdate("WebGPU constant updated");
|
|
9059
|
-
}
|
|
9060
|
-
}
|
|
9096
|
+
if (value === void 0 || typeof value === "function") {
|
|
9061
9097
|
return false;
|
|
9062
9098
|
}
|
|
9063
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
|
+
}
|
|
9064
9103
|
const hasChanged = this.setData({ constant: true, value: transformedValue });
|
|
9065
9104
|
if (hasChanged) {
|
|
9066
9105
|
this.setNeedsRedraw();
|
|
@@ -9068,6 +9107,41 @@ var Attribute = class extends DataColumn {
|
|
|
9068
9107
|
this.clearNeedsUpdate();
|
|
9069
9108
|
return true;
|
|
9070
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
|
+
}
|
|
9071
9145
|
// Use external buffer
|
|
9072
9146
|
// Returns true if successful
|
|
9073
9147
|
// eslint-disable-next-line max-statements
|
|
@@ -9164,18 +9238,10 @@ var Attribute = class extends DataColumn {
|
|
|
9164
9238
|
}
|
|
9165
9239
|
/* eslint-disable max-depth, max-statements */
|
|
9166
9240
|
_autoUpdater(attribute, { data, startRow, endRow, props, numInstances }) {
|
|
9167
|
-
if (attribute.constant) {
|
|
9168
|
-
if (this.context.device.type !== "webgpu") {
|
|
9169
|
-
return;
|
|
9170
|
-
}
|
|
9171
|
-
}
|
|
9172
9241
|
const { settings, state, value, size, startIndices } = attribute;
|
|
9173
9242
|
const { accessor, transform } = settings;
|
|
9174
|
-
|
|
9243
|
+
const accessorFunc = state.binaryAccessor || // @ts-ignore
|
|
9175
9244
|
(typeof accessor === "function" ? accessor : props[accessor]);
|
|
9176
|
-
if (typeof accessorFunc !== "function" && typeof accessor === "string") {
|
|
9177
|
-
accessorFunc = () => props[accessor];
|
|
9178
|
-
}
|
|
9179
9245
|
assert(typeof accessorFunc === "function", `accessor "${accessor}" is not a function`);
|
|
9180
9246
|
let i = attribute.getVertexOffset(startRow);
|
|
9181
9247
|
const { iterable, objectInfo } = createIterable(data, startRow, endRow);
|
|
@@ -9250,7 +9316,7 @@ var Attribute = class extends DataColumn {
|
|
|
9250
9316
|
// dist/transitions/gpu-interpolation-transition.js
|
|
9251
9317
|
var import_engine5 = require("@luma.gl/engine");
|
|
9252
9318
|
var import_shadertools5 = require("@luma.gl/shadertools");
|
|
9253
|
-
var
|
|
9319
|
+
var import_constants13 = require("@luma.gl/webgl/constants");
|
|
9254
9320
|
|
|
9255
9321
|
// dist/utils/array-utils.js
|
|
9256
9322
|
function padArrayChunk(options) {
|
|
@@ -9317,7 +9383,7 @@ function padArray({ source: source3, target, size, getData, sourceStartIndices,
|
|
|
9317
9383
|
}
|
|
9318
9384
|
|
|
9319
9385
|
// dist/transitions/gpu-transition-utils.js
|
|
9320
|
-
var
|
|
9386
|
+
var import_constants12 = require("@luma.gl/webgl/constants");
|
|
9321
9387
|
function cloneAttribute(attribute) {
|
|
9322
9388
|
const { device, settings, value } = attribute;
|
|
9323
9389
|
const newAttribute = new Attribute(device, settings);
|
|
@@ -11242,7 +11308,7 @@ var defaultProps2 = {
|
|
|
11242
11308
|
onDragStart: { type: "function", value: null, optional: true },
|
|
11243
11309
|
onDrag: { type: "function", value: null, optional: true },
|
|
11244
11310
|
onDragEnd: { type: "function", value: null, optional: true },
|
|
11245
|
-
coordinateSystem:
|
|
11311
|
+
coordinateSystem: "default",
|
|
11246
11312
|
coordinateOrigin: { type: "array", value: [0, 0, 0], compare: true },
|
|
11247
11313
|
modelMatrix: { type: "array", value: null, compare: true, optional: true },
|
|
11248
11314
|
wrapLongitude: false,
|
|
@@ -11385,7 +11451,7 @@ var Layer = class extends component_default {
|
|
|
11385
11451
|
}
|
|
11386
11452
|
use64bitPositions() {
|
|
11387
11453
|
const { coordinateSystem } = this.props;
|
|
11388
|
-
return coordinateSystem ===
|
|
11454
|
+
return coordinateSystem === "default" || coordinateSystem === "lnglat" || coordinateSystem === "cartesian";
|
|
11389
11455
|
}
|
|
11390
11456
|
// Event handling
|
|
11391
11457
|
onHover(info, pickingEvent) {
|
|
@@ -11767,7 +11833,6 @@ var Layer = class extends component_default {
|
|
|
11767
11833
|
/* (Internal) Called by layer manager when a new layer is found */
|
|
11768
11834
|
_initialize() {
|
|
11769
11835
|
assert(!this.internalState);
|
|
11770
|
-
assert(Number.isFinite(this.props.coordinateSystem));
|
|
11771
11836
|
debug(TRACE_INITIALIZE, this);
|
|
11772
11837
|
const attributeManager = this._getAttributeManager();
|
|
11773
11838
|
if (attributeManager) {
|