@deck.gl/extensions 9.4.0-alpha.2 → 9.4.0-beta.3
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/clip/clip-extension.d.ts +3 -0
- package/dist/clip/clip-extension.d.ts.map +1 -1
- package/dist/clip/clip-extension.js +7 -0
- package/dist/clip/clip-extension.js.map +1 -1
- package/dist/dist.dev.js +2195 -142
- package/dist/fill-style/fill-style-extension.d.ts +38 -6
- package/dist/fill-style/fill-style-extension.d.ts.map +1 -1
- package/dist/fill-style/fill-style-extension.js +88 -10
- package/dist/fill-style/fill-style-extension.js.map +1 -1
- package/dist/fill-style/procedural-pattern.d.ts +65 -0
- package/dist/fill-style/procedural-pattern.d.ts.map +1 -0
- package/dist/fill-style/procedural-pattern.js +135 -0
- package/dist/fill-style/procedural-pattern.js.map +1 -0
- package/dist/fill-style/shader-module.d.ts +13 -4
- package/dist/fill-style/shader-module.d.ts.map +1 -1
- package/dist/fill-style/shader-module.js +212 -21
- package/dist/fill-style/shader-module.js.map +1 -1
- package/dist/index.cjs +3484 -215
- package/dist/index.cjs.map +3 -4
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/mask/shader-module.d.ts +1 -0
- package/dist/mask/shader-module.d.ts.map +1 -1
- package/dist/path-style/path-style-extension.d.ts +49 -6
- package/dist/path-style/path-style-extension.d.ts.map +1 -1
- package/dist/path-style/path-style-extension.js +237 -37
- package/dist/path-style/path-style-extension.js.map +1 -1
- package/dist/path-style/shaders.glsl.d.ts +30 -1
- package/dist/path-style/shaders.glsl.d.ts.map +1 -1
- package/dist/path-style/shaders.glsl.js +136 -21
- package/dist/path-style/shaders.glsl.js.map +1 -1
- package/dist/terrain/shader-module.d.ts +17 -2
- package/dist/terrain/shader-module.d.ts.map +1 -1
- package/dist/utils/debug.d.ts.map +1 -1
- package/dist.min.js +1251 -96
- package/package.json +6 -6
- package/src/clip/clip-extension.ts +15 -1
- package/src/fill-style/fill-style-extension.ts +135 -13
- package/src/fill-style/procedural-pattern.ts +203 -0
- package/src/fill-style/shader-module.ts +233 -23
- package/src/index.ts +10 -1
- package/src/path-style/path-style-extension.ts +350 -44
- package/src/path-style/shaders.glsl.ts +268 -27
package/dist/index.d.ts
CHANGED
|
@@ -10,8 +10,9 @@ export { default as _TerrainExtension } from "./terrain/terrain-extension.js";
|
|
|
10
10
|
export { default as project64 } from "./fp64/project64.js";
|
|
11
11
|
export type { BrushingExtensionProps } from "./brushing/brushing-extension.js";
|
|
12
12
|
export type { DataFilterExtensionProps, DataFilterExtensionOptions } from "./data-filter/data-filter-extension.js";
|
|
13
|
-
export type { PathStyleExtensionProps, PathStyleExtensionOptions } from "./path-style/path-style-extension.js";
|
|
13
|
+
export type { PathStyleExtensionProps, PathStyleExtensionOptions, DashMode, DashUnits } from "./path-style/path-style-extension.js";
|
|
14
14
|
export type { FillStyleExtensionProps, FillStyleExtensionOptions } from "./fill-style/fill-style-extension.js";
|
|
15
|
+
export type { HatchPatternConfig, CrossHatchPatternConfig, DotPatternConfig, ProceduralPatternConfig, ProceduralPatternMapping } from "./fill-style/procedural-pattern.js";
|
|
15
16
|
export type { ClipExtensionProps } from "./clip/clip-extension.js";
|
|
16
17
|
export type { CollisionFilterExtensionProps } from "./collision-filter/collision-filter-extension.js";
|
|
17
18
|
export type { MaskExtensionProps } from "./mask/mask-extension.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,yCAAsC;AAC3E,OAAO,EAAC,OAAO,IAAI,mBAAmB,EAAC,+CAA4C;AACnF,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,6CAA0C;AAChF,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,6CAA0C;AAChF,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,wBAAwB,EAAC,yDAAsD;AAClG,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,uCAAoC;AAGzE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,4BAAyB;AAGtD,YAAY,EAAC,sBAAsB,EAAC,yCAAsC;AAC1E,YAAY,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,+CAA4C;AAC7C,YAAY,EACV,uBAAuB,EACvB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,yCAAsC;AAC3E,OAAO,EAAC,OAAO,IAAI,mBAAmB,EAAC,+CAA4C;AACnF,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,6CAA0C;AAChF,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,6CAA0C;AAChF,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,wBAAwB,EAAC,yDAAsD;AAClG,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,uCAAoC;AAGzE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,4BAAyB;AAGtD,YAAY,EAAC,sBAAsB,EAAC,yCAAsC;AAC1E,YAAY,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,+CAA4C;AAC7C,YAAY,EACV,uBAAuB,EACvB,yBAAyB,EACzB,QAAQ,EACR,SAAS,EACV,6CAA0C;AAC3C,YAAY,EACV,uBAAuB,EACvB,yBAAyB,EAC1B,6CAA0C;AAC3C,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACzB,2CAAwC;AACzC,YAAY,EAAC,kBAAkB,EAAC,iCAA8B;AAC9D,YAAY,EAAC,6BAA6B,EAAC,yDAAsD;AACjG,YAAY,EAAC,kBAAkB,EAAC,iCAA8B;AAC9D,YAAY,EAAC,qBAAqB,EAAC,uCAAoC;AACvE,YAAY,EAAC,kBAAkB,EAAC,mCAAgC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader-module.d.ts","sourceRoot":"","sources":["../../src/mask/shader-module.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAoF3C,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,CAAC
|
|
1
|
+
{"version":3,"file":"shader-module.d.ts","sourceRoot":"","sources":["../../src/mask/shader-module.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAoF3C,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAG5B,SAAS,GAAG,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;;;;;AASpE,wBAc6C"}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import { LayerExtension } from '@deck.gl/core';
|
|
2
2
|
import type { Accessor, Layer, LayerContext, UpdateParameters } from '@deck.gl/core';
|
|
3
|
+
/**
|
|
4
|
+
* What `getDashArray` is measured in.
|
|
5
|
+
*
|
|
6
|
+
* `'widths'` is relative to half the stroke width and is the historical behavior, so a dash
|
|
7
|
+
* scales with the line. `'pixels'` uses nominal zoom-stable projected pixels: exact for flat or
|
|
8
|
+
* orthographic paths and approximate under pitch, perspective, or elevation. `'meters'` uses the
|
|
9
|
+
* local projection scale, while `'common'` uses deck.gl common-coordinate-space units.
|
|
10
|
+
*/
|
|
11
|
+
export type DashUnits = 'widths' | 'pixels' | 'meters' | 'common';
|
|
3
12
|
export type PathStyleExtensionProps<DataT = any> = {
|
|
4
13
|
/**
|
|
5
|
-
* Accessor for the dash array to draw each path with: `[dashSize, gapSize]`
|
|
14
|
+
* Accessor for the dash array to draw each path with: `[dashSize, gapSize]` in the units
|
|
15
|
+
* selected by `dashUnits`. By default those units are relative to *half* the path width,
|
|
16
|
+
* so `[4, 5]` on a path 10 pixels wide draws 20 pixel dashes separated by 25 pixel gaps.
|
|
6
17
|
* Requires the `dash` option to be on.
|
|
7
18
|
*/
|
|
8
19
|
getDashArray?: Accessor<DataT, Readonly<[number, number]>>;
|
|
@@ -22,26 +33,47 @@ export type PathStyleExtensionProps<DataT = any> = {
|
|
|
22
33
|
* @default false
|
|
23
34
|
*/
|
|
24
35
|
dashGapPickable?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* What `getDashArray` is measured in. `'widths'` is relative to half the stroke width, so a
|
|
38
|
+
* dash scales with the line. `'pixels'` uses nominal zoom-stable projected pixels, which are
|
|
39
|
+
* exact for flat or orthographic paths and approximate under pitch, perspective, or elevation.
|
|
40
|
+
* `'meters'` uses the local projection scale and `'common'` uses deck.gl common space.
|
|
41
|
+
* Only applies to `PathLayer` and composite layers that render paths; scatterplot outlines
|
|
42
|
+
* and text backgrounds continue to interpret dash arrays relative to their stroke width.
|
|
43
|
+
* @default 'widths'
|
|
44
|
+
*/
|
|
45
|
+
dashUnits?: DashUnits;
|
|
25
46
|
};
|
|
47
|
+
/** How the dash pattern is positioned along a path. */
|
|
48
|
+
export type DashMode = 'segment' | 'path';
|
|
49
|
+
/** Options for configuring a {@link PathStyleExtension}. */
|
|
26
50
|
export type PathStyleExtensionOptions = {
|
|
27
51
|
/**
|
|
28
52
|
* Add capability to render dashed lines.
|
|
29
53
|
* @default false
|
|
30
54
|
*/
|
|
31
|
-
dash
|
|
55
|
+
dash?: boolean;
|
|
32
56
|
/**
|
|
33
57
|
* Add capability to offset lines.
|
|
34
58
|
* @default false
|
|
35
59
|
*/
|
|
36
|
-
offset
|
|
60
|
+
offset?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* How the dash pattern is positioned along a path. `'path'` keeps dashes continuous across
|
|
63
|
+
* rendered segments, at the cost of a vertex attribute and a CPU pass over the geometry.
|
|
64
|
+
* @default 'segment'
|
|
65
|
+
*/
|
|
66
|
+
dashMode?: DashMode;
|
|
37
67
|
/**
|
|
38
68
|
* Improve dash rendering quality in certain circumstances. Note that this option introduces additional performance overhead.
|
|
69
|
+
* @deprecated Use `dashMode: 'path'` instead.
|
|
39
70
|
* @default false
|
|
40
71
|
*/
|
|
41
|
-
highPrecisionDash
|
|
72
|
+
highPrecisionDash?: boolean;
|
|
42
73
|
};
|
|
74
|
+
type ResolvedPathStyleExtensionOptions = Required<PathStyleExtensionOptions>;
|
|
43
75
|
/** Adds selected features to the `PathLayer`, `ScatterplotLayer`, `TextBackgroundLayer`, and composite layers that render them. */
|
|
44
|
-
export default class PathStyleExtension extends LayerExtension<
|
|
76
|
+
export default class PathStyleExtension extends LayerExtension<ResolvedPathStyleExtensionOptions> {
|
|
45
77
|
static defaultProps: {
|
|
46
78
|
getDashArray: {
|
|
47
79
|
type: string;
|
|
@@ -53,14 +85,25 @@ export default class PathStyleExtension extends LayerExtension<PathStyleExtensio
|
|
|
53
85
|
};
|
|
54
86
|
dashJustified: boolean;
|
|
55
87
|
dashGapPickable: boolean;
|
|
88
|
+
dashUnits: string;
|
|
56
89
|
};
|
|
57
90
|
static extensionName: string;
|
|
58
|
-
constructor({ dash, offset, highPrecisionDash }?:
|
|
91
|
+
constructor({ dash, offset, dashMode, highPrecisionDash }?: PathStyleExtensionOptions);
|
|
59
92
|
private getLayerType;
|
|
93
|
+
private synchronizeAttributes;
|
|
60
94
|
isEnabled(layer: Layer<PathStyleExtensionProps>): boolean;
|
|
61
95
|
getShaders(this: Layer<PathStyleExtensionProps>, extension: this): any;
|
|
62
96
|
initializeState(this: Layer<PathStyleExtensionProps>, context: LayerContext, extension: this): void;
|
|
63
97
|
updateState(this: Layer<PathStyleExtensionProps>, params: UpdateParameters<Layer<PathStyleExtensionProps>>, extension: this): void;
|
|
98
|
+
private calculateDashMetrics;
|
|
99
|
+
/**
|
|
100
|
+
* Calculates the distance from the start of a path to each rendered segment.
|
|
101
|
+
*
|
|
102
|
+
* The final entry is zero because PathLayer reserves the final vertex as invalid padding.
|
|
103
|
+
* This scalar return shape is retained for compatibility; path-mode rendering uses an
|
|
104
|
+
* internal attribute containing both each segment offset and the total path length.
|
|
105
|
+
*/
|
|
64
106
|
getDashOffsets(this: Layer<PathStyleExtensionProps>, path: number[] | number[][]): number[];
|
|
65
107
|
}
|
|
108
|
+
export {};
|
|
66
109
|
//# sourceMappingURL=path-style-extension.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-style-extension.d.ts","sourceRoot":"","sources":["../../src/path-style/path-style-extension.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"path-style-extension.d.ts","sourceRoot":"","sources":["../../src/path-style/path-style-extension.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EAKf,MAAM,eAAe,CAAC;AAUvB,OAAO,KAAK,EACV,QAAQ,EAER,KAAK,EACL,YAAY,EAEZ,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAWvB;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAoBlE,MAAM,MAAM,uBAAuB,CAAC,KAAK,GAAG,GAAG,IAAI;IACjD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3D;;;;OAIG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAE1C,4DAA4D;AAC5D,MAAM,MAAM,yBAAyB,GAAG;IACtC;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,KAAK,iCAAiC,GAAG,QAAQ,CAAC,yBAAyB,CAAC,CAAC;AAqE7E,mIAAmI;AACnI,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,cAAc,CAAC,iCAAiC,CAAC;IAC/F,MAAM,CAAC,YAAY;;;;;;;;;;;;MAAgB;IACnC,MAAM,CAAC,aAAa,SAAwB;gBAEhC,EACV,IAAY,EACZ,MAAc,EACd,QAAQ,EACR,iBAAyB,EAC1B,GAAE,yBAA8B;IAUjC,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,qBAAqB;IA0D7B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,uBAAuB,CAAC,GAAG,OAAO;IAIzD,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,GAAG;IAyDtE,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI;IAI5F,WAAW,CACT,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EACpC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,EACxD,SAAS,EAAE,IAAI;IA6CjB,OAAO,CAAC,oBAAoB;IA4G5B;;;;;;OAMG;IACH,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE;CAqB5F"}
|
|
@@ -1,19 +1,74 @@
|
|
|
1
1
|
// deck.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import { LayerExtension, _mergeShaders as mergeShaders } from '@deck.gl/core';
|
|
5
|
-
import { vec3 } from '@math.gl/core';
|
|
4
|
+
import { LayerExtension, WebMercatorViewport, project, _deepEqual as deepEqual, _mergeShaders as mergeShaders } from '@deck.gl/core';
|
|
5
|
+
import { vec3, vec4 } from '@math.gl/core';
|
|
6
6
|
import { dashShaders, offsetShaders, scatterplotDashShaders, textBackgroundDashShaders } from "./shaders.glsl.js";
|
|
7
7
|
const defaultProps = {
|
|
8
8
|
getDashArray: { type: 'accessor', value: [0, 0] },
|
|
9
9
|
getOffset: { type: 'accessor', value: 0 },
|
|
10
10
|
dashJustified: false,
|
|
11
|
-
dashGapPickable: false
|
|
11
|
+
dashGapPickable: false,
|
|
12
|
+
dashUnits: 'widths'
|
|
12
13
|
};
|
|
14
|
+
/** Keep in sync with the branch in the dash vertex shader. */
|
|
15
|
+
const DASH_UNITS = {
|
|
16
|
+
widths: 0,
|
|
17
|
+
pixels: 1,
|
|
18
|
+
meters: 2,
|
|
19
|
+
common: 3
|
|
20
|
+
};
|
|
21
|
+
const PATH_STYLE_ATTRIBUTES = ['instanceDashArrays', 'instanceDashOffsets', 'instanceOffsets'];
|
|
22
|
+
function dashMetricsProjectionPropsChanged({ props, oldProps }) {
|
|
23
|
+
// Data, accessors, and tessellation configuration invalidate through AttributeManager and
|
|
24
|
+
// PathLayer. PathLayer separately tracks viewport projection scale. These are the remaining
|
|
25
|
+
// layer props consumed by the project uniforms used to calculate dash metrics.
|
|
26
|
+
return (!deepEqual(props.modelMatrix, oldProps.modelMatrix, 2) ||
|
|
27
|
+
props.coordinateSystem !== oldProps.coordinateSystem ||
|
|
28
|
+
!deepEqual(props.coordinateOrigin, oldProps.coordinateOrigin, 1));
|
|
29
|
+
}
|
|
30
|
+
function projectRenderedPathPosition(layer, position, projectUniforms) {
|
|
31
|
+
const viewport = layer.context.viewport;
|
|
32
|
+
if (!(viewport instanceof WebMercatorViewport) || viewport.zoom < 12) {
|
|
33
|
+
return layer.projectPosition(position, { autoOffset: false });
|
|
34
|
+
}
|
|
35
|
+
// High-zoom Web Mercator shaders use a center-relative Taylor projection for precision.
|
|
36
|
+
// Layer#projectPosition deliberately returns the exact, viewport-independent projection,
|
|
37
|
+
// so reproduce project_position here to keep CPU phase continuous with each GPU segment.
|
|
38
|
+
const positionWorld = vec4.transformMat4([], [position[0], position[1], position[2] || 0, 1], projectUniforms.modelMatrix);
|
|
39
|
+
const coordinateSystem = layer.props.coordinateSystem === 'default' ? 'lnglat' : layer.props.coordinateSystem;
|
|
40
|
+
if (coordinateSystem === 'lnglat') {
|
|
41
|
+
if (Math.abs(positionWorld[1] - projectUniforms.coordinateOrigin[1]) > 0.25) {
|
|
42
|
+
let longitude = positionWorld[0];
|
|
43
|
+
if (projectUniforms.wrapLongitude) {
|
|
44
|
+
longitude = ((((longitude + 180) % 360) + 360) % 360) - 180;
|
|
45
|
+
}
|
|
46
|
+
const commonPosition = viewport.projectPosition([longitude, positionWorld[1], 0]);
|
|
47
|
+
return [
|
|
48
|
+
commonPosition[0] - projectUniforms.commonOrigin[0],
|
|
49
|
+
commonPosition[1] - projectUniforms.commonOrigin[1],
|
|
50
|
+
positionWorld[2] * projectUniforms.commonUnitsPerMeter[2]
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
vec3.sub(positionWorld, positionWorld, projectUniforms.coordinateOrigin);
|
|
54
|
+
}
|
|
55
|
+
else if (coordinateSystem === 'cartesian') {
|
|
56
|
+
vec3.sub(positionWorld, positionWorld, projectUniforms.coordinateOrigin);
|
|
57
|
+
}
|
|
58
|
+
const deltaLatitude = positionWorld[1];
|
|
59
|
+
const scale = vec3.scaleAndAdd([], projectUniforms.commonUnitsPerWorldUnit, projectUniforms.commonUnitsPerWorldUnit2, deltaLatitude);
|
|
60
|
+
return vec3.multiply([], positionWorld, scale);
|
|
61
|
+
}
|
|
13
62
|
/** Adds selected features to the `PathLayer`, `ScatterplotLayer`, `TextBackgroundLayer`, and composite layers that render them. */
|
|
14
63
|
class PathStyleExtension extends LayerExtension {
|
|
15
|
-
constructor({ dash = false, offset = false, highPrecisionDash = false } = {}) {
|
|
16
|
-
|
|
64
|
+
constructor({ dash = false, offset = false, dashMode, highPrecisionDash = false } = {}) {
|
|
65
|
+
const resolvedDashMode = dashMode ?? (highPrecisionDash ? 'path' : 'segment');
|
|
66
|
+
super({
|
|
67
|
+
dash: dash || highPrecisionDash || dashMode !== undefined,
|
|
68
|
+
offset,
|
|
69
|
+
dashMode: resolvedDashMode,
|
|
70
|
+
highPrecisionDash: resolvedDashMode === 'path'
|
|
71
|
+
});
|
|
17
72
|
}
|
|
18
73
|
getLayerType(layer) {
|
|
19
74
|
if ('pathTesselator' in layer.state) {
|
|
@@ -28,6 +83,59 @@ class PathStyleExtension extends LayerExtension {
|
|
|
28
83
|
}
|
|
29
84
|
return null;
|
|
30
85
|
}
|
|
86
|
+
synchronizeAttributes(layer) {
|
|
87
|
+
const attributeManager = layer.getAttributeManager();
|
|
88
|
+
const layerType = this.getLayerType(layer);
|
|
89
|
+
if (!attributeManager || !layerType) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
const attributes = attributeManager.getAttributes();
|
|
93
|
+
const desiredAttributes = new Set();
|
|
94
|
+
if (this.opts.dash) {
|
|
95
|
+
desiredAttributes.add('instanceDashArrays');
|
|
96
|
+
}
|
|
97
|
+
if (layerType === 'path' && this.opts.dash && this.opts.dashMode === 'path') {
|
|
98
|
+
desiredAttributes.add('instanceDashOffsets');
|
|
99
|
+
}
|
|
100
|
+
if (layerType === 'path' && this.opts.offset) {
|
|
101
|
+
desiredAttributes.add('instanceOffsets');
|
|
102
|
+
}
|
|
103
|
+
let topologyChanged = false;
|
|
104
|
+
for (const attributeName of PATH_STYLE_ATTRIBUTES) {
|
|
105
|
+
if (attributes[attributeName] && !desiredAttributes.has(attributeName)) {
|
|
106
|
+
attributeManager.remove([attributeName]);
|
|
107
|
+
topologyChanged = true;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (desiredAttributes.has('instanceDashArrays') && !attributes.instanceDashArrays) {
|
|
111
|
+
attributeManager.addInstanced({
|
|
112
|
+
instanceDashArrays: { size: 2, accessor: 'getDashArray' }
|
|
113
|
+
});
|
|
114
|
+
topologyChanged = true;
|
|
115
|
+
}
|
|
116
|
+
if (desiredAttributes.has('instanceDashOffsets') && !attributes.instanceDashOffsets) {
|
|
117
|
+
attributeManager.addInstanced({
|
|
118
|
+
instanceDashOffsets: {
|
|
119
|
+
// [distance from the start of the path, total length of the path]
|
|
120
|
+
size: 2,
|
|
121
|
+
// Recalculate from rendered geometry when getPath changes. A binary getPath buffer
|
|
122
|
+
// contains positions, not dash metrics, so keep it as an update trigger rather than
|
|
123
|
+
// binding it directly to this attribute.
|
|
124
|
+
accessor: ['getPath'],
|
|
125
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
126
|
+
update: this.calculateDashMetrics
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
topologyChanged = true;
|
|
130
|
+
}
|
|
131
|
+
if (desiredAttributes.has('instanceOffsets') && !attributes.instanceOffsets) {
|
|
132
|
+
attributeManager.addInstanced({
|
|
133
|
+
instanceOffsets: { size: 1, accessor: 'getOffset' }
|
|
134
|
+
});
|
|
135
|
+
topologyChanged = true;
|
|
136
|
+
}
|
|
137
|
+
return topologyChanged;
|
|
138
|
+
}
|
|
31
139
|
isEnabled(layer) {
|
|
32
140
|
return this.getLayerType(layer) !== null;
|
|
33
141
|
}
|
|
@@ -57,59 +165,59 @@ class PathStyleExtension extends LayerExtension {
|
|
|
57
165
|
const defines = {};
|
|
58
166
|
if (extension.opts.dash) {
|
|
59
167
|
result = mergeShaders(result, dashShaders);
|
|
60
|
-
|
|
168
|
+
defines.DASH_ENABLED = true;
|
|
169
|
+
if (extension.opts.dashMode === 'path') {
|
|
61
170
|
defines.HIGH_PRECISION_DASH = true;
|
|
62
171
|
}
|
|
63
172
|
}
|
|
64
173
|
if (extension.opts.offset) {
|
|
65
174
|
result = mergeShaders(result, offsetShaders);
|
|
175
|
+
defines.PATH_STYLE_OFFSET = true;
|
|
66
176
|
}
|
|
67
177
|
const { inject } = result;
|
|
68
178
|
const pathStyle = {
|
|
69
179
|
name: 'pathStyle',
|
|
70
|
-
inject
|
|
71
|
-
uniformTypes: {
|
|
72
|
-
dashAlignMode: 'f32',
|
|
73
|
-
dashGapPickable: 'i32'
|
|
74
|
-
}
|
|
180
|
+
inject
|
|
75
181
|
};
|
|
182
|
+
if (extension.opts.dash) {
|
|
183
|
+
pathStyle.uniformTypes = {
|
|
184
|
+
dashAlignMode: 'f32',
|
|
185
|
+
dashGapPickable: 'i32',
|
|
186
|
+
dashUnits: 'i32'
|
|
187
|
+
};
|
|
188
|
+
}
|
|
76
189
|
return {
|
|
77
190
|
modules: [pathStyle],
|
|
78
191
|
defines
|
|
79
192
|
};
|
|
80
193
|
}
|
|
81
194
|
initializeState(context, extension) {
|
|
82
|
-
|
|
83
|
-
const layerType = extension.getLayerType(this);
|
|
84
|
-
if (!attributeManager || !layerType) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
if (extension.opts.dash) {
|
|
88
|
-
attributeManager.addInstanced({
|
|
89
|
-
instanceDashArrays: { size: 2, accessor: 'getDashArray' },
|
|
90
|
-
...(layerType === 'path' && extension.opts.highPrecisionDash
|
|
91
|
-
? {
|
|
92
|
-
instanceDashOffsets: {
|
|
93
|
-
size: 1,
|
|
94
|
-
accessor: 'getPath',
|
|
95
|
-
transform: extension.getDashOffsets.bind(this)
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
: {})
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
if (layerType === 'path' && extension.opts.offset) {
|
|
102
|
-
attributeManager.addInstanced({
|
|
103
|
-
instanceOffsets: { size: 1, accessor: 'getOffset' }
|
|
104
|
-
});
|
|
105
|
-
}
|
|
195
|
+
extension.synchronizeAttributes(this);
|
|
106
196
|
}
|
|
107
197
|
updateState(params, extension) {
|
|
108
198
|
if (!extension.isEnabled(this)) {
|
|
109
199
|
return;
|
|
110
200
|
}
|
|
201
|
+
if (params.changeFlags.extensionsChanged) {
|
|
202
|
+
const topologyChanged = extension.synchronizeAttributes(this);
|
|
203
|
+
const attributeManager = this.getAttributeManager();
|
|
204
|
+
if (attributeManager && topologyChanged) {
|
|
205
|
+
// PathLayer recreates its model before extension updateState runs. Refresh the new
|
|
206
|
+
// model's layout after adding or removing extension-owned attributes, then ensure all
|
|
207
|
+
// managed buffers are rebound to the recreated vertex array.
|
|
208
|
+
attributeManager.invalidateAll();
|
|
209
|
+
for (const model of this.getModels()) {
|
|
210
|
+
model.setBufferLayout(attributeManager.getBufferLayouts(model));
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
111
214
|
if (extension.opts.dash) {
|
|
112
215
|
const layerType = extension.getLayerType(this);
|
|
216
|
+
if (layerType === 'path' &&
|
|
217
|
+
extension.opts.dashMode === 'path' &&
|
|
218
|
+
dashMetricsProjectionPropsChanged(params)) {
|
|
219
|
+
this.getAttributeManager()?.invalidate('instanceDashOffsets');
|
|
220
|
+
}
|
|
113
221
|
if (layerType === 'scatterplot' || layerType === 'textBackground') {
|
|
114
222
|
const pathStyleProps = {
|
|
115
223
|
dashGapPickable: Boolean(this.props.dashGapPickable)
|
|
@@ -119,12 +227,104 @@ class PathStyleExtension extends LayerExtension {
|
|
|
119
227
|
else {
|
|
120
228
|
const pathStyleProps = {
|
|
121
229
|
dashAlignMode: this.props.dashJustified ? 1 : 0,
|
|
122
|
-
dashGapPickable: Boolean(this.props.dashGapPickable)
|
|
230
|
+
dashGapPickable: Boolean(this.props.dashGapPickable),
|
|
231
|
+
dashUnits: DASH_UNITS[this.props.dashUnits ?? 'widths']
|
|
123
232
|
};
|
|
124
233
|
this.setShaderModuleProps({ pathStyle: pathStyleProps });
|
|
125
234
|
}
|
|
126
235
|
}
|
|
127
236
|
}
|
|
237
|
+
calculateDashMetrics(attribute, { startRow, endRow }) {
|
|
238
|
+
const pathTesselator = this.state.pathTesselator;
|
|
239
|
+
const vertexStarts = pathTesselator?.vertexStarts;
|
|
240
|
+
const instanceCount = pathTesselator?.instanceCount;
|
|
241
|
+
const packedPositions = pathTesselator?.get('positions');
|
|
242
|
+
if (!vertexStarts ||
|
|
243
|
+
instanceCount === undefined ||
|
|
244
|
+
typeof pathTesselator?.getPathSegmentIndices !== 'function') {
|
|
245
|
+
throw new Error('PathStyleExtension requires PathLayer tessellation data for path dashes.');
|
|
246
|
+
}
|
|
247
|
+
const binaryPath = this.props.data?.attributes?.getPath;
|
|
248
|
+
const binaryValue = ArrayBuffer.isView(binaryPath) ? binaryPath : binaryPath?.value;
|
|
249
|
+
const hasReadableBinaryPath = ArrayBuffer.isView(binaryValue);
|
|
250
|
+
// With `_pathType`, WebGL binds binary positions directly and the tesselator's allocated
|
|
251
|
+
// positions array is only a zero-filled placeholder. WebGPU materializes packed neighboring
|
|
252
|
+
// positions when the binary source is CPU-readable; GPU-only sources are rejected below.
|
|
253
|
+
const usePackedPositions = packedPositions && (!binaryPath || pathTesselator.normalize || pathTesselator.opts?.isWebGPU);
|
|
254
|
+
if ((binaryPath && !hasReadableBinaryPath) || (!usePackedPositions && !hasReadableBinaryPath)) {
|
|
255
|
+
throw new Error('PathStyleExtension cannot calculate whole-path dash metrics from GPU-only getPath data; ' +
|
|
256
|
+
'supply data.attributes.instanceDashOffsets.');
|
|
257
|
+
}
|
|
258
|
+
const output = attribute.value;
|
|
259
|
+
const metricSize = attribute.size;
|
|
260
|
+
const firstRow = Math.max(0, startRow);
|
|
261
|
+
const lastRow = Math.min(endRow, vertexStarts.length - 1);
|
|
262
|
+
let binarySize = 3;
|
|
263
|
+
let binaryStride = 3;
|
|
264
|
+
let binaryOffset = 0;
|
|
265
|
+
if (!usePackedPositions) {
|
|
266
|
+
const bytesPerElement = binaryValue.BYTES_PER_ELEMENT;
|
|
267
|
+
binarySize = binaryPath?.size || (this.props.positionFormat === 'XY' ? 2 : 3);
|
|
268
|
+
binaryStride = binaryPath?.stride ? binaryPath.stride / bytesPerElement : binarySize;
|
|
269
|
+
binaryOffset = binaryPath?.offset ? binaryPath.offset / bytesPerElement : 0;
|
|
270
|
+
}
|
|
271
|
+
const sourcePosition = new Array(3);
|
|
272
|
+
const projectUniforms = project.getUniforms({
|
|
273
|
+
viewport: this.context.viewport,
|
|
274
|
+
modelMatrix: this.props.modelMatrix,
|
|
275
|
+
coordinateSystem: this.props.coordinateSystem,
|
|
276
|
+
coordinateOrigin: this.props.coordinateOrigin,
|
|
277
|
+
// PathLayer normalizes/cuts wrapped paths on the CPU; its shader never wraps again.
|
|
278
|
+
autoWrapLongitude: this.wrapLongitude
|
|
279
|
+
});
|
|
280
|
+
const readPosition = (vertexIndex) => {
|
|
281
|
+
if (usePackedPositions) {
|
|
282
|
+
sourcePosition[0] = packedPositions[vertexIndex * 3];
|
|
283
|
+
sourcePosition[1] = packedPositions[vertexIndex * 3 + 1];
|
|
284
|
+
sourcePosition[2] = packedPositions[vertexIndex * 3 + 2];
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
const sourceIndex = binaryOffset + vertexIndex * binaryStride;
|
|
288
|
+
sourcePosition[0] = binaryValue[sourceIndex];
|
|
289
|
+
sourcePosition[1] = binaryValue[sourceIndex + 1];
|
|
290
|
+
sourcePosition[2] = binarySize === 3 ? binaryValue[sourceIndex + 2] : 0;
|
|
291
|
+
}
|
|
292
|
+
return sourcePosition;
|
|
293
|
+
};
|
|
294
|
+
attribute.startIndices = vertexStarts;
|
|
295
|
+
for (let row = firstRow; row < lastRow; row++) {
|
|
296
|
+
const rowStart = vertexStarts[row];
|
|
297
|
+
const rowEnd = Math.min(vertexStarts[row + 1] ?? instanceCount, instanceCount);
|
|
298
|
+
output.fill(0, rowStart * metricSize, rowEnd * metricSize);
|
|
299
|
+
const validSegments = pathTesselator.getPathSegmentIndices(row);
|
|
300
|
+
let phase = 0;
|
|
301
|
+
let previousSegment = -2;
|
|
302
|
+
let previousEnd = null;
|
|
303
|
+
for (const segmentIndex of validSegments) {
|
|
304
|
+
const outputIndex = segmentIndex * metricSize;
|
|
305
|
+
output[outputIndex] = phase;
|
|
306
|
+
const start = segmentIndex === previousSegment + 1 && previousEnd
|
|
307
|
+
? previousEnd
|
|
308
|
+
: projectRenderedPathPosition(this, readPosition(segmentIndex), projectUniforms);
|
|
309
|
+
const end = projectRenderedPathPosition(this, readPosition(segmentIndex + 1), projectUniforms);
|
|
310
|
+
phase += vec3.dist(start, end);
|
|
311
|
+
previousSegment = segmentIndex;
|
|
312
|
+
previousEnd = end;
|
|
313
|
+
}
|
|
314
|
+
if (metricSize > 1) {
|
|
315
|
+
for (let vertexIndex = rowStart; vertexIndex < rowEnd; vertexIndex++) {
|
|
316
|
+
output[vertexIndex * metricSize + 1] = phase;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Calculates the distance from the start of a path to each rendered segment.
|
|
323
|
+
*
|
|
324
|
+
* The final entry is zero because PathLayer reserves the final vertex as invalid padding.
|
|
325
|
+
* This scalar return shape is retained for compatibility; path-mode rendering uses an
|
|
326
|
+
* internal attribute containing both each segment offset and the total path length.
|
|
327
|
+
*/
|
|
128
328
|
getDashOffsets(path) {
|
|
129
329
|
const result = [0];
|
|
130
330
|
const positionSize = this.props.positionFormat === 'XY' ? 2 : 3;
|
|
@@ -134,7 +334,7 @@ class PathStyleExtension extends LayerExtension {
|
|
|
134
334
|
let prevP;
|
|
135
335
|
for (let i = 0; i < geometrySize - 1; i++) {
|
|
136
336
|
p = isNested ? path[i] : path.slice(i * positionSize, i * positionSize + positionSize);
|
|
137
|
-
p = this.projectPosition(p);
|
|
337
|
+
p = this.projectPosition(p, { autoOffset: false });
|
|
138
338
|
if (i > 0) {
|
|
139
339
|
result[i] = result[i - 1] + vec3.dist(prevP, p);
|
|
140
340
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-style-extension.js","sourceRoot":"","sources":["../../src/path-style/path-style-extension.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"path-style-extension.js","sourceRoot":"","sources":["../../src/path-style/path-style-extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dash shader injections for PathLayer, ScatterplotLayer and TextBackgroundLayer.
|
|
3
|
+
*
|
|
4
|
+
* PathLayer dash math crosses three coordinate spaces:
|
|
5
|
+
*
|
|
6
|
+
* 1. **Common space** — the private metric updater accumulates distance over normalized
|
|
7
|
+
* PathTessellator geometry, and `instanceDashOffsets` carries it to the shader. The public
|
|
8
|
+
* scalar `getDashOffsets` helper remains available for compatibility but does not back the
|
|
9
|
+
* managed attribute.
|
|
10
|
+
* 2. **Screen pixels** — the common basis for reconciling flat and billboard extrusion.
|
|
11
|
+
* At the dash injection point, `width` is in common units for a flat path but pixels for
|
|
12
|
+
* a billboarded path, whose conversion also includes `project.focalDistance`.
|
|
13
|
+
* `dashWidthPixels` is correct in both branches.
|
|
14
|
+
* 3. **Half-widths along the path** — the units of `vPathPosition.y`, tested by the fragment
|
|
15
|
+
* shader. One unit spans `dashWidthPixels` screen pixels.
|
|
16
|
+
*
|
|
17
|
+
* Convert explicitly whenever a value crosses these spaces. Mixing them directly makes dash
|
|
18
|
+
* period or phase depend on billboard, elevation, or offset configuration.
|
|
19
|
+
*/
|
|
1
20
|
export type Defines = {
|
|
2
21
|
/**
|
|
3
22
|
* Enable high precision dash rendering.
|
|
4
23
|
*/
|
|
5
24
|
HIGH_PRECISION_DASH?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Set whenever the dash shaders are injected, so that the offset shaders can adjust dash
|
|
27
|
+
* varyings only when they actually exist.
|
|
28
|
+
*/
|
|
29
|
+
DASH_ENABLED?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Set when PathStyleExtension offset shaders remap the path-width coordinate.
|
|
32
|
+
*/
|
|
33
|
+
PATH_STYLE_OFFSET?: boolean;
|
|
6
34
|
};
|
|
7
35
|
export declare const dashShaders: {
|
|
8
36
|
inject: {
|
|
@@ -10,6 +38,7 @@ export declare const dashShaders: {
|
|
|
10
38
|
'vs:#main-end': string;
|
|
11
39
|
'fs:#decl': string;
|
|
12
40
|
'fs:#main-start': string;
|
|
41
|
+
'fs:#main-end': string;
|
|
13
42
|
};
|
|
14
43
|
};
|
|
15
44
|
export declare const scatterplotDashShaders: {
|
|
@@ -35,7 +64,7 @@ export declare const offsetShaders: {
|
|
|
35
64
|
'vs:#decl': string;
|
|
36
65
|
'vs:DECKGL_FILTER_SIZE': string;
|
|
37
66
|
'vs:#main-end': string;
|
|
38
|
-
'fs:#main-
|
|
67
|
+
'fs:#main-end': string;
|
|
39
68
|
};
|
|
40
69
|
};
|
|
41
70
|
//# sourceMappingURL=shaders.glsl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shaders.glsl.d.ts","sourceRoot":"","sources":["../../src/path-style/shaders.glsl.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,GAAG;IAEpB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"shaders.glsl.d.ts","sourceRoot":"","sources":["../../src/path-style/shaders.glsl.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,OAAO,GAAG;IAEpB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;CAoQvB,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;CAwDlC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;CAyJrC,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;CAqDzB,CAAC"}
|