@deck.gl/extensions 8.10.0-alpha.6 → 9.0.0-alpha.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.
Files changed (131) hide show
  1. package/dist/dist.dev.js +10396 -530
  2. package/dist/es5/brushing/brushing-extension.js +8 -5
  3. package/dist/es5/brushing/brushing-extension.js.map +1 -1
  4. package/dist/es5/clip/clip-extension.js.map +1 -1
  5. package/dist/es5/collision-filter/collision-filter-effect.js +41 -29
  6. package/dist/es5/collision-filter/collision-filter-effect.js.map +1 -1
  7. package/dist/es5/collision-filter/collision-filter-pass.js +4 -5
  8. package/dist/es5/collision-filter/collision-filter-pass.js.map +1 -1
  9. package/dist/es5/collision-filter/shader-module.js.map +1 -1
  10. package/dist/es5/data-filter/aggregator.js +18 -11
  11. package/dist/es5/data-filter/aggregator.js.map +1 -1
  12. package/dist/es5/data-filter/data-filter-extension.js +27 -27
  13. package/dist/es5/data-filter/data-filter-extension.js.map +1 -1
  14. package/dist/es5/fill-style/fill-style-extension.js +4 -6
  15. package/dist/es5/fill-style/fill-style-extension.js.map +1 -1
  16. package/dist/es5/fill-style/shaders.glsl.js.map +1 -1
  17. package/dist/es5/mask/mask-effect.js +5 -7
  18. package/dist/es5/mask/mask-effect.js.map +1 -1
  19. package/dist/es5/mask/mask-pass.js +18 -13
  20. package/dist/es5/mask/mask-pass.js.map +1 -1
  21. package/dist/es5/mask/shader-module.js.map +1 -1
  22. package/dist/es5/path-style/path-style-extension.js +14 -11
  23. package/dist/es5/path-style/path-style-extension.js.map +1 -1
  24. package/dist/es5/terrain/height-map-builder.js +7 -11
  25. package/dist/es5/terrain/height-map-builder.js.map +1 -1
  26. package/dist/es5/terrain/shader-module.js.map +1 -1
  27. package/dist/es5/terrain/terrain-cover.js +6 -6
  28. package/dist/es5/terrain/terrain-cover.js.map +1 -1
  29. package/dist/es5/terrain/terrain-effect.js +11 -13
  30. package/dist/es5/terrain/terrain-effect.js.map +1 -1
  31. package/dist/es5/terrain/terrain-pass.js +7 -5
  32. package/dist/es5/terrain/terrain-pass.js.map +1 -1
  33. package/dist/es5/terrain/terrain-picking-pass.js +2 -2
  34. package/dist/es5/terrain/terrain-picking-pass.js.map +1 -1
  35. package/dist/es5/terrain/utils.js +12 -9
  36. package/dist/es5/terrain/utils.js.map +1 -1
  37. package/dist/es5/utils/debug.js +2 -2
  38. package/dist/es5/utils/debug.js.map +1 -1
  39. package/dist/esm/brushing/brushing-extension.js +8 -5
  40. package/dist/esm/brushing/brushing-extension.js.map +1 -1
  41. package/dist/esm/clip/clip-extension.js.map +1 -1
  42. package/dist/esm/collision-filter/collision-filter-effect.js +29 -28
  43. package/dist/esm/collision-filter/collision-filter-effect.js.map +1 -1
  44. package/dist/esm/collision-filter/collision-filter-pass.js +2 -3
  45. package/dist/esm/collision-filter/collision-filter-pass.js.map +1 -1
  46. package/dist/esm/collision-filter/shader-module.js.map +1 -1
  47. package/dist/esm/data-filter/aggregator.js +19 -15
  48. package/dist/esm/data-filter/aggregator.js.map +1 -1
  49. package/dist/esm/data-filter/data-filter-extension.js +23 -30
  50. package/dist/esm/data-filter/data-filter-extension.js.map +1 -1
  51. package/dist/esm/fill-style/fill-style-extension.js +3 -6
  52. package/dist/esm/fill-style/fill-style-extension.js.map +1 -1
  53. package/dist/esm/fill-style/shaders.glsl.js.map +1 -1
  54. package/dist/esm/mask/mask-effect.js +3 -4
  55. package/dist/esm/mask/mask-effect.js.map +1 -1
  56. package/dist/esm/mask/mask-pass.js +14 -15
  57. package/dist/esm/mask/mask-pass.js.map +1 -1
  58. package/dist/esm/mask/shader-module.js.map +1 -1
  59. package/dist/esm/path-style/path-style-extension.js +13 -10
  60. package/dist/esm/path-style/path-style-extension.js.map +1 -1
  61. package/dist/esm/terrain/height-map-builder.js +7 -10
  62. package/dist/esm/terrain/height-map-builder.js.map +1 -1
  63. package/dist/esm/terrain/shader-module.js.map +1 -1
  64. package/dist/esm/terrain/terrain-cover.js +6 -6
  65. package/dist/esm/terrain/terrain-cover.js.map +1 -1
  66. package/dist/esm/terrain/terrain-effect.js +10 -11
  67. package/dist/esm/terrain/terrain-effect.js.map +1 -1
  68. package/dist/esm/terrain/terrain-pass.js +4 -3
  69. package/dist/esm/terrain/terrain-pass.js.map +1 -1
  70. package/dist/esm/terrain/terrain-picking-pass.js +2 -2
  71. package/dist/esm/terrain/terrain-picking-pass.js.map +1 -1
  72. package/dist/esm/terrain/utils.js +15 -17
  73. package/dist/esm/terrain/utils.js.map +1 -1
  74. package/dist/esm/utils/debug.js +1 -1
  75. package/dist/esm/utils/debug.js.map +1 -1
  76. package/dist.min.js +282 -84
  77. package/package.json +10 -8
  78. package/src/brushing/brushing-extension.ts +8 -6
  79. package/src/clip/clip-extension.ts +1 -2
  80. package/src/collision-filter/collision-filter-effect.ts +40 -29
  81. package/src/collision-filter/collision-filter-pass.ts +4 -5
  82. package/src/collision-filter/shader-module.ts +4 -3
  83. package/src/data-filter/aggregator.ts +18 -18
  84. package/src/data-filter/data-filter-extension.ts +37 -29
  85. package/src/fill-style/fill-style-extension.ts +6 -7
  86. package/src/fill-style/shaders.glsl.ts +2 -2
  87. package/src/mask/mask-effect.ts +11 -10
  88. package/src/mask/mask-pass.ts +19 -20
  89. package/src/mask/shader-module.ts +2 -2
  90. package/src/path-style/path-style-extension.ts +18 -13
  91. package/src/terrain/height-map-builder.ts +8 -8
  92. package/src/terrain/shader-module.ts +8 -6
  93. package/src/terrain/terrain-cover.ts +8 -6
  94. package/src/terrain/terrain-effect.ts +14 -13
  95. package/src/terrain/terrain-pass.ts +6 -7
  96. package/src/terrain/terrain-picking-pass.ts +3 -3
  97. package/src/terrain/utils.ts +13 -13
  98. package/src/utils/debug.ts +2 -1
  99. package/typed/brushing/brushing-extension.d.ts.map +1 -1
  100. package/typed/clip/clip-extension.d.ts.map +1 -1
  101. package/typed/collision-filter/collision-filter-effect.d.ts +4 -4
  102. package/typed/collision-filter/collision-filter-effect.d.ts.map +1 -1
  103. package/typed/collision-filter/collision-filter-pass.d.ts.map +1 -1
  104. package/typed/collision-filter/shader-module.d.ts.map +1 -1
  105. package/typed/data-filter/aggregator.d.ts +10 -8
  106. package/typed/data-filter/aggregator.d.ts.map +1 -1
  107. package/typed/data-filter/data-filter-extension.d.ts +1 -1
  108. package/typed/data-filter/data-filter-extension.d.ts.map +1 -1
  109. package/typed/fill-style/fill-style-extension.d.ts +3 -3
  110. package/typed/fill-style/fill-style-extension.d.ts.map +1 -1
  111. package/typed/fill-style/shaders.glsl.d.ts +2 -2
  112. package/typed/fill-style/shaders.glsl.d.ts.map +1 -1
  113. package/typed/mask/mask-effect.d.ts +3 -3
  114. package/typed/mask/mask-effect.d.ts.map +1 -1
  115. package/typed/mask/mask-pass.d.ts +3 -3
  116. package/typed/mask/mask-pass.d.ts.map +1 -1
  117. package/typed/mask/shader-module.d.ts +2 -2
  118. package/typed/mask/shader-module.d.ts.map +1 -1
  119. package/typed/path-style/path-style-extension.d.ts.map +1 -1
  120. package/typed/terrain/height-map-builder.d.ts +4 -4
  121. package/typed/terrain/height-map-builder.d.ts.map +1 -1
  122. package/typed/terrain/shader-module.d.ts +3 -3
  123. package/typed/terrain/shader-module.d.ts.map +1 -1
  124. package/typed/terrain/terrain-cover.d.ts.map +1 -1
  125. package/typed/terrain/terrain-effect.d.ts +4 -3
  126. package/typed/terrain/terrain-effect.d.ts.map +1 -1
  127. package/typed/terrain/terrain-pass.d.ts.map +1 -1
  128. package/typed/terrain/utils.d.ts +3 -2
  129. package/typed/terrain/utils.d.ts.map +1 -1
  130. package/typed/utils/debug.d.ts +1 -0
  131. package/typed/utils/debug.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/debug.ts"],"names":["readPixelsToArray","debugFBO","fbo","minimap","opaque","color","canvas","document","getElementById","canvasHeight","height","createElement","id","style","zIndex","position","top","right","border","transform","body","appendChild","width","ctx","getContext","imageData","createImageData","zoom","y","x","d","s","Math","floor","data","offset","length","i","putImageData"],"mappings":"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","sourcesContent":["/* global document */\n\nimport {Framebuffer, readPixelsToArray} from '@luma.gl/core';\n\n/** Debug utility to draw FBO contents onto screen */\n// eslint-disable-next-line\nexport const debugFBO = function (\n fbo: Framebuffer,\n {minimap, opaque}: {minimap?: boolean; opaque?: boolean} = {}\n) {\n const color = readPixelsToArray(fbo);\n let canvas = document.getElementById('fbo-canvas') as HTMLCanvasElement;\n const canvasHeight = (minimap ? 2 : 1) * fbo.height;\n if (!canvas) {\n canvas = document.createElement('canvas');\n canvas.id = 'fbo-canvas';\n canvas.style.zIndex = '100';\n canvas.style.position = 'absolute';\n canvas.style.top = '0';\n canvas.style.right = '0';\n canvas.style.border = 'blue 1px solid';\n canvas.style.transform = 'scaleY(-1)';\n document.body.appendChild(canvas);\n }\n if (canvas.width !== fbo.width || canvas.height !== canvasHeight) {\n canvas.width = fbo.width;\n canvas.height = canvasHeight;\n canvas.style.width = '400px';\n }\n const ctx = canvas.getContext('2d')!;\n const imageData = ctx.createImageData(canvas.width, canvas.height);\n\n // Minimap\n if (minimap) {\n const zoom = 8; // Zoom factor for minimap\n const {width, height} = canvas;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const d = 4 * (x + y * width); // destination pixel\n const s = 4 * (Math.floor(x / zoom) + Math.floor(y / zoom) * width); // source\n imageData.data[d + 0] = color[s + 0];\n imageData.data[d + 1] = color[s + 1];\n imageData.data[d + 2] = color[s + 2];\n imageData.data[d + 3] = opaque ? 255 : color[s + 3];\n }\n }\n }\n\n // Full map\n const offset = minimap ? color.length : 0;\n for (let i = 0; i < color.length; i += 4) {\n imageData.data[offset + i + 0] = color[i + 0];\n imageData.data[offset + i + 1] = color[i + 1];\n imageData.data[offset + i + 2] = color[i + 2];\n imageData.data[offset + i + 3] = opaque ? 255 : color[i + 3];\n }\n\n ctx.putImageData(imageData, 0, 0);\n};\n"],"file":"debug.js"}
