@deck.gl/extensions 8.10.0-alpha.1 → 8.10.0-alpha.4
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/LICENSE +1 -1
- package/dist/dist.dev.js +7 -4
- package/dist/es5/path-style/shaders.glsl.js +2 -2
- package/dist/es5/path-style/shaders.glsl.js.map +1 -1
- package/dist/es5/terrain/terrain-pass.js +1 -0
- package/dist/es5/terrain/terrain-pass.js.map +1 -1
- package/dist/esm/path-style/shaders.glsl.js +2 -2
- package/dist/esm/path-style/shaders.glsl.js.map +1 -1
- package/dist/esm/terrain/terrain-pass.js +1 -0
- package/dist/esm/terrain/terrain-pass.js.map +1 -1
- package/dist.min.js +41 -38
- package/package.json +3 -2
- package/src/path-style/shaders.glsl.ts +6 -4
- package/src/terrain/terrain-pass.ts +1 -0
- package/typed/path-style/shaders.glsl.d.ts +1 -1
- package/typed/path-style/shaders.glsl.d.ts.map +1 -1
- package/typed/terrain/terrain-pass.d.ts.map +1 -1
- package/typed/brushing/brushing.d.ts +0 -39
- package/typed/brushing/brushing.d.ts.map +0 -1
- package/typed/brushing/brushing.js +0 -83
- package/typed/brushing/shader-module.js +0 -116
- package/typed/clip/clip.d.ts +0 -32
- package/typed/clip/clip.d.ts.map +0 -1
- package/typed/clip/clip.js +0 -114
- package/typed/collide/collide-effect.d.ts +0 -28
- package/typed/collide/collide-effect.d.ts.map +0 -1
- package/typed/collide/collide-pass.d.ts +0 -14
- package/typed/collide/collide-pass.d.ts.map +0 -1
- package/typed/collide/collide.d.ts +0 -41
- package/typed/collide/collide.d.ts.map +0 -1
- package/typed/collide/shader-module.d.ts +0 -4
- package/typed/collide/shader-module.d.ts.map +0 -1
- package/typed/collision-filter/collision-filter.d.ts +0 -41
- package/typed/collision-filter/collision-filter.d.ts.map +0 -1
- package/typed/common/projection-utils.d.ts +0 -27
- package/typed/common/projection-utils.d.ts.map +0 -1
- package/typed/data-filter/aggregator.js +0 -98
- package/typed/data-filter/data-filter.d.ts +0 -90
- package/typed/data-filter/data-filter.d.ts.map +0 -1
- package/typed/data-filter/data-filter.js +0 -159
- package/typed/data-filter/shader-module.js +0 -152
- package/typed/fill-style/fill-style.d.ts +0 -86
- package/typed/fill-style/fill-style.d.ts.map +0 -1
- package/typed/fill-style/fill-style.js +0 -152
- package/typed/fill-style/shaders.glsl.js +0 -95
- package/typed/fp64/fp64.d.ts +0 -8
- package/typed/fp64/fp64.d.ts.map +0 -1
- package/typed/fp64/fp64.js +0 -34
- package/typed/fp64/project64.glsl.js +0 -100
- package/typed/fp64/project64.js +0 -50
- package/typed/index.js +0 -9
- package/typed/mask/mask.d.ts +0 -30
- package/typed/mask/mask.d.ts.map +0 -1
- package/typed/mask/mask.js +0 -48
- package/typed/mask/shader-module.js +0 -73
- package/typed/mask/utils.d.ts +0 -13
- package/typed/mask/utils.d.ts.map +0 -1
- package/typed/path-style/path-style.d.ts +0 -66
- package/typed/path-style/path-style.d.ts.map +0 -1
- package/typed/path-style/path-style.js +0 -107
- package/typed/path-style/shaders.glsl.js +0 -93
- package/typed/terrain/height-map.d.ts +0 -27
- package/typed/terrain/height-map.d.ts.map +0 -1
- package/typed/terrain/shader-module-offset.d.ts +0 -4
- package/typed/terrain/shader-module-offset.d.ts.map +0 -1
- package/typed/terrain/shader-module-source.d.ts +0 -4
- package/typed/terrain/shader-module-source.d.ts.map +0 -1
- package/typed/terrain/terrain.d.ts +0 -21
- package/typed/terrain/terrain.d.ts.map +0 -1
package/LICENSE
CHANGED
package/dist/dist.dev.js
CHANGED
|
@@ -1640,7 +1640,7 @@ float round(float x) {
|
|
|
1640
1640
|
offset = solidLength / 2.0;
|
|
1641
1641
|
}
|
|
1642
1642
|
|
|
1643
|
-
float unitOffset = mod(
|
|
1643
|
+
float unitOffset = mod(vPathPosition.y + offset, unitLength);
|
|
1644
1644
|
|
|
1645
1645
|
if (gapLength > 0.0 && unitOffset > solidLength) {
|
|
1646
1646
|
if (capType <= 0.5) {
|
|
@@ -1673,10 +1673,12 @@ attribute float instanceOffsets;
|
|
|
1673
1673
|
float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;
|
|
1674
1674
|
size *= offsetWidth;
|
|
1675
1675
|
`,
|
|
1676
|
-
"
|
|
1676
|
+
"vs:#main-end": `
|
|
1677
1677
|
float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;
|
|
1678
|
-
|
|
1679
|
-
|
|
1678
|
+
float offsetDir = sign(instanceOffsets);
|
|
1679
|
+
vPathPosition.x = (vPathPosition.x + offsetDir) * offsetWidth - offsetDir;
|
|
1680
|
+
vPathPosition.y *= offsetWidth;
|
|
1681
|
+
vPathLength *= offsetWidth;
|
|
1680
1682
|
`,
|
|
1681
1683
|
"fs:#main-start": `
|
|
1682
1684
|
float isInside;
|
|
@@ -3419,6 +3421,7 @@ if ((terrain_mode == TERRAIN_MODE_USE_COVER) || (terrain_mode == TERRAIN_MODE_US
|
|
|
3419
3421
|
const layers = terrainCover.filterLayers(opts.layers);
|
|
3420
3422
|
target.resize(viewport);
|
|
3421
3423
|
(0, import_core31.withParameters)(this.gl, {
|
|
3424
|
+
clearColor: [0, 0, 0, 0],
|
|
3422
3425
|
depthTest: false
|
|
3423
3426
|
}, () => this.render({
|
|
3424
3427
|
...opts,
|
|
@@ -9,7 +9,7 @@ var dashShaders = {
|
|
|
9
9
|
'vs:#decl': "\nattribute vec2 instanceDashArrays;\nattribute float instanceDashOffsets;\nvarying vec2 vDashArray;\nvarying float vDashOffset;\n",
|
|
10
10
|
'vs:#main-end': "\nvDashArray = instanceDashArrays;\nvDashOffset = instanceDashOffsets / width.x;\n",
|
|
11
11
|
'fs:#decl': "\nuniform float dashAlignMode;\nuniform float capType;\nuniform bool dashGapPickable;\nvarying vec2 vDashArray;\nvarying float vDashOffset;\n\nfloat round(float x) {\n return floor(x + 0.5);\n}\n",
|
|
12
|
-
'fs:#main-start': "\n float solidLength = vDashArray.x;\n float gapLength = vDashArray.y;\n float unitLength = solidLength + gapLength;\n\n float offset;\n\n if (unitLength > 0.0) {\n if (dashAlignMode == 0.0) {\n offset = vDashOffset;\n } else {\n unitLength = vPathLength / round(vPathLength / unitLength);\n offset = solidLength / 2.0;\n }\n\n float unitOffset = mod(
|
|
12
|
+
'fs:#main-start': "\n float solidLength = vDashArray.x;\n float gapLength = vDashArray.y;\n float unitLength = solidLength + gapLength;\n\n float offset;\n\n if (unitLength > 0.0) {\n if (dashAlignMode == 0.0) {\n offset = vDashOffset;\n } else {\n unitLength = vPathLength / round(vPathLength / unitLength);\n offset = solidLength / 2.0;\n }\n\n float unitOffset = mod(vPathPosition.y + offset, unitLength);\n\n if (gapLength > 0.0 && unitOffset > solidLength) {\n if (capType <= 0.5) {\n if (!(dashGapPickable && picking_uActive)) {\n discard;\n }\n } else {\n float distToEnd = length(vec2(\n min(unitOffset - solidLength, unitLength - unitOffset),\n vPathPosition.x\n ));\n if (distToEnd > 1.0) {\n if (!(dashGapPickable && picking_uActive)) {\n discard;\n }\n }\n }\n }\n }\n"
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
15
|
exports.dashShaders = dashShaders;
|
|
@@ -17,7 +17,7 @@ var offsetShaders = {
|
|
|
17
17
|
inject: {
|
|
18
18
|
'vs:#decl': "\nattribute float instanceOffsets;\n",
|
|
19
19
|
'vs:DECKGL_FILTER_SIZE': "\n float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;\n size *= offsetWidth;\n",
|
|
20
|
-
'
|
|
20
|
+
'vs:#main-end': "\n float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;\n float offsetDir = sign(instanceOffsets);\n vPathPosition.x = (vPathPosition.x + offsetDir) * offsetWidth - offsetDir;\n vPathPosition.y *= offsetWidth;\n vPathLength *= offsetWidth;\n",
|
|
21
21
|
'fs:#main-start': "\n float isInside;\n isInside = step(-1.0, vPathPosition.x) * step(vPathPosition.x, 1.0);\n if (isInside == 0.0) {\n discard;\n }\n"
|
|
22
22
|
}
|
|
23
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/path-style/shaders.glsl.ts"],"names":["dashShaders","inject","offsetShaders"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG;AACzBC,EAAAA,MAAM,EAAE;AACN,oJADM;AAQN,wGARM;AAaN,sNAbM;AAiCN;AAjCM;AADiB,CAApB;;AA0EA,IAAMC,aAAa,GAAG;AAC3BD,EAAAA,MAAM,EAAE;AACN,sDADM;AAIN,kHAJM;AAQN,
|
|
1
|
+
{"version":3,"sources":["../../../src/path-style/shaders.glsl.ts"],"names":["dashShaders","inject","offsetShaders"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG;AACzBC,EAAAA,MAAM,EAAE;AACN,oJADM;AAQN,wGARM;AAaN,sNAbM;AAiCN;AAjCM;AADiB,CAApB;;AA0EA,IAAMC,aAAa,GAAG;AAC3BD,EAAAA,MAAM,EAAE;AACN,sDADM;AAIN,kHAJM;AAQN,6QARM;AAeN;AAfM;AADmB,CAAtB","sourcesContent":["export const dashShaders = {\n inject: {\n 'vs:#decl': `\nattribute vec2 instanceDashArrays;\nattribute float instanceDashOffsets;\nvarying vec2 vDashArray;\nvarying float vDashOffset;\n`,\n\n 'vs:#main-end': `\nvDashArray = instanceDashArrays;\nvDashOffset = instanceDashOffsets / width.x;\n`,\n\n 'fs:#decl': `\nuniform float dashAlignMode;\nuniform float capType;\nuniform bool dashGapPickable;\nvarying vec2 vDashArray;\nvarying float vDashOffset;\n\nfloat round(float x) {\n return floor(x + 0.5);\n}\n`,\n\n // if given position is in the gap part of the dashed line\n // dashArray.x: solid stroke length, relative to width\n // dashArray.y: gap length, relative to width\n // alignMode:\n // 0 - no adjustment\n // o---- ---- ---- ---- o---- -o---- ---- o\n // 1 - stretch to fit, draw half dash at each end for nicer joints\n // o-- ---- ---- ---- --o-- --o-- ---- --o\n 'fs:#main-start': `\n float solidLength = vDashArray.x;\n float gapLength = vDashArray.y;\n float unitLength = solidLength + gapLength;\n\n float offset;\n\n if (unitLength > 0.0) {\n if (dashAlignMode == 0.0) {\n offset = vDashOffset;\n } else {\n unitLength = vPathLength / round(vPathLength / unitLength);\n offset = solidLength / 2.0;\n }\n\n float unitOffset = mod(vPathPosition.y + offset, unitLength);\n\n if (gapLength > 0.0 && unitOffset > solidLength) {\n if (capType <= 0.5) {\n if (!(dashGapPickable && picking_uActive)) {\n discard;\n }\n } else {\n // caps are rounded, test the distance to solid ends\n float distToEnd = length(vec2(\n min(unitOffset - solidLength, unitLength - unitOffset),\n vPathPosition.x\n ));\n if (distToEnd > 1.0) {\n if (!(dashGapPickable && picking_uActive)) {\n discard;\n }\n }\n }\n }\n }\n`\n }\n};\n\nexport const offsetShaders = {\n inject: {\n 'vs:#decl': `\nattribute float instanceOffsets;\n`,\n 'vs:DECKGL_FILTER_SIZE': `\n float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;\n size *= offsetWidth;\n`,\n 'vs:#main-end': `\n float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;\n float offsetDir = sign(instanceOffsets);\n vPathPosition.x = (vPathPosition.x + offsetDir) * offsetWidth - offsetDir;\n vPathPosition.y *= offsetWidth;\n vPathLength *= offsetWidth;\n`,\n 'fs:#main-start': `\n float isInside;\n isInside = step(-1.0, vPathPosition.x) * step(vPathPosition.x, 1.0);\n if (isInside == 0.0) {\n discard;\n }\n`\n }\n};\n"],"file":"shaders.glsl.js"}
|
|
@@ -103,6 +103,7 @@ var TerrainPass = function (_LayersPass) {
|
|
|
103
103
|
var layers = terrainCover.filterLayers(opts.layers);
|
|
104
104
|
target.resize(viewport);
|
|
105
105
|
(0, _core.withParameters)(this.gl, {
|
|
106
|
+
clearColor: [0, 0, 0, 0],
|
|
106
107
|
depthTest: false
|
|
107
108
|
}, function () {
|
|
108
109
|
return _this2.render(_objectSpread(_objectSpread({}, opts), {}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/terrain/terrain-pass.ts"],"names":["TerrainPass","viewport","opts","layers","result","drawParamsByIndex","_getDrawLayerParams","i","length","layer","isComposite","shouldDrawLayer","push","heightMap","target","getRenderFramebuffer","renderViewport","resize","gl","clearColor","blend","blendFunc","blendEquation","depthTest","render","pass","viewports","effects","terrainCover","filterLayers","id","LayersPass"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;;;IASaA,W;;;;;;;;;;;;WACX,6BAAoBC,QAApB,EAAwCC,IAAxC,EAAiF;AAC/E,UAAOC,MAAP,GAAiBD,IAAjB,CAAOC,MAAP;AACA,UAAMC,MAAe,GAAG,EAAxB;;AACA,UAAMC,iBAAiB,GAAG,KAAKC,mBAAL,CAAyBL,QAAzB,EAAmCC,IAAnC,EAAyC,IAAzC,CAA1B;;AACA,WAAK,IAAIK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,MAAM,CAACK,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;AACtC,YAAME,KAAK,GAAGN,MAAM,CAACI,CAAD,CAApB;;AACA,YAAI,CAACE,KAAK,CAACC,WAAP,IAAsBL,iBAAiB,CAACE,CAAD,CAAjB,CAAqBI,eAA/C,EAAgE;AAC9DP,UAAAA,MAAM,CAACQ,IAAP,CAAYH,KAAZ;AACD;AACF;;AAED,aAAOL,MAAP;AACD;;;WAED,yBAAgBS,SAAhB,EAA6CX,IAA7C,EAAsF;AAAA;;AAEpF,UAAMY,MAAM,GAAGD,SAAS,CAACE,oBAAV,EAAf;AACA,UAAMd,QAAQ,GAAGY,SAAS,CAACG,cAA3B;;AAEA,UAAI,CAACF,MAAD,IAAW,CAACb,QAAhB,EAA0B;AACxB;AACD;;AAEDa,MAAAA,MAAM,CAACG,MAAP,CAAchB,QAAd;AAEA,gCACE,KAAKiB,EADP,EAEE;AACEC,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CADd;AAEEC,QAAAA,KAAK,EAAE,IAFT;AAGEC,QAAAA,SAAS,EAAE,MAHb;AAIEC,QAAAA,aAAa,OAJf;AAKEC,QAAAA,SAAS,EAAE;AALb,OAFF,EASE;AAAA,eACE,KAAI,CAACC,MAAL,iCACKtB,IADL;AAEEY,UAAAA,MAAM,EAANA,MAFF;AAGEW,UAAAA,IAAI,EAAE,oBAHR;AAIEtB,UAAAA,MAAM,EAAED,IAAI,CAACC,MAJf;AAKEuB,UAAAA,SAAS,EAAE,CAACzB,QAAD,CALb;AAME0B,UAAAA,OAAO,EAAE;AANX,WADF;AAAA,OATF;AAmBD;;;WAED,4BAAmBC,YAAnB,EAA+C1B,IAA/C,EAAwF;AAAA;;AAEtF,UAAMY,MAAM,GAAGc,YAAY,CAACb,oBAAb,EAAf;AACA,UAAMd,QAAQ,GAAG2B,YAAY,CAACZ,cAA9B;;AAEA,UAAI,CAACF,MAAD,IAAW,CAACb,QAAhB,EAA0B;AACxB;AACD;;AAED,UAAME,MAAM,GAAGyB,YAAY,CAACC,YAAb,CAA0B3B,IAAI,CAACC,MAA/B,CAAf;AACAW,MAAAA,MAAM,CAACG,MAAP,CAAchB,QAAd;AAEA,gCACE,KAAKiB,EADP,EAEE;
|
|
1
|
+
{"version":3,"sources":["../../../src/terrain/terrain-pass.ts"],"names":["TerrainPass","viewport","opts","layers","result","drawParamsByIndex","_getDrawLayerParams","i","length","layer","isComposite","shouldDrawLayer","push","heightMap","target","getRenderFramebuffer","renderViewport","resize","gl","clearColor","blend","blendFunc","blendEquation","depthTest","render","pass","viewports","effects","terrainCover","filterLayers","id","LayersPass"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;;;IASaA,W;;;;;;;;;;;;WACX,6BAAoBC,QAApB,EAAwCC,IAAxC,EAAiF;AAC/E,UAAOC,MAAP,GAAiBD,IAAjB,CAAOC,MAAP;AACA,UAAMC,MAAe,GAAG,EAAxB;;AACA,UAAMC,iBAAiB,GAAG,KAAKC,mBAAL,CAAyBL,QAAzB,EAAmCC,IAAnC,EAAyC,IAAzC,CAA1B;;AACA,WAAK,IAAIK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,MAAM,CAACK,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;AACtC,YAAME,KAAK,GAAGN,MAAM,CAACI,CAAD,CAApB;;AACA,YAAI,CAACE,KAAK,CAACC,WAAP,IAAsBL,iBAAiB,CAACE,CAAD,CAAjB,CAAqBI,eAA/C,EAAgE;AAC9DP,UAAAA,MAAM,CAACQ,IAAP,CAAYH,KAAZ;AACD;AACF;;AAED,aAAOL,MAAP;AACD;;;WAED,yBAAgBS,SAAhB,EAA6CX,IAA7C,EAAsF;AAAA;;AAEpF,UAAMY,MAAM,GAAGD,SAAS,CAACE,oBAAV,EAAf;AACA,UAAMd,QAAQ,GAAGY,SAAS,CAACG,cAA3B;;AAEA,UAAI,CAACF,MAAD,IAAW,CAACb,QAAhB,EAA0B;AACxB;AACD;;AAEDa,MAAAA,MAAM,CAACG,MAAP,CAAchB,QAAd;AAEA,gCACE,KAAKiB,EADP,EAEE;AACEC,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CADd;AAEEC,QAAAA,KAAK,EAAE,IAFT;AAGEC,QAAAA,SAAS,EAAE,MAHb;AAIEC,QAAAA,aAAa,OAJf;AAKEC,QAAAA,SAAS,EAAE;AALb,OAFF,EASE;AAAA,eACE,KAAI,CAACC,MAAL,iCACKtB,IADL;AAEEY,UAAAA,MAAM,EAANA,MAFF;AAGEW,UAAAA,IAAI,EAAE,oBAHR;AAIEtB,UAAAA,MAAM,EAAED,IAAI,CAACC,MAJf;AAKEuB,UAAAA,SAAS,EAAE,CAACzB,QAAD,CALb;AAME0B,UAAAA,OAAO,EAAE;AANX,WADF;AAAA,OATF;AAmBD;;;WAED,4BAAmBC,YAAnB,EAA+C1B,IAA/C,EAAwF;AAAA;;AAEtF,UAAMY,MAAM,GAAGc,YAAY,CAACb,oBAAb,EAAf;AACA,UAAMd,QAAQ,GAAG2B,YAAY,CAACZ,cAA9B;;AAEA,UAAI,CAACF,MAAD,IAAW,CAACb,QAAhB,EAA0B;AACxB;AACD;;AAED,UAAME,MAAM,GAAGyB,YAAY,CAACC,YAAb,CAA0B3B,IAAI,CAACC,MAA/B,CAAf;AACAW,MAAAA,MAAM,CAACG,MAAP,CAAchB,QAAd;AAEA,gCACE,KAAKiB,EADP,EAEE;AACEC,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CADd;AAEEI,QAAAA,SAAS,EAAE;AAFb,OAFF,EAME;AAAA,eACE,MAAI,CAACC,MAAL,iCACKtB,IADL;AAEEY,UAAAA,MAAM,EAANA,MAFF;AAGEW,UAAAA,IAAI,0BAAmBG,YAAY,CAACE,EAAhC,CAHN;AAIE3B,UAAAA,MAAM,EAANA,MAJF;AAKEwB,UAAAA,OAAO,EAAE,EALX;AAMED,UAAAA,SAAS,EAAE,CAACzB,QAAD;AANb,WADF;AAAA,OANF;AAgBD;;;EA3E8B8B,kB","sourcesContent":["import {withParameters} from '@luma.gl/core';\nimport {Layer, Viewport, _LayersPass as LayersPass, LayersPassRenderOptions} from '@deck.gl/core';\nimport type {HeightMapBuilder} from './height-map-builder';\nimport type {TerrainCover} from './terrain-cover';\n\nimport GL from '@luma.gl/constants';\n\nexport type TerrainPassRenderOptions = LayersPassRenderOptions;\n\n/** Renders textures used by the TerrainEffect render pass */\nexport class TerrainPass extends LayersPass {\n getRenderableLayers(viewport: Viewport, opts: TerrainPassRenderOptions): Layer[] {\n const {layers} = opts;\n const result: Layer[] = [];\n const drawParamsByIndex = this._getDrawLayerParams(viewport, opts, true);\n for (let i = 0; i < layers.length; i++) {\n const layer = layers[i];\n if (!layer.isComposite && drawParamsByIndex[i].shouldDrawLayer) {\n result.push(layer);\n }\n }\n\n return result;\n }\n\n renderHeightMap(heightMap: HeightMapBuilder, opts: Partial<TerrainPassRenderOptions>) {\n // console.log('Updating height map')\n const target = heightMap.getRenderFramebuffer();\n const viewport = heightMap.renderViewport;\n\n if (!target || !viewport) {\n return;\n }\n\n target.resize(viewport);\n\n withParameters(\n this.gl,\n {\n clearColor: [0, 0, 0, 0],\n blend: true,\n blendFunc: [GL.ONE, GL.ONE],\n blendEquation: GL.MAX,\n depthTest: false\n },\n () =>\n this.render({\n ...opts,\n target,\n pass: 'terrain-height-map',\n layers: opts.layers!,\n viewports: [viewport],\n effects: []\n })\n );\n }\n\n renderTerrainCover(terrainCover: TerrainCover, opts: Partial<TerrainPassRenderOptions>) {\n // console.log('Updating terrain cover ' + terrainCover.id)\n const target = terrainCover.getRenderFramebuffer();\n const viewport = terrainCover.renderViewport;\n\n if (!target || !viewport) {\n return;\n }\n\n const layers = terrainCover.filterLayers(opts.layers!);\n target.resize(viewport);\n\n withParameters(\n this.gl,\n {\n clearColor: [0, 0, 0, 0],\n depthTest: false\n },\n () =>\n this.render({\n ...opts,\n target,\n pass: `terrain-cover-${terrainCover.id}`,\n layers,\n effects: [],\n viewports: [viewport]\n })\n );\n }\n}\n"],"file":"terrain-pass.js"}
|
|
@@ -3,14 +3,14 @@ export const dashShaders = {
|
|
|
3
3
|
'vs:#decl': "\nattribute vec2 instanceDashArrays;\nattribute float instanceDashOffsets;\nvarying vec2 vDashArray;\nvarying float vDashOffset;\n",
|
|
4
4
|
'vs:#main-end': "\nvDashArray = instanceDashArrays;\nvDashOffset = instanceDashOffsets / width.x;\n",
|
|
5
5
|
'fs:#decl': "\nuniform float dashAlignMode;\nuniform float capType;\nuniform bool dashGapPickable;\nvarying vec2 vDashArray;\nvarying float vDashOffset;\n\nfloat round(float x) {\n return floor(x + 0.5);\n}\n",
|
|
6
|
-
'fs:#main-start': "\n float solidLength = vDashArray.x;\n float gapLength = vDashArray.y;\n float unitLength = solidLength + gapLength;\n\n float offset;\n\n if (unitLength > 0.0) {\n if (dashAlignMode == 0.0) {\n offset = vDashOffset;\n } else {\n unitLength = vPathLength / round(vPathLength / unitLength);\n offset = solidLength / 2.0;\n }\n\n float unitOffset = mod(
|
|
6
|
+
'fs:#main-start': "\n float solidLength = vDashArray.x;\n float gapLength = vDashArray.y;\n float unitLength = solidLength + gapLength;\n\n float offset;\n\n if (unitLength > 0.0) {\n if (dashAlignMode == 0.0) {\n offset = vDashOffset;\n } else {\n unitLength = vPathLength / round(vPathLength / unitLength);\n offset = solidLength / 2.0;\n }\n\n float unitOffset = mod(vPathPosition.y + offset, unitLength);\n\n if (gapLength > 0.0 && unitOffset > solidLength) {\n if (capType <= 0.5) {\n if (!(dashGapPickable && picking_uActive)) {\n discard;\n }\n } else {\n float distToEnd = length(vec2(\n min(unitOffset - solidLength, unitLength - unitOffset),\n vPathPosition.x\n ));\n if (distToEnd > 1.0) {\n if (!(dashGapPickable && picking_uActive)) {\n discard;\n }\n }\n }\n }\n }\n"
|
|
7
7
|
}
|
|
8
8
|
};
|
|
9
9
|
export const offsetShaders = {
|
|
10
10
|
inject: {
|
|
11
11
|
'vs:#decl': "\nattribute float instanceOffsets;\n",
|
|
12
12
|
'vs:DECKGL_FILTER_SIZE': "\n float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;\n size *= offsetWidth;\n",
|
|
13
|
-
'
|
|
13
|
+
'vs:#main-end': "\n float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;\n float offsetDir = sign(instanceOffsets);\n vPathPosition.x = (vPathPosition.x + offsetDir) * offsetWidth - offsetDir;\n vPathPosition.y *= offsetWidth;\n vPathLength *= offsetWidth;\n",
|
|
14
14
|
'fs:#main-start': "\n float isInside;\n isInside = step(-1.0, vPathPosition.x) * step(vPathPosition.x, 1.0);\n if (isInside == 0.0) {\n discard;\n }\n"
|
|
15
15
|
}
|
|
16
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/path-style/shaders.glsl.ts"],"names":["dashShaders","inject","offsetShaders"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG;AACzBC,EAAAA,MAAM,EAAE;AACN,oJADM;AAQN,wGARM;AAaN,sNAbM;AAiCN;AAjCM;AADiB,CAApB;AA0EP,OAAO,MAAMC,aAAa,GAAG;AAC3BD,EAAAA,MAAM,EAAE;AACN,sDADM;AAIN,kHAJM;AAQN,
|
|
1
|
+
{"version":3,"sources":["../../../src/path-style/shaders.glsl.ts"],"names":["dashShaders","inject","offsetShaders"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG;AACzBC,EAAAA,MAAM,EAAE;AACN,oJADM;AAQN,wGARM;AAaN,sNAbM;AAiCN;AAjCM;AADiB,CAApB;AA0EP,OAAO,MAAMC,aAAa,GAAG;AAC3BD,EAAAA,MAAM,EAAE;AACN,sDADM;AAIN,kHAJM;AAQN,6QARM;AAeN;AAfM;AADmB,CAAtB","sourcesContent":["export const dashShaders = {\n inject: {\n 'vs:#decl': `\nattribute vec2 instanceDashArrays;\nattribute float instanceDashOffsets;\nvarying vec2 vDashArray;\nvarying float vDashOffset;\n`,\n\n 'vs:#main-end': `\nvDashArray = instanceDashArrays;\nvDashOffset = instanceDashOffsets / width.x;\n`,\n\n 'fs:#decl': `\nuniform float dashAlignMode;\nuniform float capType;\nuniform bool dashGapPickable;\nvarying vec2 vDashArray;\nvarying float vDashOffset;\n\nfloat round(float x) {\n return floor(x + 0.5);\n}\n`,\n\n // if given position is in the gap part of the dashed line\n // dashArray.x: solid stroke length, relative to width\n // dashArray.y: gap length, relative to width\n // alignMode:\n // 0 - no adjustment\n // o---- ---- ---- ---- o---- -o---- ---- o\n // 1 - stretch to fit, draw half dash at each end for nicer joints\n // o-- ---- ---- ---- --o-- --o-- ---- --o\n 'fs:#main-start': `\n float solidLength = vDashArray.x;\n float gapLength = vDashArray.y;\n float unitLength = solidLength + gapLength;\n\n float offset;\n\n if (unitLength > 0.0) {\n if (dashAlignMode == 0.0) {\n offset = vDashOffset;\n } else {\n unitLength = vPathLength / round(vPathLength / unitLength);\n offset = solidLength / 2.0;\n }\n\n float unitOffset = mod(vPathPosition.y + offset, unitLength);\n\n if (gapLength > 0.0 && unitOffset > solidLength) {\n if (capType <= 0.5) {\n if (!(dashGapPickable && picking_uActive)) {\n discard;\n }\n } else {\n // caps are rounded, test the distance to solid ends\n float distToEnd = length(vec2(\n min(unitOffset - solidLength, unitLength - unitOffset),\n vPathPosition.x\n ));\n if (distToEnd > 1.0) {\n if (!(dashGapPickable && picking_uActive)) {\n discard;\n }\n }\n }\n }\n }\n`\n }\n};\n\nexport const offsetShaders = {\n inject: {\n 'vs:#decl': `\nattribute float instanceOffsets;\n`,\n 'vs:DECKGL_FILTER_SIZE': `\n float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;\n size *= offsetWidth;\n`,\n 'vs:#main-end': `\n float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;\n float offsetDir = sign(instanceOffsets);\n vPathPosition.x = (vPathPosition.x + offsetDir) * offsetWidth - offsetDir;\n vPathPosition.y *= offsetWidth;\n vPathLength *= offsetWidth;\n`,\n 'fs:#main-start': `\n float isInside;\n isInside = step(-1.0, vPathPosition.x) * step(vPathPosition.x, 1.0);\n if (isInside == 0.0) {\n discard;\n }\n`\n }\n};\n"],"file":"shaders.glsl.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/terrain/terrain-pass.ts"],"names":["withParameters","_LayersPass","LayersPass","TerrainPass","getRenderableLayers","viewport","opts","layers","result","drawParamsByIndex","_getDrawLayerParams","i","length","layer","isComposite","shouldDrawLayer","push","renderHeightMap","heightMap","target","getRenderFramebuffer","renderViewport","resize","gl","clearColor","blend","blendFunc","blendEquation","depthTest","render","pass","viewports","effects","renderTerrainCover","terrainCover","filterLayers","id"],"mappings":"AAAA,SAAQA,cAAR,QAA6B,eAA7B;AACA,SAAyBC,WAAW,IAAIC,UAAxC,QAAkF,eAAlF;AASA,OAAO,MAAMC,WAAN,SAA0BD,UAA1B,CAAqC;AAC1CE,EAAAA,mBAAmB,CAACC,QAAD,EAAqBC,IAArB,EAA8D;AAC/E,UAAM;AAACC,MAAAA;AAAD,QAAWD,IAAjB;AACA,UAAME,MAAe,GAAG,EAAxB;;AACA,UAAMC,iBAAiB,GAAG,KAAKC,mBAAL,CAAyBL,QAAzB,EAAmCC,IAAnC,EAAyC,IAAzC,CAA1B;;AACA,SAAK,IAAIK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,MAAM,CAACK,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;AACtC,YAAME,KAAK,GAAGN,MAAM,CAACI,CAAD,CAApB;;AACA,UAAI,CAACE,KAAK,CAACC,WAAP,IAAsBL,iBAAiB,CAACE,CAAD,CAAjB,CAAqBI,eAA/C,EAAgE;AAC9DP,QAAAA,MAAM,CAACQ,IAAP,CAAYH,KAAZ;AACD;AACF;;AAED,WAAOL,MAAP;AACD;;AAEDS,EAAAA,eAAe,CAACC,SAAD,EAA8BZ,IAA9B,EAAuE;AAEpF,UAAMa,MAAM,GAAGD,SAAS,CAACE,oBAAV,EAAf;AACA,UAAMf,QAAQ,GAAGa,SAAS,CAACG,cAA3B;;AAEA,QAAI,CAACF,MAAD,IAAW,CAACd,QAAhB,EAA0B;AACxB;AACD;;AAEDc,IAAAA,MAAM,CAACG,MAAP,CAAcjB,QAAd;AAEAL,IAAAA,cAAc,CACZ,KAAKuB,EADO,EAEZ;AACEC,MAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CADd;AAEEC,MAAAA,KAAK,EAAE,IAFT;AAGEC,MAAAA,SAAS,EAAE,MAHb;AAIEC,MAAAA,aAAa,OAJf;AAKEC,MAAAA,SAAS,EAAE;AALb,KAFY,EASZ,MACE,KAAKC,MAAL,CAAY,EACV,GAAGvB,IADO;AAEVa,MAAAA,MAFU;AAGVW,MAAAA,IAAI,EAAE,oBAHI;AAIVvB,MAAAA,MAAM,EAAED,IAAI,CAACC,MAJH;AAKVwB,MAAAA,SAAS,EAAE,CAAC1B,QAAD,CALD;AAMV2B,MAAAA,OAAO,EAAE;AANC,KAAZ,CAVU,CAAd;AAmBD;;AAEDC,EAAAA,kBAAkB,CAACC,YAAD,EAA6B5B,IAA7B,EAAsE;AAEtF,UAAMa,MAAM,GAAGe,YAAY,CAACd,oBAAb,EAAf;AACA,UAAMf,QAAQ,GAAG6B,YAAY,CAACb,cAA9B;;AAEA,QAAI,CAACF,MAAD,IAAW,CAACd,QAAhB,EAA0B;AACxB;AACD;;AAED,UAAME,MAAM,GAAG2B,YAAY,CAACC,YAAb,CAA0B7B,IAAI,CAACC,MAA/B,CAAf;AACAY,IAAAA,MAAM,CAACG,MAAP,CAAcjB,QAAd;AAEAL,IAAAA,cAAc,CACZ,KAAKuB,EADO,EAEZ;
|
|
1
|
+
{"version":3,"sources":["../../../src/terrain/terrain-pass.ts"],"names":["withParameters","_LayersPass","LayersPass","TerrainPass","getRenderableLayers","viewport","opts","layers","result","drawParamsByIndex","_getDrawLayerParams","i","length","layer","isComposite","shouldDrawLayer","push","renderHeightMap","heightMap","target","getRenderFramebuffer","renderViewport","resize","gl","clearColor","blend","blendFunc","blendEquation","depthTest","render","pass","viewports","effects","renderTerrainCover","terrainCover","filterLayers","id"],"mappings":"AAAA,SAAQA,cAAR,QAA6B,eAA7B;AACA,SAAyBC,WAAW,IAAIC,UAAxC,QAAkF,eAAlF;AASA,OAAO,MAAMC,WAAN,SAA0BD,UAA1B,CAAqC;AAC1CE,EAAAA,mBAAmB,CAACC,QAAD,EAAqBC,IAArB,EAA8D;AAC/E,UAAM;AAACC,MAAAA;AAAD,QAAWD,IAAjB;AACA,UAAME,MAAe,GAAG,EAAxB;;AACA,UAAMC,iBAAiB,GAAG,KAAKC,mBAAL,CAAyBL,QAAzB,EAAmCC,IAAnC,EAAyC,IAAzC,CAA1B;;AACA,SAAK,IAAIK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,MAAM,CAACK,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;AACtC,YAAME,KAAK,GAAGN,MAAM,CAACI,CAAD,CAApB;;AACA,UAAI,CAACE,KAAK,CAACC,WAAP,IAAsBL,iBAAiB,CAACE,CAAD,CAAjB,CAAqBI,eAA/C,EAAgE;AAC9DP,QAAAA,MAAM,CAACQ,IAAP,CAAYH,KAAZ;AACD;AACF;;AAED,WAAOL,MAAP;AACD;;AAEDS,EAAAA,eAAe,CAACC,SAAD,EAA8BZ,IAA9B,EAAuE;AAEpF,UAAMa,MAAM,GAAGD,SAAS,CAACE,oBAAV,EAAf;AACA,UAAMf,QAAQ,GAAGa,SAAS,CAACG,cAA3B;;AAEA,QAAI,CAACF,MAAD,IAAW,CAACd,QAAhB,EAA0B;AACxB;AACD;;AAEDc,IAAAA,MAAM,CAACG,MAAP,CAAcjB,QAAd;AAEAL,IAAAA,cAAc,CACZ,KAAKuB,EADO,EAEZ;AACEC,MAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CADd;AAEEC,MAAAA,KAAK,EAAE,IAFT;AAGEC,MAAAA,SAAS,EAAE,MAHb;AAIEC,MAAAA,aAAa,OAJf;AAKEC,MAAAA,SAAS,EAAE;AALb,KAFY,EASZ,MACE,KAAKC,MAAL,CAAY,EACV,GAAGvB,IADO;AAEVa,MAAAA,MAFU;AAGVW,MAAAA,IAAI,EAAE,oBAHI;AAIVvB,MAAAA,MAAM,EAAED,IAAI,CAACC,MAJH;AAKVwB,MAAAA,SAAS,EAAE,CAAC1B,QAAD,CALD;AAMV2B,MAAAA,OAAO,EAAE;AANC,KAAZ,CAVU,CAAd;AAmBD;;AAEDC,EAAAA,kBAAkB,CAACC,YAAD,EAA6B5B,IAA7B,EAAsE;AAEtF,UAAMa,MAAM,GAAGe,YAAY,CAACd,oBAAb,EAAf;AACA,UAAMf,QAAQ,GAAG6B,YAAY,CAACb,cAA9B;;AAEA,QAAI,CAACF,MAAD,IAAW,CAACd,QAAhB,EAA0B;AACxB;AACD;;AAED,UAAME,MAAM,GAAG2B,YAAY,CAACC,YAAb,CAA0B7B,IAAI,CAACC,MAA/B,CAAf;AACAY,IAAAA,MAAM,CAACG,MAAP,CAAcjB,QAAd;AAEAL,IAAAA,cAAc,CACZ,KAAKuB,EADO,EAEZ;AACEC,MAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CADd;AAEEI,MAAAA,SAAS,EAAE;AAFb,KAFY,EAMZ,MACE,KAAKC,MAAL,CAAY,EACV,GAAGvB,IADO;AAEVa,MAAAA,MAFU;AAGVW,MAAAA,IAAI,0BAAmBI,YAAY,CAACE,EAAhC,CAHM;AAIV7B,MAAAA,MAJU;AAKVyB,MAAAA,OAAO,EAAE,EALC;AAMVD,MAAAA,SAAS,EAAE,CAAC1B,QAAD;AAND,KAAZ,CAPU,CAAd;AAgBD;;AA3EyC","sourcesContent":["import {withParameters} from '@luma.gl/core';\nimport {Layer, Viewport, _LayersPass as LayersPass, LayersPassRenderOptions} from '@deck.gl/core';\nimport type {HeightMapBuilder} from './height-map-builder';\nimport type {TerrainCover} from './terrain-cover';\n\nimport GL from '@luma.gl/constants';\n\nexport type TerrainPassRenderOptions = LayersPassRenderOptions;\n\n/** Renders textures used by the TerrainEffect render pass */\nexport class TerrainPass extends LayersPass {\n getRenderableLayers(viewport: Viewport, opts: TerrainPassRenderOptions): Layer[] {\n const {layers} = opts;\n const result: Layer[] = [];\n const drawParamsByIndex = this._getDrawLayerParams(viewport, opts, true);\n for (let i = 0; i < layers.length; i++) {\n const layer = layers[i];\n if (!layer.isComposite && drawParamsByIndex[i].shouldDrawLayer) {\n result.push(layer);\n }\n }\n\n return result;\n }\n\n renderHeightMap(heightMap: HeightMapBuilder, opts: Partial<TerrainPassRenderOptions>) {\n // console.log('Updating height map')\n const target = heightMap.getRenderFramebuffer();\n const viewport = heightMap.renderViewport;\n\n if (!target || !viewport) {\n return;\n }\n\n target.resize(viewport);\n\n withParameters(\n this.gl,\n {\n clearColor: [0, 0, 0, 0],\n blend: true,\n blendFunc: [GL.ONE, GL.ONE],\n blendEquation: GL.MAX,\n depthTest: false\n },\n () =>\n this.render({\n ...opts,\n target,\n pass: 'terrain-height-map',\n layers: opts.layers!,\n viewports: [viewport],\n effects: []\n })\n );\n }\n\n renderTerrainCover(terrainCover: TerrainCover, opts: Partial<TerrainPassRenderOptions>) {\n // console.log('Updating terrain cover ' + terrainCover.id)\n const target = terrainCover.getRenderFramebuffer();\n const viewport = terrainCover.renderViewport;\n\n if (!target || !viewport) {\n return;\n }\n\n const layers = terrainCover.filterLayers(opts.layers!);\n target.resize(viewport);\n\n withParameters(\n this.gl,\n {\n clearColor: [0, 0, 0, 0],\n depthTest: false\n },\n () =>\n this.render({\n ...opts,\n target,\n pass: `terrain-cover-${terrainCover.id}`,\n layers,\n effects: [],\n viewports: [viewport]\n })\n );\n }\n}\n"],"file":"terrain-pass.js"}
|