@deck.gl/aggregation-layers 9.4.0-alpha.1 → 9.4.0-alpha.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/common/aggregator/gpu-aggregator/webgl-aggregation-transform.d.ts.map +1 -1
- package/dist/common/aggregator/gpu-aggregator/webgl-aggregation-transform.js +1 -3
- package/dist/common/aggregator/gpu-aggregator/webgl-aggregation-transform.js.map +1 -1
- package/dist/common/aggregator/gpu-aggregator/webgl-bin-sorter.js +0 -1
- package/dist/common/aggregator/gpu-aggregator/webgl-bin-sorter.js.map +1 -1
- package/dist/dist.dev.js +499 -25
- package/dist/grid-layer/grid-cell-layer.d.ts.map +1 -1
- package/dist/grid-layer/grid-cell-layer.js +2 -1
- package/dist/grid-layer/grid-cell-layer.js.map +1 -1
- package/dist/heatmap-layer/heatmap-layer-uniforms.d.ts +2 -0
- package/dist/heatmap-layer/heatmap-layer-uniforms.d.ts.map +1 -1
- package/dist/heatmap-layer/heatmap-layer-uniforms.js +19 -0
- package/dist/heatmap-layer/heatmap-layer-uniforms.js.map +1 -1
- package/dist/heatmap-layer/heatmap-layer.d.ts.map +1 -1
- package/dist/heatmap-layer/heatmap-layer.js +59 -12
- package/dist/heatmap-layer/heatmap-layer.js.map +1 -1
- package/dist/heatmap-layer/max.wgsl.d.ts +3 -0
- package/dist/heatmap-layer/max.wgsl.d.ts.map +1 -0
- package/dist/heatmap-layer/max.wgsl.js +48 -0
- package/dist/heatmap-layer/max.wgsl.js.map +1 -0
- package/dist/heatmap-layer/triangle-layer-uniforms.d.ts +1 -0
- package/dist/heatmap-layer/triangle-layer-uniforms.d.ts.map +1 -1
- package/dist/heatmap-layer/triangle-layer-uniforms.js +16 -0
- package/dist/heatmap-layer/triangle-layer-uniforms.js.map +1 -1
- package/dist/heatmap-layer/triangle-layer.d.ts.map +1 -1
- package/dist/heatmap-layer/triangle-layer.js +3 -2
- package/dist/heatmap-layer/triangle-layer.js.map +1 -1
- package/dist/heatmap-layer/triangle-layer.wgsl.d.ts +3 -0
- package/dist/heatmap-layer/triangle-layer.wgsl.d.ts.map +1 -0
- package/dist/heatmap-layer/triangle-layer.wgsl.js +65 -0
- package/dist/heatmap-layer/triangle-layer.wgsl.js.map +1 -0
- package/dist/heatmap-layer/weights.wgsl.d.ts +3 -0
- package/dist/heatmap-layer/weights.wgsl.d.ts.map +1 -0
- package/dist/heatmap-layer/weights.wgsl.js +64 -0
- package/dist/heatmap-layer/weights.wgsl.js.map +1 -0
- package/dist/hexagon-layer/hexagon-cell-layer.d.ts.map +1 -1
- package/dist/hexagon-layer/hexagon-cell-layer.js +2 -1
- package/dist/hexagon-layer/hexagon-cell-layer.js.map +1 -1
- package/dist/hexagon-layer/hexagon-cell-layer.wgsl.d.ts +3 -0
- package/dist/hexagon-layer/hexagon-cell-layer.wgsl.d.ts.map +1 -0
- package/dist/hexagon-layer/hexagon-cell-layer.wgsl.js +120 -0
- package/dist/hexagon-layer/hexagon-cell-layer.wgsl.js.map +1 -0
- package/dist/hexagon-layer/hexagon-layer-uniforms.d.ts +1 -0
- package/dist/hexagon-layer/hexagon-layer-uniforms.d.ts.map +1 -1
- package/dist/hexagon-layer/hexagon-layer-uniforms.js +13 -0
- package/dist/hexagon-layer/hexagon-layer-uniforms.js.map +1 -1
- package/dist/index.cjs +499 -25
- package/dist/index.cjs.map +4 -4
- package/dist/screen-grid-layer/screen-grid-cell-layer.d.ts +1 -6
- package/dist/screen-grid-layer/screen-grid-cell-layer.d.ts.map +1 -1
- package/dist/screen-grid-layer/screen-grid-cell-layer.js +3 -2
- package/dist/screen-grid-layer/screen-grid-cell-layer.js.map +1 -1
- package/dist/screen-grid-layer/screen-grid-cell-layer.wgsl.d.ts +3 -0
- package/dist/screen-grid-layer/screen-grid-cell-layer.wgsl.d.ts.map +1 -0
- package/dist/screen-grid-layer/screen-grid-cell-layer.wgsl.js +76 -0
- package/dist/screen-grid-layer/screen-grid-cell-layer.wgsl.js.map +1 -0
- package/dist/screen-grid-layer/screen-grid-layer-uniforms.d.ts +1 -0
- package/dist/screen-grid-layer/screen-grid-layer-uniforms.d.ts.map +1 -1
- package/dist/screen-grid-layer/screen-grid-layer-uniforms.js +12 -0
- package/dist/screen-grid-layer/screen-grid-layer-uniforms.js.map +1 -1
- package/dist.min.js +426 -35
- package/package.json +9 -5
- package/src/common/aggregator/gpu-aggregator/webgl-aggregation-transform.ts +1 -3
- package/src/common/aggregator/gpu-aggregator/webgl-bin-sorter.ts +0 -1
- package/src/grid-layer/grid-cell-layer.ts +2 -1
- package/src/heatmap-layer/heatmap-layer-uniforms.ts +20 -0
- package/src/heatmap-layer/heatmap-layer.ts +67 -13
- package/src/heatmap-layer/max.wgsl.ts +48 -0
- package/src/heatmap-layer/triangle-layer-uniforms.ts +17 -0
- package/src/heatmap-layer/triangle-layer.ts +3 -2
- package/src/heatmap-layer/triangle-layer.wgsl.ts +65 -0
- package/src/heatmap-layer/weights.wgsl.ts +64 -0
- package/src/hexagon-layer/hexagon-cell-layer.ts +2 -1
- package/src/hexagon-layer/hexagon-cell-layer.wgsl.ts +120 -0
- package/src/hexagon-layer/hexagon-layer-uniforms.ts +14 -0
- package/src/screen-grid-layer/screen-grid-cell-layer.ts +4 -4
- package/src/screen-grid-layer/screen-grid-cell-layer.wgsl.ts +76 -0
- package/src/screen-grid-layer/screen-grid-layer-uniforms.ts +13 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
export default /* wgsl */ `\
|
|
5
|
+
struct WeightAttributes {
|
|
6
|
+
@builtin(vertex_index) vertexIndex: u32,
|
|
7
|
+
@location(0) instancePositions: vec3<f32>,
|
|
8
|
+
@location(1) instancePositions64Low: vec3<f32>,
|
|
9
|
+
@location(2) instanceWeights: f32,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
struct WeightVaryings {
|
|
13
|
+
@builtin(position) position: vec4<f32>,
|
|
14
|
+
@location(0) pointCoordinates: vec2<f32>,
|
|
15
|
+
@location(1) weights: vec4<f32>,
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const WEIGHT_QUAD_POSITIONS = array<vec2<f32>, 6>(
|
|
19
|
+
vec2<f32>(-1.0, -1.0),
|
|
20
|
+
vec2<f32>(1.0, -1.0),
|
|
21
|
+
vec2<f32>(-1.0, 1.0),
|
|
22
|
+
vec2<f32>(-1.0, 1.0),
|
|
23
|
+
vec2<f32>(1.0, -1.0),
|
|
24
|
+
vec2<f32>(1.0, 1.0)
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
@vertex
|
|
28
|
+
fn vertexMain(attributes: WeightAttributes) -> WeightVaryings {
|
|
29
|
+
var output: WeightVaryings;
|
|
30
|
+
let commonPosition = project_position_vec3_f64(
|
|
31
|
+
attributes.instancePositions,
|
|
32
|
+
attributes.instancePositions64Low
|
|
33
|
+
);
|
|
34
|
+
let clipPosition =
|
|
35
|
+
(commonPosition.xy - weight.commonBounds.xy) /
|
|
36
|
+
(weight.commonBounds.zw - weight.commonBounds.xy) * 2.0 - vec2<f32>(1.0);
|
|
37
|
+
let radiusTexels =
|
|
38
|
+
project_pixel_size_float(weight.radiusPixels) * weight.textureWidth /
|
|
39
|
+
(weight.commonBounds.z - weight.commonBounds.x);
|
|
40
|
+
let offset = WEIGHT_QUAD_POSITIONS[attributes.vertexIndex];
|
|
41
|
+
|
|
42
|
+
output.position = vec4<f32>(
|
|
43
|
+
clipPosition + offset * radiusTexels * 2.0 / weight.textureWidth,
|
|
44
|
+
0.0,
|
|
45
|
+
1.0
|
|
46
|
+
);
|
|
47
|
+
output.pointCoordinates = (offset + vec2<f32>(1.0)) * 0.5;
|
|
48
|
+
output.weights = vec4<f32>(attributes.instanceWeights * weight.weightsScale, 0.0, 0.0, 1.0);
|
|
49
|
+
return output;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@fragment
|
|
53
|
+
fn fragmentMain(varyings: WeightVaryings) -> @location(0) vec4<f32> {
|
|
54
|
+
let distanceFromCenter = length(varyings.pointCoordinates - vec2<f32>(0.5));
|
|
55
|
+
if (distanceFromCenter > 0.5) {
|
|
56
|
+
discard;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
let gaussian = exp(-pow(2.0 * distanceFromCenter, 2.0) / 0.05555) /
|
|
60
|
+
(1.77245385 * 0.166666);
|
|
61
|
+
return varyings.weights * gaussian;
|
|
62
|
+
}
|
|
63
|
+
`;
|
|
64
|
+
//# sourceMappingURL=weights.wgsl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weights.wgsl.js","sourceRoot":"","sources":["../../src/heatmap-layer/weights.wgsl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,eAAe,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hexagon-cell-layer.d.ts","sourceRoot":"","sources":["../../src/hexagon-layer/hexagon-cell-layer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"hexagon-cell-layer.d.ts","sourceRoot":"","sources":["../../src/hexagon-layer/hexagon-cell-layer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAK5C,OAAO,KAAK,EAAC,SAAS,EAAC,2BAAwB;AAE/C,2CAA2C;AAC3C,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5C,WAAW,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,WAAW,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/C,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,cAAc,EAAE,SAAS,CAAC;IAC1B,eAAe,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5C,eAAe,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IACnD,cAAc,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,gBAAgB,CAAC,WAAW,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,WAAW,CACpF,IAAI,EACJ,WAAW,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAC/C;IACC,MAAM,CAAC,SAAS,SAAsB;IAEtC,KAAK,EAAG,WAAW,CAAC,OAAO,CAAC,GAAG;QAC7B,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IAEF,UAAU;IAMV,eAAe;IA6Bf,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAoB1C,aAAa,CAAC,OAAO,KAAA;IAMrB,IAAI,CAAC,EAAC,QAAQ,EAAC;;KAAA;CAwChB"}
|
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { ColumnLayer } from '@deck.gl/layers';
|
|
5
5
|
import { createColorRangeTexture, updateColorRangeTexture } from "../common/utils/color-utils.js";
|
|
6
|
+
import source from "./hexagon-cell-layer.wgsl.js";
|
|
6
7
|
import vs from "./hexagon-cell-layer-vertex.glsl.js";
|
|
7
8
|
import { hexagonUniforms } from "./hexagon-layer-uniforms.js";
|
|
8
9
|
class HexagonCellLayer extends ColumnLayer {
|
|
9
10
|
getShaders() {
|
|
10
11
|
const shaders = super.getShaders();
|
|
11
12
|
shaders.modules.push(hexagonUniforms);
|
|
12
|
-
return { ...shaders, vs };
|
|
13
|
+
return { ...shaders, source, vs };
|
|
13
14
|
}
|
|
14
15
|
initializeState() {
|
|
15
16
|
super.initializeState();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hexagon-cell-layer.js","sourceRoot":"","sources":["../../src/hexagon-layer/hexagon-cell-layer.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,uBAAuB,EAAE,uBAAuB,EAAC,uCAAoC;AAC7F,OAAO,EAAE,4CAAyC;AAClD,OAAO,EAAe,eAAe,EAAC,oCAAiC;AAevE,MAAqB,gBAA8C,SAAQ,WAG1E;IAOC,UAAU;QACR,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtC,OAAO,EAAC,GAAG,OAAO,EAAE,EAAE,EAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"hexagon-cell-layer.js","sourceRoot":"","sources":["../../src/hexagon-layer/hexagon-cell-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: "const HEXBIN_DISTANCE: vec2<f32> = vec2<f32>(1.7320508, 1.5);\n\nstruct Attributes {\n @builtin(instance_index) instanceIndex: u32,\n @location(0) positions: vec3<f32>,\n @location(1) normals: vec3<f32>,\n @location(2) instancePositions: vec2<f32>,\n @location(3) instanceColorValues: f32,\n @location(4) instanceElevationValues: f32,\n};\n\nstruct Varyings {\n @builtin(position) position: vec4<f32>,\n @location(0) color: vec4<f32>,\n @location(1) pickingColor: vec3<f32>,\n};\n\nfn hexbinCentroid(binId: vec2<f32>, radius: f32) -> vec2<f32> {\n var adjustedBinId = binId;\n adjustedBinId.x += fract(adjustedBinId.y * 0.5);\n return adjustedBinId * HEXBIN_DISTANCE * radius;\n}\n\nfn interpolate(value: f32, domain: vec2<f32>, range: vec2<f32>) -> f32 {\n let ratio = clamp((value - domain.x) / (domain.y - domain.x), 0.0, 1.0);\n return mix(range.x, range.y, ratio);\n}\n\nfn sampleColorRange(value: f32, domain: vec2<f32>) -> vec4<f32> {\n let ratio = (value - domain.x) / (domain.y - domain.x);\n return textureSampleLevel(colorRange, colorRangeSampler, vec2<f32>(ratio, 0.5), 0.0);\n}\n\n@vertex\nfn vertexMain(attributes: Attributes) -> Varyings {\n var output: Varyings;\n geometry.pickingColor = picking_getPickingColorFromIndex(attributes.instanceIndex);\n output.pickingColor = geometry.pickingColor;\n\n if (\n attributes.instanceColorValues != attributes.instanceColorValues ||\n attributes.instanceColorValues < hexagon.colorDomain.z ||\n attributes.instanceColorValues > hexagon.colorDomain.w ||\n attributes.instanceElevationValues < hexagon.elevationDomain.z ||\n attributes.instanceElevationValues > hexagon.elevationDomain.w\n ) {\n output.position = vec4<f32>(0.0);\n output.color = vec4<f32>(0.0);\n return output;\n }\n\n var commonPosition =\n hexbinCentroid(attributes.instancePositions, column.radius) +\n (hexagon.originCommon - project.commonOrigin.xy);\n commonPosition += attributes.positions.xy * column.radius * column.coverage;\n geometry.position = vec4<f32>(commonPosition, 0.0, 1.0);\n geometry.normal = project_normal(attributes.normals);\n\n if (column.extruded > 0.5) {\n var elevation = interpolate(\n attributes.instanceElevationValues,\n hexagon.elevationDomain.xy,\n hexagon.elevationRange\n );\n elevation = project_size_float(elevation);\n geometry.position.z = (attributes.positions.z + 1.0) / 2.0 * elevation;\n }\n\n output.position = project_common_position_to_clipspace(geometry.position);\n var colorValue = sampleColorRange(attributes.instanceColorValues, hexagon.colorDomain.xy);\n if (column.extruded > 0.5) {\n colorValue = vec4<f32>(\n lighting_getLightColor2(\n colorValue.rgb,\n project.cameraPosition,\n geometry.position.xyz,\n geometry.normal\n ),\n colorValue.a\n );\n }\n output.color = vec4<f32>(colorValue.rgb, colorValue.a * layer.opacity);\n return output;\n}\n\n@fragment\nfn fragmentMain(varyings: Varyings) -> @location(0) vec4<f32> {\n if (picking.isActive > 0.5) {\n if (!picking_isColorValid(varyings.pickingColor)) {\n discard;\n }\n return vec4<f32>(varyings.pickingColor, 1.0);\n }\n\n var color = varyings.color;\n if (picking.isHighlightActive > 0.5) {\n let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n if (picking_isColorZero(abs(varyings.pickingColor - highlightedObjectColor))) {\n let highLightAlpha = picking.highlightColor.a;\n let blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);\n if (blendedAlpha > 0.0) {\n let highLightRatio = highLightAlpha / blendedAlpha;\n color = vec4<f32>(\n mix(color.rgb, picking.highlightColor.rgb, highLightRatio),\n blendedAlpha\n );\n } else {\n color = vec4<f32>(color.rgb, 0.0);\n }\n }\n }\n\n return deckgl_premultiplied_alpha(color);\n}\n";
|
|
2
|
+
export default _default;
|
|
3
|
+
//# sourceMappingURL=hexagon-cell-layer.wgsl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hexagon-cell-layer.wgsl.d.ts","sourceRoot":"","sources":["../../src/hexagon-layer/hexagon-cell-layer.wgsl.ts"],"names":[],"mappings":";AAIA,wBAmHE"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
export default /* wgsl */ `\
|
|
5
|
+
const HEXBIN_DISTANCE: vec2<f32> = vec2<f32>(1.7320508, 1.5);
|
|
6
|
+
|
|
7
|
+
struct Attributes {
|
|
8
|
+
@builtin(instance_index) instanceIndex: u32,
|
|
9
|
+
@location(0) positions: vec3<f32>,
|
|
10
|
+
@location(1) normals: vec3<f32>,
|
|
11
|
+
@location(2) instancePositions: vec2<f32>,
|
|
12
|
+
@location(3) instanceColorValues: f32,
|
|
13
|
+
@location(4) instanceElevationValues: f32,
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
struct Varyings {
|
|
17
|
+
@builtin(position) position: vec4<f32>,
|
|
18
|
+
@location(0) color: vec4<f32>,
|
|
19
|
+
@location(1) pickingColor: vec3<f32>,
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
fn hexbinCentroid(binId: vec2<f32>, radius: f32) -> vec2<f32> {
|
|
23
|
+
var adjustedBinId = binId;
|
|
24
|
+
adjustedBinId.x += fract(adjustedBinId.y * 0.5);
|
|
25
|
+
return adjustedBinId * HEXBIN_DISTANCE * radius;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
fn interpolate(value: f32, domain: vec2<f32>, range: vec2<f32>) -> f32 {
|
|
29
|
+
let ratio = clamp((value - domain.x) / (domain.y - domain.x), 0.0, 1.0);
|
|
30
|
+
return mix(range.x, range.y, ratio);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
fn sampleColorRange(value: f32, domain: vec2<f32>) -> vec4<f32> {
|
|
34
|
+
let ratio = (value - domain.x) / (domain.y - domain.x);
|
|
35
|
+
return textureSampleLevel(colorRange, colorRangeSampler, vec2<f32>(ratio, 0.5), 0.0);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@vertex
|
|
39
|
+
fn vertexMain(attributes: Attributes) -> Varyings {
|
|
40
|
+
var output: Varyings;
|
|
41
|
+
geometry.pickingColor = picking_getPickingColorFromIndex(attributes.instanceIndex);
|
|
42
|
+
output.pickingColor = geometry.pickingColor;
|
|
43
|
+
|
|
44
|
+
if (
|
|
45
|
+
attributes.instanceColorValues != attributes.instanceColorValues ||
|
|
46
|
+
attributes.instanceColorValues < hexagon.colorDomain.z ||
|
|
47
|
+
attributes.instanceColorValues > hexagon.colorDomain.w ||
|
|
48
|
+
attributes.instanceElevationValues < hexagon.elevationDomain.z ||
|
|
49
|
+
attributes.instanceElevationValues > hexagon.elevationDomain.w
|
|
50
|
+
) {
|
|
51
|
+
output.position = vec4<f32>(0.0);
|
|
52
|
+
output.color = vec4<f32>(0.0);
|
|
53
|
+
return output;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
var commonPosition =
|
|
57
|
+
hexbinCentroid(attributes.instancePositions, column.radius) +
|
|
58
|
+
(hexagon.originCommon - project.commonOrigin.xy);
|
|
59
|
+
commonPosition += attributes.positions.xy * column.radius * column.coverage;
|
|
60
|
+
geometry.position = vec4<f32>(commonPosition, 0.0, 1.0);
|
|
61
|
+
geometry.normal = project_normal(attributes.normals);
|
|
62
|
+
|
|
63
|
+
if (column.extruded > 0.5) {
|
|
64
|
+
var elevation = interpolate(
|
|
65
|
+
attributes.instanceElevationValues,
|
|
66
|
+
hexagon.elevationDomain.xy,
|
|
67
|
+
hexagon.elevationRange
|
|
68
|
+
);
|
|
69
|
+
elevation = project_size_float(elevation);
|
|
70
|
+
geometry.position.z = (attributes.positions.z + 1.0) / 2.0 * elevation;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
output.position = project_common_position_to_clipspace(geometry.position);
|
|
74
|
+
var colorValue = sampleColorRange(attributes.instanceColorValues, hexagon.colorDomain.xy);
|
|
75
|
+
if (column.extruded > 0.5) {
|
|
76
|
+
colorValue = vec4<f32>(
|
|
77
|
+
lighting_getLightColor2(
|
|
78
|
+
colorValue.rgb,
|
|
79
|
+
project.cameraPosition,
|
|
80
|
+
geometry.position.xyz,
|
|
81
|
+
geometry.normal
|
|
82
|
+
),
|
|
83
|
+
colorValue.a
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
output.color = vec4<f32>(colorValue.rgb, colorValue.a * layer.opacity);
|
|
87
|
+
return output;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@fragment
|
|
91
|
+
fn fragmentMain(varyings: Varyings) -> @location(0) vec4<f32> {
|
|
92
|
+
if (picking.isActive > 0.5) {
|
|
93
|
+
if (!picking_isColorValid(varyings.pickingColor)) {
|
|
94
|
+
discard;
|
|
95
|
+
}
|
|
96
|
+
return vec4<f32>(varyings.pickingColor, 1.0);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
var color = varyings.color;
|
|
100
|
+
if (picking.isHighlightActive > 0.5) {
|
|
101
|
+
let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);
|
|
102
|
+
if (picking_isColorZero(abs(varyings.pickingColor - highlightedObjectColor))) {
|
|
103
|
+
let highLightAlpha = picking.highlightColor.a;
|
|
104
|
+
let blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);
|
|
105
|
+
if (blendedAlpha > 0.0) {
|
|
106
|
+
let highLightRatio = highLightAlpha / blendedAlpha;
|
|
107
|
+
color = vec4<f32>(
|
|
108
|
+
mix(color.rgb, picking.highlightColor.rgb, highLightRatio),
|
|
109
|
+
blendedAlpha
|
|
110
|
+
);
|
|
111
|
+
} else {
|
|
112
|
+
color = vec4<f32>(color.rgb, 0.0);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return deckgl_premultiplied_alpha(color);
|
|
118
|
+
}
|
|
119
|
+
`;
|
|
120
|
+
//# sourceMappingURL=hexagon-cell-layer.wgsl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hexagon-cell-layer.wgsl.js","sourceRoot":"","sources":["../../src/hexagon-layer/hexagon-cell-layer.wgsl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,eAAe,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmHzB,CAAC"}
|
|
@@ -8,6 +8,7 @@ export type HexagonProps = {
|
|
|
8
8
|
};
|
|
9
9
|
export declare const hexagonUniforms: {
|
|
10
10
|
readonly name: "hexagon";
|
|
11
|
+
readonly source: "struct HexagonUniforms {\n colorDomain: vec4<f32>,\n elevationDomain: vec4<f32>,\n elevationRange: vec2<f32>,\n originCommon: vec2<f32>,\n};\n\n@group(0) @binding(auto) var<uniform> hexagon: HexagonUniforms;\n@group(0) @binding(auto) var colorRange: texture_2d<f32>;\n@group(0) @binding(auto) var colorRangeSampler: sampler;\n";
|
|
11
12
|
readonly vs: "layout(std140) uniform hexagonUniforms {\n vec4 colorDomain;\n vec4 elevationDomain;\n vec2 elevationRange;\n vec2 originCommon;\n} hexagon;\n";
|
|
12
13
|
readonly uniformTypes: {
|
|
13
14
|
readonly colorDomain: "vec4<f32>";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hexagon-layer-uniforms.d.ts","sourceRoot":"","sources":["../../src/hexagon-layer/hexagon-layer-uniforms.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"hexagon-layer-uniforms.d.ts","sourceRoot":"","sources":["../../src/hexagon-layer/hexagon-layer-uniforms.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAyBtC,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,cAAc,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,YAAY,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;CAUmB,CAAC"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
// deck.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
+
const uniformBlockWGSL = /* wgsl */ `\
|
|
5
|
+
struct HexagonUniforms {
|
|
6
|
+
colorDomain: vec4<f32>,
|
|
7
|
+
elevationDomain: vec4<f32>,
|
|
8
|
+
elevationRange: vec2<f32>,
|
|
9
|
+
originCommon: vec2<f32>,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
@group(0) @binding(auto) var<uniform> hexagon: HexagonUniforms;
|
|
13
|
+
@group(0) @binding(auto) var colorRange: texture_2d<f32>;
|
|
14
|
+
@group(0) @binding(auto) var colorRangeSampler: sampler;
|
|
15
|
+
`;
|
|
4
16
|
const uniformBlock = /* glsl */ `\
|
|
5
17
|
layout(std140) uniform hexagonUniforms {
|
|
6
18
|
vec4 colorDomain;
|
|
@@ -11,6 +23,7 @@ layout(std140) uniform hexagonUniforms {
|
|
|
11
23
|
`;
|
|
12
24
|
export const hexagonUniforms = {
|
|
13
25
|
name: 'hexagon',
|
|
26
|
+
source: uniformBlockWGSL,
|
|
14
27
|
vs: uniformBlock,
|
|
15
28
|
uniformTypes: {
|
|
16
29
|
colorDomain: 'vec4<f32>',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hexagon-layer-uniforms.js","sourceRoot":"","sources":["../../src/hexagon-layer/hexagon-layer-uniforms.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAKpC,MAAM,YAAY,GAAG,UAAU,CAAC;;;;;;;CAO/B,CAAC;AAUF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,SAAS;IACf,EAAE,EAAE,YAAY;IAChB,YAAY,EAAE;QACZ,WAAW,EAAE,WAAW;QACxB,eAAe,EAAE,WAAW;QAC5B,cAAc,EAAE,WAAW;QAC3B,YAAY,EAAE,WAAW;KAC1B;CAC4C,CAAC"}
|
|
1
|
+
{"version":3,"file":"hexagon-layer-uniforms.js","sourceRoot":"","sources":["../../src/hexagon-layer/hexagon-layer-uniforms.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAKpC,MAAM,gBAAgB,GAAG,UAAU,CAAC;;;;;;;;;;;CAWnC,CAAC;AAEF,MAAM,YAAY,GAAG,UAAU,CAAC;;;;;;;CAO/B,CAAC;AAUF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,gBAAgB;IACxB,EAAE,EAAE,YAAY;IAChB,YAAY,EAAE;QACZ,WAAW,EAAE,WAAW;QACxB,eAAe,EAAE,WAAW;QAC5B,cAAc,EAAE,WAAW;QAC3B,YAAY,EAAE,WAAW;KAC1B;CAC4C,CAAC"}
|