1
+ {"version":3,"sources":["../../../src/utils/debug.ts"],"names":["readPixelsToArray","debugFBO","fbo","minimap","opaque","color","canvas","document","getElementById","canvasHeight","height","createElement","id","style","zIndex","position","top","right","border","transform","body","appendChild","width","ctx","getContext","imageData","createImageData","zoom","y","x","d","s","Math","floor","data","offset","length","i","putImageData"],"mappings":"AAGA,SAAQA,iBAAR,QAAgC,gBAAhC;AAIA,OAAO,MAAMC,QAAQ,GAAG,UACtBC,GADsB,EAEtB;AAACC,EAAAA,OAAD;AAAUC,EAAAA;AAAV,IAA2D,EAFrC,EAGtB;AACA,QAAMC,KAAK,GAAGL,iBAAiB,CAACE,GAAD,CAA/B;AACA,MAAII,MAAM,GAAGC,QAAQ,CAACC,cAAT,CAAwB,YAAxB,CAAb;AACA,QAAMC,YAAY,GAAG,CAACN,OAAO,GAAG,CAAH,GAAO,CAAf,IAAoBD,GAAG,CAACQ,MAA7C;;AACA,MAAI,CAACJ,MAAL,EAAa;AACXA,IAAAA,MAAM,GAAGC,QAAQ,CAACI,aAAT,CAAuB,QAAvB,CAAT;AACAL,IAAAA,MAAM,CAACM,EAAP,GAAY,YAAZ;AACAN,IAAAA,MAAM,CAACO,KAAP,CAAaC,MAAb,GAAsB,KAAtB;AACAR,IAAAA,MAAM,CAACO,KAAP,CAAaE,QAAb,GAAwB,UAAxB;AACAT,IAAAA,MAAM,CAACO,KAAP,CAAaG,GAAb,GAAmB,GAAnB;AACAV,IAAAA,MAAM,CAACO,KAAP,CAAaI,KAAb,GAAqB,GAArB;AACAX,IAAAA,MAAM,CAACO,KAAP,CAAaK,MAAb,GAAsB,gBAAtB;AACAZ,IAAAA,MAAM,CAACO,KAAP,CAAaM,SAAb,GAAyB,YAAzB;AACAZ,IAAAA,QAAQ,CAACa,IAAT,CAAcC,WAAd,CAA0Bf,MAA1B;AACD;;AACD,MAAIA,MAAM,CAACgB,KAAP,KAAiBpB,GAAG,CAACoB,KAArB,IAA8BhB,MAAM,CAACI,MAAP,KAAkBD,YAApD,EAAkE;AAChEH,IAAAA,MAAM,CAACgB,KAAP,GAAepB,GAAG,CAACoB,KAAnB;AACAhB,IAAAA,MAAM,CAACI,MAAP,GAAgBD,YAAhB;AACAH,IAAAA,MAAM,CAACO,KAAP,CAAaS,KAAb,GAAqB,OAArB;AACD;;AACD,QAAMC,GAAG,GAAGjB,MAAM,CAACkB,UAAP,CAAkB,IAAlB,CAAZ;AACA,QAAMC,SAAS,GAAGF,GAAG,CAACG,eAAJ,CAAoBpB,MAAM,CAACgB,KAA3B,EAAkChB,MAAM,CAACI,MAAzC,CAAlB;;AAGA,MAAIP,OAAJ,EAAa;AACX,UAAMwB,IAAI,GAAG,CAAb;AACA,UAAM;AAACL,MAAAA,KAAD;AAAQZ,MAAAA;AAAR,QAAkBJ,MAAxB;;AACA,SAAK,IAAIsB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGlB,MAApB,EAA4BkB,CAAC,EAA7B,EAAiC;AAC/B,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGP,KAApB,EAA2BO,CAAC,EAA5B,EAAgC;AAC9B,cAAMC,CAAC,GAAG,KAAKD,CAAC,GAAGD,CAAC,GAAGN,KAAb,CAAV;AACA,cAAMS,CAAC,GAAG,KAAKC,IAAI,CAACC,KAAL,CAAWJ,CAAC,GAAGF,IAAf,IAAuBK,IAAI,CAACC,KAAL,CAAWL,CAAC,GAAGD,IAAf,IAAuBL,KAAnD,CAAV;AACAG,QAAAA,SAAS,CAACS,IAAV,CAAeJ,CAAC,GAAG,CAAnB,IAAwBzB,KAAK,CAAC0B,CAAC,GAAG,CAAL,CAA7B;AACAN,QAAAA,SAAS,CAACS,IAAV,CAAeJ,CAAC,GAAG,CAAnB,IAAwBzB,KAAK,CAAC0B,CAAC,GAAG,CAAL,CAA7B;AACAN,QAAAA,SAAS,CAACS,IAAV,CAAeJ,CAAC,GAAG,CAAnB,IAAwBzB,KAAK,CAAC0B,CAAC,GAAG,CAAL,CAA7B;AACAN,QAAAA,SAAS,CAACS,IAAV,CAAeJ,CAAC,GAAG,CAAnB,IAAwB1B,MAAM,GAAG,GAAH,GAASC,KAAK,CAAC0B,CAAC,GAAG,CAAL,CAA5C;AACD;AACF;AACF;;AAGD,QAAMI,MAAM,GAAGhC,OAAO,GAAGE,KAAK,CAAC+B,MAAT,GAAkB,CAAxC;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGhC,KAAK,CAAC+B,MAA1B,EAAkCC,CAAC,IAAI,CAAvC,EAA0C;AACxCZ,IAAAA,SAAS,CAACS,IAAV,CAAeC,MAAM,GAAGE,CAAT,GAAa,CAA5B,IAAiChC,KAAK,CAACgC,CAAC,GAAG,CAAL,CAAtC;AACAZ,IAAAA,SAAS,CAACS,IAAV,CAAeC,MAAM,GAAGE,CAAT,GAAa,CAA5B,IAAiChC,KAAK,CAACgC,CAAC,GAAG,CAAL,CAAtC;AACAZ,IAAAA,SAAS,CAACS,IAAV,CAAeC,MAAM,GAAGE,CAAT,GAAa,CAA5B,IAAiChC,KAAK,CAACgC,CAAC,GAAG,CAAL,CAAtC;AACAZ,IAAAA,SAAS,CAACS,IAAV,CAAeC,MAAM,GAAGE,CAAT,GAAa,CAA5B,IAAiCjC,MAAM,GAAG,GAAH,GAASC,KAAK,CAACgC,CAAC,GAAG,CAAL,CAArD;AACD;;AAEDd,EAAAA,GAAG,CAACe,YAAJ,CAAiBb,SAAjB,EAA4B,CAA5B,EAA+B,CAA/B;AACD,CApDM","sourcesContent":["/* global document */\n\nimport {Framebuffer} from '@luma.gl/core';\nimport {readPixelsToArray} from '@luma.gl/webgl';\n\n/** Debug utility to draw FBO contents onto screen */\n// eslint-disable-next-line\nexport const debugFBO = function (\n fbo: Framebuffer,\n {minimap, opaque}: {minimap?: boolean; opaque?: boolean} = {}\n) {\n const color = readPixelsToArray(fbo);\n let canvas = document.getElementById('fbo-canvas') as HTMLCanvasElement;\n const canvasHeight = (minimap ? 2 : 1) * fbo.height;\n if (!canvas) {\n canvas = document.createElement('canvas');\n canvas.id = 'fbo-canvas';\n canvas.style.zIndex = '100';\n canvas.style.position = 'absolute';\n canvas.style.top = '0';\n canvas.style.right = '0';\n canvas.style.border = 'blue 1px solid';\n canvas.style.transform = 'scaleY(-1)';\n document.body.appendChild(canvas);\n }\n if (canvas.width !== fbo.width || canvas.height !== canvasHeight) {\n canvas.width = fbo.width;\n canvas.height = canvasHeight;\n canvas.style.width = '400px';\n }\n const ctx = canvas.getContext('2d')!;\n const imageData = ctx.createImageData(canvas.width, canvas.height);\n\n // Minimap\n if (minimap) {\n const zoom = 8; // Zoom factor for minimap\n const {width, height} = canvas;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const d = 4 * (x + y * width); // destination pixel\n const s = 4 * (Math.floor(x / zoom) + Math.floor(y / zoom) * width); // source\n imageData.data[d + 0] = color[s + 0];\n imageData.data[d + 1] = color[s + 1];\n imageData.data[d + 2] = color[s + 2];\n imageData.data[d + 3] = opaque ? 255 : color[s + 3];\n }\n }\n }\n\n // Full map\n const offset = minimap ? color.length : 0;\n for (let i = 0; i < color.length; i += 4) {\n imageData.data[offset + i + 0] = color[i + 0];\n imageData.data[offset + i + 1] = color[i + 1];\n imageData.data[offset + i + 2] = color[i + 2];\n imageData.data[offset + i + 3] = opaque ? 255 : color[i + 3];\n }\n\n ctx.putImageData(imageData, 0, 0);\n};\n"],"file":"debug.js"}