@deck.gl/extensions 9.0.0-beta.2 → 9.0.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.
Files changed (232) hide show
  1. package/dist/brushing/brushing-extension.js +80 -0
  2. package/dist/{esm/brushing → brushing}/shader-module.js +24 -30
  3. package/dist/clip/clip-extension.js +117 -0
  4. package/{typed → dist}/collision-filter/collision-filter-effect.d.ts.map +1 -1
  5. package/dist/collision-filter/collision-filter-effect.js +193 -0
  6. package/dist/collision-filter/collision-filter-extension.js +49 -0
  7. package/{typed → dist}/collision-filter/collision-filter-pass.d.ts.map +1 -1
  8. package/dist/collision-filter/collision-filter-pass.js +25 -0
  9. package/dist/{esm/collision-filter → collision-filter}/shader-module.js +17 -24
  10. package/dist/data-filter/aggregator.js +104 -0
  11. package/{typed → dist}/data-filter/data-filter-extension.d.ts.map +1 -1
  12. package/dist/data-filter/data-filter-extension.js +162 -0
  13. package/dist/data-filter/shader-module.js +159 -0
  14. package/dist/dist.dev.js +1762 -13033
  15. package/dist/fill-style/fill-style-extension.js +118 -0
  16. package/dist/{esm/fill-style → fill-style}/shaders.glsl.js +37 -43
  17. package/dist/fp64/fp64-extension.js +35 -0
  18. package/dist/{esm/fp64 → fp64}/project64.glsl.js +19 -1
  19. package/dist/fp64/project64.js +50 -0
  20. package/dist/index.cjs +2724 -0
  21. package/dist/index.cjs.map +7 -0
  22. package/dist/index.js +11 -0
  23. package/{typed → dist}/mask/mask-effect.d.ts.map +1 -1
  24. package/dist/mask/mask-effect.js +194 -0
  25. package/dist/mask/mask-extension.js +57 -0
  26. package/{typed → dist}/mask/mask-pass.d.ts.map +1 -1
  27. package/dist/mask/mask-pass.js +44 -0
  28. package/dist/{esm/mask → mask}/shader-module.js +18 -21
  29. package/dist/path-style/path-style-extension.js +111 -0
  30. package/dist/{esm/path-style → path-style}/shaders.glsl.js +20 -13
  31. package/dist/terrain/height-map-builder.js +104 -0
  32. package/dist/terrain/shader-module.js +139 -0
  33. package/dist/terrain/terrain-cover.js +187 -0
  34. package/{typed → dist}/terrain/terrain-effect.d.ts.map +1 -1
  35. package/dist/terrain/terrain-effect.js +184 -0
  36. package/dist/terrain/terrain-extension.js +44 -0
  37. package/{typed → dist}/terrain/terrain-pass.d.ts.map +1 -1
  38. package/dist/terrain/terrain-pass.js +61 -0
  39. package/{typed → dist}/terrain/terrain-picking-pass.d.ts.map +1 -1
  40. package/dist/terrain/terrain-picking-pass.js +66 -0
  41. package/dist/terrain/utils.js +21 -0
  42. package/{typed → dist}/utils/debug.d.ts.map +1 -1
  43. package/dist/utils/debug.js +50 -0
  44. package/dist/utils/projection-utils.js +153 -0
  45. package/dist.min.js +73 -205
  46. package/package.json +19 -12
  47. package/src/collision-filter/collision-filter-effect.ts +12 -8
  48. package/src/collision-filter/collision-filter-pass.ts +1 -3
  49. package/src/data-filter/data-filter-extension.ts +3 -5
  50. package/src/mask/mask-effect.ts +0 -1
  51. package/src/mask/mask-pass.ts +1 -3
  52. package/src/terrain/terrain-effect.ts +8 -2
  53. package/src/terrain/terrain-pass.ts +2 -5
  54. package/src/terrain/terrain-picking-pass.ts +1 -3
  55. package/src/utils/debug.ts +1 -2
  56. package/dist/es5/brushing/brushing-extension.js +0 -108
  57. package/dist/es5/brushing/brushing-extension.js.map +0 -1
  58. package/dist/es5/brushing/shader-module.js +0 -50
  59. package/dist/es5/brushing/shader-module.js.map +0 -1
  60. package/dist/es5/clip/clip-extension.js +0 -98
  61. package/dist/es5/clip/clip-extension.js.map +0 -1
  62. package/dist/es5/collision-filter/collision-filter-effect.js +0 -294
  63. package/dist/es5/collision-filter/collision-filter-effect.js.map +0 -1
  64. package/dist/es5/collision-filter/collision-filter-extension.js +0 -109
  65. package/dist/es5/collision-filter/collision-filter-extension.js.map +0 -1
  66. package/dist/es5/collision-filter/collision-filter-pass.js +0 -79
  67. package/dist/es5/collision-filter/collision-filter-pass.js.map +0 -1
  68. package/dist/es5/collision-filter/shader-module.js +0 -39
  69. package/dist/es5/collision-filter/shader-module.js.map +0 -1
  70. package/dist/es5/data-filter/aggregator.js +0 -79
  71. package/dist/es5/data-filter/aggregator.js.map +0 -1
  72. package/dist/es5/data-filter/data-filter-extension.js +0 -236
  73. package/dist/es5/data-filter/data-filter-extension.js.map +0 -1
  74. package/dist/es5/data-filter/shader-module.js +0 -122
  75. package/dist/es5/data-filter/shader-module.js.map +0 -1
  76. package/dist/es5/fill-style/fill-style-extension.js +0 -190
  77. package/dist/es5/fill-style/fill-style-extension.js.map +0 -1
  78. package/dist/es5/fill-style/shaders.glsl.js +0 -59
  79. package/dist/es5/fill-style/shaders.glsl.js.map +0 -1
  80. package/dist/es5/fp64/fp64-extension.js +0 -55
  81. package/dist/es5/fp64/fp64-extension.js.map +0 -1
  82. package/dist/es5/fp64/project64.glsl.js +0 -9
  83. package/dist/es5/fp64/project64.glsl.js.map +0 -1
  84. package/dist/es5/fp64/project64.js +0 -52
  85. package/dist/es5/fp64/project64.js.map +0 -1
  86. package/dist/es5/index.js +0 -88
  87. package/dist/es5/index.js.map +0 -1
  88. package/dist/es5/mask/mask-effect.js +0 -279
  89. package/dist/es5/mask/mask-effect.js.map +0 -1
  90. package/dist/es5/mask/mask-extension.js +0 -113
  91. package/dist/es5/mask/mask-extension.js.map +0 -1
  92. package/dist/es5/mask/mask-pass.js +0 -106
  93. package/dist/es5/mask/mask-pass.js.map +0 -1
  94. package/dist/es5/mask/shader-module.js +0 -38
  95. package/dist/es5/mask/shader-module.js.map +0 -1
  96. package/dist/es5/path-style/path-style-extension.js +0 -169
  97. package/dist/es5/path-style/path-style-extension.js.map +0 -1
  98. package/dist/es5/path-style/shaders.glsl.js +0 -25
  99. package/dist/es5/path-style/shaders.glsl.js.map +0 -1
  100. package/dist/es5/terrain/height-map-builder.js +0 -111
  101. package/dist/es5/terrain/height-map-builder.js.map +0 -1
  102. package/dist/es5/terrain/shader-module.js +0 -86
  103. package/dist/es5/terrain/shader-module.js.map +0 -1
  104. package/dist/es5/terrain/terrain-cover.js +0 -256
  105. package/dist/es5/terrain/terrain-cover.js.map +0 -1
  106. package/dist/es5/terrain/terrain-effect.js +0 -326
  107. package/dist/es5/terrain/terrain-effect.js.map +0 -1
  108. package/dist/es5/terrain/terrain-extension.js +0 -94
  109. package/dist/es5/terrain/terrain-extension.js.map +0 -1
  110. package/dist/es5/terrain/terrain-pass.js +0 -121
  111. package/dist/es5/terrain/terrain-pass.js.map +0 -1
  112. package/dist/es5/terrain/terrain-picking-pass.js +0 -124
  113. package/dist/es5/terrain/terrain-picking-pass.js.map +0 -1
  114. package/dist/es5/terrain/utils.js +0 -35
  115. package/dist/es5/terrain/utils.js.map +0 -1
  116. package/dist/es5/utils/debug.js +0 -71
  117. package/dist/es5/utils/debug.js.map +0 -1
  118. package/dist/es5/utils/projection-utils.js +0 -168
  119. package/dist/es5/utils/projection-utils.js.map +0 -1
  120. package/dist/esm/brushing/brushing-extension.js +0 -68
  121. package/dist/esm/brushing/brushing-extension.js.map +0 -1
  122. package/dist/esm/brushing/shader-module.js.map +0 -1
  123. package/dist/esm/clip/clip-extension.js +0 -86
  124. package/dist/esm/clip/clip-extension.js.map +0 -1
  125. package/dist/esm/collision-filter/collision-filter-effect.js +0 -246
  126. package/dist/esm/collision-filter/collision-filter-effect.js.map +0 -1
  127. package/dist/esm/collision-filter/collision-filter-extension.js +0 -75
  128. package/dist/esm/collision-filter/collision-filter-extension.js.map +0 -1
  129. package/dist/esm/collision-filter/collision-filter-pass.js +0 -32
  130. package/dist/esm/collision-filter/collision-filter-pass.js.map +0 -1
  131. package/dist/esm/collision-filter/shader-module.js.map +0 -1
  132. package/dist/esm/data-filter/aggregator.js +0 -102
  133. package/dist/esm/data-filter/aggregator.js.map +0 -1
  134. package/dist/esm/data-filter/data-filter-extension.js +0 -189
  135. package/dist/esm/data-filter/data-filter-extension.js.map +0 -1
  136. package/dist/esm/data-filter/shader-module.js +0 -164
  137. package/dist/esm/data-filter/shader-module.js.map +0 -1
  138. package/dist/esm/fill-style/fill-style-extension.js +0 -156
  139. package/dist/esm/fill-style/fill-style-extension.js.map +0 -1
  140. package/dist/esm/fill-style/shaders.glsl.js.map +0 -1
  141. package/dist/esm/fp64/fp64-extension.js +0 -20
  142. package/dist/esm/fp64/fp64-extension.js.map +0 -1
  143. package/dist/esm/fp64/project64.glsl.js.map +0 -1
  144. package/dist/esm/fp64/project64.js +0 -43
  145. package/dist/esm/fp64/project64.js.map +0 -1
  146. package/dist/esm/index.js +0 -11
  147. package/dist/esm/index.js.map +0 -1
  148. package/dist/esm/mask/mask-effect.js +0 -228
  149. package/dist/esm/mask/mask-effect.js.map +0 -1
  150. package/dist/esm/mask/mask-extension.js +0 -83
  151. package/dist/esm/mask/mask-extension.js.map +0 -1
  152. package/dist/esm/mask/mask-pass.js +0 -58
  153. package/dist/esm/mask/mask-pass.js.map +0 -1
  154. package/dist/esm/mask/shader-module.js.map +0 -1
  155. package/dist/esm/path-style/path-style-extension.js +0 -130
  156. package/dist/esm/path-style/path-style-extension.js.map +0 -1
  157. package/dist/esm/path-style/shaders.glsl.js.map +0 -1
  158. package/dist/esm/terrain/height-map-builder.js +0 -86
  159. package/dist/esm/terrain/height-map-builder.js.map +0 -1
  160. package/dist/esm/terrain/shader-module.js +0 -127
  161. package/dist/esm/terrain/shader-module.js.map +0 -1
  162. package/dist/esm/terrain/terrain-cover.js +0 -212
  163. package/dist/esm/terrain/terrain-cover.js.map +0 -1
  164. package/dist/esm/terrain/terrain-effect.js +0 -219
  165. package/dist/esm/terrain/terrain-effect.js.map +0 -1
  166. package/dist/esm/terrain/terrain-extension.js +0 -59
  167. package/dist/esm/terrain/terrain-extension.js.map +0 -1
  168. package/dist/esm/terrain/terrain-pass.js +0 -71
  169. package/dist/esm/terrain/terrain-pass.js.map +0 -1
  170. package/dist/esm/terrain/terrain-picking-pass.js +0 -73
  171. package/dist/esm/terrain/terrain-picking-pass.js.map +0 -1
  172. package/dist/esm/terrain/utils.js +0 -19
  173. package/dist/esm/terrain/utils.js.map +0 -1
  174. package/dist/esm/utils/debug.js +0 -61
  175. package/dist/esm/utils/debug.js.map +0 -1
  176. package/dist/esm/utils/projection-utils.js +0 -134
  177. package/dist/esm/utils/projection-utils.js.map +0 -1
  178. /package/{typed → dist}/brushing/brushing-extension.d.ts +0 -0
  179. /package/{typed → dist}/brushing/brushing-extension.d.ts.map +0 -0
  180. /package/{typed → dist}/brushing/shader-module.d.ts +0 -0
  181. /package/{typed → dist}/brushing/shader-module.d.ts.map +0 -0
  182. /package/{typed → dist}/clip/clip-extension.d.ts +0 -0
  183. /package/{typed → dist}/clip/clip-extension.d.ts.map +0 -0
  184. /package/{typed → dist}/collision-filter/collision-filter-effect.d.ts +0 -0
  185. /package/{typed → dist}/collision-filter/collision-filter-extension.d.ts +0 -0
  186. /package/{typed → dist}/collision-filter/collision-filter-extension.d.ts.map +0 -0
  187. /package/{typed → dist}/collision-filter/collision-filter-pass.d.ts +0 -0
  188. /package/{typed → dist}/collision-filter/shader-module.d.ts +0 -0
  189. /package/{typed → dist}/collision-filter/shader-module.d.ts.map +0 -0
  190. /package/{typed → dist}/data-filter/aggregator.d.ts +0 -0
  191. /package/{typed → dist}/data-filter/aggregator.d.ts.map +0 -0
  192. /package/{typed → dist}/data-filter/data-filter-extension.d.ts +0 -0
  193. /package/{typed → dist}/data-filter/shader-module.d.ts +0 -0
  194. /package/{typed → dist}/data-filter/shader-module.d.ts.map +0 -0
  195. /package/{typed → dist}/fill-style/fill-style-extension.d.ts +0 -0
  196. /package/{typed → dist}/fill-style/fill-style-extension.d.ts.map +0 -0
  197. /package/{typed → dist}/fill-style/shaders.glsl.d.ts +0 -0
  198. /package/{typed → dist}/fill-style/shaders.glsl.d.ts.map +0 -0
  199. /package/{typed → dist}/fp64/fp64-extension.d.ts +0 -0
  200. /package/{typed → dist}/fp64/fp64-extension.d.ts.map +0 -0
  201. /package/{typed → dist}/fp64/project64.d.ts +0 -0
  202. /package/{typed → dist}/fp64/project64.d.ts.map +0 -0
  203. /package/{typed → dist}/fp64/project64.glsl.d.ts +0 -0
  204. /package/{typed → dist}/fp64/project64.glsl.d.ts.map +0 -0
  205. /package/{typed → dist}/index.d.ts +0 -0
  206. /package/{typed → dist}/index.d.ts.map +0 -0
  207. /package/{typed → dist}/mask/mask-effect.d.ts +0 -0
  208. /package/{typed → dist}/mask/mask-extension.d.ts +0 -0
  209. /package/{typed → dist}/mask/mask-extension.d.ts.map +0 -0
  210. /package/{typed → dist}/mask/mask-pass.d.ts +0 -0
  211. /package/{typed → dist}/mask/shader-module.d.ts +0 -0
  212. /package/{typed → dist}/mask/shader-module.d.ts.map +0 -0
  213. /package/{typed → dist}/path-style/path-style-extension.d.ts +0 -0
  214. /package/{typed → dist}/path-style/path-style-extension.d.ts.map +0 -0
  215. /package/{typed → dist}/path-style/shaders.glsl.d.ts +0 -0
  216. /package/{typed → dist}/path-style/shaders.glsl.d.ts.map +0 -0
  217. /package/{typed → dist}/terrain/height-map-builder.d.ts +0 -0
  218. /package/{typed → dist}/terrain/height-map-builder.d.ts.map +0 -0
  219. /package/{typed → dist}/terrain/shader-module.d.ts +0 -0
  220. /package/{typed → dist}/terrain/shader-module.d.ts.map +0 -0
  221. /package/{typed → dist}/terrain/terrain-cover.d.ts +0 -0
  222. /package/{typed → dist}/terrain/terrain-cover.d.ts.map +0 -0
  223. /package/{typed → dist}/terrain/terrain-effect.d.ts +0 -0
  224. /package/{typed → dist}/terrain/terrain-extension.d.ts +0 -0
  225. /package/{typed → dist}/terrain/terrain-extension.d.ts.map +0 -0
  226. /package/{typed → dist}/terrain/terrain-pass.d.ts +0 -0
  227. /package/{typed → dist}/terrain/terrain-picking-pass.d.ts +0 -0
  228. /package/{typed → dist}/terrain/utils.d.ts +0 -0
  229. /package/{typed → dist}/terrain/utils.d.ts.map +0 -0
  230. /package/{typed → dist}/utils/debug.d.ts +0 -0
  231. /package/{typed → dist}/utils/projection-utils.d.ts +0 -0
  232. /package/{typed → dist}/utils/projection-utils.d.ts.map +0 -0
@@ -1,94 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
-
14
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
-
16
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
-
18
- var _core = require("@deck.gl/core");
19
-
20
- var _terrainEffect = require("./terrain-effect");
21
-
22
- var _shaderModule = require("./shader-module");
23
-
24
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
25
-
26
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
27
-
28
- var defaultProps = {
29
- terrainDrawMode: undefined
30
- };
31
-
32
- var TerrainExtension = function (_LayerExtension) {
33
- (0, _inherits2.default)(TerrainExtension, _LayerExtension);
34
-
35
- var _super = _createSuper(TerrainExtension);
36
-
37
- function TerrainExtension() {
38
- (0, _classCallCheck2.default)(this, TerrainExtension);
39
- return _super.apply(this, arguments);
40
- }
41
-
42
- var _proto = TerrainExtension.prototype;
43
-
44
- _proto.getShaders = function getShaders() {
45
- return {
46
- modules: [_shaderModule.terrainModule]
47
- };
48
- };
49
-
50
- _proto.initializeState = function initializeState() {
51
- var _this$context$deck;
52
-
53
- (_this$context$deck = this.context.deck) === null || _this$context$deck === void 0 ? void 0 : _this$context$deck._addDefaultEffect(new _terrainEffect.TerrainEffect());
54
- };
55
-
56
- _proto.updateState = function updateState(params) {
57
- var props = params.props,
58
- oldProps = params.oldProps;
59
-
60
- if (this.state.terrainDrawMode && props.terrainDrawMode === oldProps.terrainDrawMode && props.extruded === oldProps.extruded) {
61
- return;
62
- }
63
-
64
- var terrainDrawMode = props.terrainDrawMode;
65
-
66
- if (!terrainDrawMode) {
67
- var _this$getAttributeMan;
68
-
69
- var is3d = this.props.extruded;
70
- var attributes = (_this$getAttributeMan = this.getAttributeManager()) === null || _this$getAttributeMan === void 0 ? void 0 : _this$getAttributeMan.attributes;
71
- var hasAnchor = attributes && 'instancePositions' in attributes;
72
- terrainDrawMode = is3d || hasAnchor ? 'offset' : 'drape';
73
- }
74
-
75
- this.setState({
76
- terrainDrawMode: terrainDrawMode
77
- });
78
- };
79
-
80
- _proto.onNeedsRedraw = function onNeedsRedraw() {
81
- var state = this.state;
82
-
83
- if (state.terrainDrawMode === 'drape') {
84
- state.terrainCoverNeedsRedraw = true;
85
- }
86
- };
87
-
88
- return TerrainExtension;
89
- }(_core.LayerExtension);
90
-
91
- exports.default = TerrainExtension;
92
- TerrainExtension.defaultProps = defaultProps;
93
- TerrainExtension.extensionName = 'TerrainExtension';
94
- //# sourceMappingURL=terrain-extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/terrain/terrain-extension.ts"],"names":["defaultProps","terrainDrawMode","undefined","TerrainExtension","getShaders","modules","terrainModule","initializeState","context","deck","_addDefaultEffect","TerrainEffect","updateState","params","props","oldProps","state","extruded","is3d","attributes","getAttributeManager","hasAnchor","setState","onNeedsRedraw","terrainCoverNeedsRedraw","LayerExtension","extensionName"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAIA,IAAMA,YAAY,GAAG;AACnBC,EAAAA,eAAe,EAAEC;AADE,CAArB;;IAoBqBC,gB;;;;;;;;;;;;SAInBC,U,GAAA,sBAAoD;AAClD,WAAO;AACLC,MAAAA,OAAO,EAAE,CAACC,2BAAD;AADJ,KAAP;AAGD,G;;SAEDC,e,GAAA,2BAAoD;AAAA;;AAClD,+BAAKC,OAAL,CAAaC,IAAb,0EAAmBC,iBAAnB,CAAqC,IAAIC,4BAAJ,EAArC;AACD,G;;SAEDC,W,GAAA,qBAEEC,MAFF,EAGE;AACA,QAAOC,KAAP,GAA0BD,MAA1B,CAAOC,KAAP;AAAA,QAAcC,QAAd,GAA0BF,MAA1B,CAAcE,QAAd;;AAEA,QACE,KAAKC,KAAL,CAAWf,eAAX,IACAa,KAAK,CAACb,eAAN,KAA0Bc,QAAQ,CAACd,eADnC,IAGAa,KAAK,CAACG,QAAN,KAAmBF,QAAQ,CAACE,QAJ9B,EAKE;AACA;AACD;;AAED,QAAKhB,eAAL,GAAwBa,KAAxB,CAAKb,eAAL;;AACA,QAAI,CAACA,eAAL,EAAsB;AAAA;;AAGpB,UAAMiB,IAAI,GAAG,KAAKJ,KAAL,CAAWG,QAAxB;AACA,UAAME,UAAU,4BAAG,KAAKC,mBAAL,EAAH,0DAAG,sBAA4BD,UAA/C;AACA,UAAME,SAAS,GAAGF,UAAU,IAAI,uBAAuBA,UAAvD;AACAlB,MAAAA,eAAe,GAAGiB,IAAI,IAAIG,SAAR,GAAoB,QAApB,GAA+B,OAAjD;AACD;;AACD,SAAKC,QAAL,CAAc;AAACrB,MAAAA,eAAe,EAAfA;AAAD,KAAd;AACD,G;;SAEDsB,a,GAAA,yBAAqC;AACnC,QAAMP,KAAK,GAAG,KAAKA,KAAnB;;AACA,QAAIA,KAAK,CAACf,eAAN,KAA0B,OAA9B,EAAuC;AACrCe,MAAAA,KAAK,CAACQ,uBAAN,GAAgC,IAAhC;AACD;AACF,G;;;EA9C2CC,oB;;;AAAzBtB,gB,CACZH,Y,GAAeA,Y;AADHG,gB,CAEZuB,a,GAAgB,kB","sourcesContent":["import {LayerExtension, UpdateParameters} from '@deck.gl/core';\nimport {TerrainEffect} from './terrain-effect';\nimport {terrainModule} from './shader-module';\n\nimport type {Layer} from '@deck.gl/core';\n\nconst defaultProps = {\n terrainDrawMode: undefined\n};\n\nexport type TerrainExtensionProps = {\n /**\n * controls whether an object is drawn over the terrain surface by its anchor (usually defined by an accessor called `getPosition`, e.g. icon, scatterplot) or by its geometry (e.g. path, polygon).\n * If not specified, it is automatically deduced from the layer.\n */\n terrainDrawMode?: 'offset' | 'drape';\n};\n\ntype TerrainExtensionState = {\n /** Resolved fitting mode */\n terrainDrawMode: 'offset' | 'drape';\n /** Set when a layer is flagged as needs redraw */\n terrainCoverNeedsRedraw: boolean;\n};\n\n/** Allows layers to show/hide objects by a geofence. */\nexport default class TerrainExtension extends LayerExtension {\n static defaultProps = defaultProps;\n static extensionName = 'TerrainExtension';\n\n getShaders(this: Layer<TerrainExtensionProps>): any {\n return {\n modules: [terrainModule]\n };\n }\n\n initializeState(this: Layer<TerrainExtensionProps>) {\n this.context.deck?._addDefaultEffect(new TerrainEffect());\n }\n\n updateState(\n this: Layer<TerrainExtensionProps>,\n params: UpdateParameters<Layer<TerrainExtensionProps>>\n ) {\n const {props, oldProps} = params;\n\n if (\n this.state.terrainDrawMode &&\n props.terrainDrawMode === oldProps.terrainDrawMode &&\n // @ts-ignore `extruded` may not exist in props\n props.extruded === oldProps.extruded\n ) {\n return;\n }\n\n let {terrainDrawMode} = props;\n if (!terrainDrawMode) {\n // props.extruded is used as an indication that the layer is 2.5D\n // @ts-ignore `extruded` may not exist in props\n const is3d = this.props.extruded as boolean;\n const attributes = this.getAttributeManager()?.attributes;\n const hasAnchor = attributes && 'instancePositions' in attributes;\n terrainDrawMode = is3d || hasAnchor ? 'offset' : 'drape';\n }\n this.setState({terrainDrawMode});\n }\n\n onNeedsRedraw(this: Layer<{}>): void {\n const state = this.state as TerrainExtensionState;\n if (state.terrainDrawMode === 'drape') {\n state.terrainCoverNeedsRedraw = true;\n }\n }\n}\n"],"file":"terrain-extension.js"}
@@ -1,121 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.TerrainPass = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _webgl = require("@luma.gl/webgl");
21
-
22
- var _constants = require("@luma.gl/constants");
23
-
24
- var _core = require("@deck.gl/core");
25
-
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
27
-
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29
-
30
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
31
-
32
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
33
-
34
- var TerrainPass = function (_LayersPass) {
35
- (0, _inherits2.default)(TerrainPass, _LayersPass);
36
-
37
- var _super = _createSuper(TerrainPass);
38
-
39
- function TerrainPass() {
40
- (0, _classCallCheck2.default)(this, TerrainPass);
41
- return _super.apply(this, arguments);
42
- }
43
-
44
- var _proto = TerrainPass.prototype;
45
-
46
- _proto.getRenderableLayers = function getRenderableLayers(viewport, opts) {
47
- var layers = opts.layers;
48
- var result = [];
49
-
50
- var drawParamsByIndex = this._getDrawLayerParams(viewport, opts, true);
51
-
52
- for (var i = 0; i < layers.length; i++) {
53
- var layer = layers[i];
54
-
55
- if (!layer.isComposite && drawParamsByIndex[i].shouldDrawLayer) {
56
- result.push(layer);
57
- }
58
- }
59
-
60
- return result;
61
- };
62
-
63
- _proto.renderHeightMap = function renderHeightMap(heightMap, opts) {
64
- var _this = this;
65
-
66
- var target = heightMap.getRenderFramebuffer();
67
- var viewport = heightMap.renderViewport;
68
-
69
- if (!target || !viewport) {
70
- return;
71
- }
72
-
73
- target.resize(viewport);
74
- (0, _webgl.withGLParameters)(this.device, {
75
- clearColor: [0, 0, 0, 0],
76
- blend: true,
77
- blendFunc: [1, 1],
78
- blendEquation: 32776,
79
- depthTest: false
80
- }, function () {
81
- return _this.render(_objectSpread(_objectSpread({}, opts), {}, {
82
- target: target,
83
- pass: 'terrain-height-map',
84
- layers: opts.layers,
85
- viewports: [viewport],
86
- effects: []
87
- }));
88
- });
89
- };
90
-
91
- _proto.renderTerrainCover = function renderTerrainCover(terrainCover, opts) {
92
- var _this2 = this;
93
-
94
- var target = terrainCover.getRenderFramebuffer();
95
- var viewport = terrainCover.renderViewport;
96
-
97
- if (!target || !viewport) {
98
- return;
99
- }
100
-
101
- var layers = terrainCover.filterLayers(opts.layers);
102
- target.resize(viewport);
103
- (0, _webgl.withGLParameters)(this.device, {
104
- clearColor: [0, 0, 0, 0],
105
- depthTest: false
106
- }, function () {
107
- return _this2.render(_objectSpread(_objectSpread({}, opts), {}, {
108
- target: target,
109
- pass: "terrain-cover-".concat(terrainCover.id),
110
- layers: layers,
111
- effects: [],
112
- viewports: [viewport]
113
- }));
114
- });
115
- };
116
-
117
- return TerrainPass;
118
- }(_core._LayersPass);
119
-
120
- exports.TerrainPass = TerrainPass;
121
- //# sourceMappingURL=terrain-pass.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/terrain/terrain-pass.ts"],"names":["TerrainPass","getRenderableLayers","viewport","opts","layers","result","drawParamsByIndex","_getDrawLayerParams","i","length","layer","isComposite","shouldDrawLayer","push","renderHeightMap","heightMap","target","getRenderFramebuffer","renderViewport","resize","device","clearColor","blend","blendFunc","blendEquation","depthTest","render","pass","viewports","effects","renderTerrainCover","terrainCover","filterLayers","id","LayersPass"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;IAOaA,W;;;;;;;;;;;;SACXC,mB,GAAA,6BAAoBC,QAApB,EAAwCC,IAAxC,EAAiF;AAC/E,QAAOC,MAAP,GAAiBD,IAAjB,CAAOC,MAAP;AACA,QAAMC,MAAe,GAAG,EAAxB;;AACA,QAAMC,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,UAAME,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,G;;SAEDS,e,GAAA,yBAAgBC,SAAhB,EAA6CZ,IAA7C,EAAsF;AAAA;;AAEpF,QAAMa,MAAM,GAAGD,SAAS,CAACE,oBAAV,EAAf;AACA,QAAMf,QAAQ,GAAGa,SAAS,CAACG,cAA3B;;AAEA,QAAI,CAACF,MAAD,IAAW,CAACd,QAAhB,EAA0B;AACxB;AACD;;AAEDc,IAAAA,MAAM,CAACG,MAAP,CAAcjB,QAAd;AAEA,iCACE,KAAKkB,MADP,EAEE;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,KAFF,EASE;AAAA,aACE,KAAI,CAACC,MAAL,iCACKvB,IADL;AAEEa,QAAAA,MAAM,EAANA,MAFF;AAGEW,QAAAA,IAAI,EAAE,oBAHR;AAIEvB,QAAAA,MAAM,EAAED,IAAI,CAACC,MAJf;AAKEwB,QAAAA,SAAS,EAAE,CAAC1B,QAAD,CALb;AAME2B,QAAAA,OAAO,EAAE;AANX,SADF;AAAA,KATF;AAmBD,G;;SAEDC,kB,GAAA,4BAAmBC,YAAnB,EAA+C5B,IAA/C,EAAwF;AAAA;;AAEtF,QAAMa,MAAM,GAAGe,YAAY,CAACd,oBAAb,EAAf;AACA,QAAMf,QAAQ,GAAG6B,YAAY,CAACb,cAA9B;;AAEA,QAAI,CAACF,MAAD,IAAW,CAACd,QAAhB,EAA0B;AACxB;AACD;;AAED,QAAME,MAAM,GAAG2B,YAAY,CAACC,YAAb,CAA0B7B,IAAI,CAACC,MAA/B,CAAf;AACAY,IAAAA,MAAM,CAACG,MAAP,CAAcjB,QAAd;AAEA,iCACE,KAAKkB,MADP,EAEE;AACEC,MAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CADd;AAEEI,MAAAA,SAAS,EAAE;AAFb,KAFF,EAME;AAAA,aACE,MAAI,CAACC,MAAL,iCACKvB,IADL;AAEEa,QAAAA,MAAM,EAANA,MAFF;AAGEW,QAAAA,IAAI,0BAAmBI,YAAY,CAACE,EAAhC,CAHN;AAIE7B,QAAAA,MAAM,EAANA,MAJF;AAKEyB,QAAAA,OAAO,EAAE,EALX;AAMED,QAAAA,SAAS,EAAE,CAAC1B,QAAD;AANb,SADF;AAAA,KANF;AAgBD,G;;;EA3E8BgC,iB","sourcesContent":["import {withGLParameters} from '@luma.gl/webgl';\nimport {GL} from '@luma.gl/constants';\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\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 withGLParameters(\n this.device,\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 withGLParameters(\n this.device,\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"}
@@ -1,124 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.TerrainPickingPass = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _core = require("@deck.gl/core");
23
-
24
- var _webgl = require("@luma.gl/webgl");
25
-
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
27
-
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29
-
30
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
31
-
32
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
33
-
34
- var TerrainPickingPass = function (_PickLayersPass) {
35
- (0, _inherits2.default)(TerrainPickingPass, _PickLayersPass);
36
-
37
- var _super = _createSuper(TerrainPickingPass);
38
-
39
- function TerrainPickingPass() {
40
- var _this;
41
-
42
- (0, _classCallCheck2.default)(this, TerrainPickingPass);
43
-
44
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
45
- args[_key] = arguments[_key];
46
- }
47
-
48
- _this = _super.call.apply(_super, [this].concat(args));
49
- _this.drawParameters = {};
50
- return _this;
51
- }
52
-
53
- var _proto = TerrainPickingPass.prototype;
54
-
55
- _proto.getRenderableLayers = function getRenderableLayers(viewport, opts) {
56
- var layers = opts.layers;
57
- var result = [];
58
- this.drawParameters = {};
59
-
60
- this._resetColorEncoder(opts.pickZ);
61
-
62
- var drawParamsByIndex = this._getDrawLayerParams(viewport, opts);
63
-
64
- for (var i = 0; i < layers.length; i++) {
65
- var layer = layers[i];
66
-
67
- if (!layer.isComposite && drawParamsByIndex[i].shouldDrawLayer) {
68
- result.push(layer);
69
- this.drawParameters[layer.id] = drawParamsByIndex[i].layerParameters;
70
- }
71
- }
72
-
73
- return result;
74
- };
75
-
76
- _proto.renderTerrainCover = function renderTerrainCover(terrainCover, opts) {
77
- var _this2 = this;
78
-
79
- var target = terrainCover.getPickingFramebuffer();
80
- var viewport = terrainCover.renderViewport;
81
-
82
- if (!target || !viewport) {
83
- return;
84
- }
85
-
86
- var layers = terrainCover.filterLayers(opts.layers);
87
- var terrainLayer = terrainCover.targetLayer;
88
-
89
- if (terrainLayer.props.pickable) {
90
- layers.unshift(terrainLayer);
91
- }
92
-
93
- target.resize(viewport);
94
- (0, _webgl.withGLParameters)(this.device, {
95
- depthTest: false
96
- }, function () {
97
- return _this2.render(_objectSpread(_objectSpread({}, opts), {}, {
98
- pickingFBO: target,
99
- pass: "terrain-cover-picking-".concat(terrainCover.id),
100
- layers: layers,
101
- effects: [],
102
- viewports: [viewport],
103
- cullRect: undefined,
104
- deviceRect: viewport,
105
- pickZ: false
106
- }));
107
- });
108
- };
109
-
110
- _proto.getLayerParameters = function getLayerParameters(layer, layerIndex, viewport) {
111
- if (this.drawParameters[layer.id]) {
112
- return this.drawParameters[layer.id];
113
- }
114
-
115
- var parameters = (0, _get2.default)((0, _getPrototypeOf2.default)(TerrainPickingPass.prototype), "getLayerParameters", this).call(this, layer, layerIndex, viewport);
116
- parameters.blend = true;
117
- return parameters;
118
- };
119
-
120
- return TerrainPickingPass;
121
- }(_core._PickLayersPass);
122
-
123
- exports.TerrainPickingPass = TerrainPickingPass;
124
- //# sourceMappingURL=terrain-picking-pass.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/terrain/terrain-picking-pass.ts"],"names":["TerrainPickingPass","drawParameters","getRenderableLayers","viewport","opts","layers","result","_resetColorEncoder","pickZ","drawParamsByIndex","_getDrawLayerParams","i","length","layer","isComposite","shouldDrawLayer","push","id","layerParameters","renderTerrainCover","terrainCover","target","getPickingFramebuffer","renderViewport","filterLayers","terrainLayer","targetLayer","props","pickable","unshift","resize","device","depthTest","render","pickingFBO","pass","effects","viewports","cullRect","undefined","deviceRect","getLayerParameters","layerIndex","parameters","blend","PickLayersPass"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAMA;;;;;;;;;;IAQaA,kB;;;;;;;;;;;;;;;UAOXC,c,GAAsC,E;;;;;;SAEtCC,mB,GAAA,6BAAoBC,QAApB,EAAwCC,IAAxC,EAAwF;AACtF,QAAOC,MAAP,GAAiBD,IAAjB,CAAOC,MAAP;AACA,QAAMC,MAAe,GAAG,EAAxB;AACA,SAAKL,cAAL,GAAsB,EAAtB;;AACA,SAAKM,kBAAL,CAAwBH,IAAI,CAACI,KAA7B;;AACA,QAAMC,iBAAiB,GAAG,KAAKC,mBAAL,CAAyBP,QAAzB,EAAmCC,IAAnC,CAA1B;;AACA,SAAK,IAAIO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,MAAM,CAACO,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;AACtC,UAAME,KAAK,GAAGR,MAAM,CAACM,CAAD,CAApB;;AACA,UAAI,CAACE,KAAK,CAACC,WAAP,IAAsBL,iBAAiB,CAACE,CAAD,CAAjB,CAAqBI,eAA/C,EAAgE;AAC9DT,QAAAA,MAAM,CAACU,IAAP,CAAYH,KAAZ;AACA,aAAKZ,cAAL,CAAoBY,KAAK,CAACI,EAA1B,IAAgCR,iBAAiB,CAACE,CAAD,CAAjB,CAAqBO,eAArD;AACD;AACF;;AAED,WAAOZ,MAAP;AACD,G;;SAEDa,kB,GAAA,4BAAmBC,YAAnB,EAA+ChB,IAA/C,EAA+F;AAAA;;AAE7F,QAAMiB,MAAM,GAAGD,YAAY,CAACE,qBAAb,EAAf;AACA,QAAMnB,QAAQ,GAAGiB,YAAY,CAACG,cAA9B;;AAEA,QAAI,CAACF,MAAD,IAAW,CAAClB,QAAhB,EAA0B;AACxB;AACD;;AAED,QAAME,MAAM,GAAGe,YAAY,CAACI,YAAb,CAA0BpB,IAAI,CAACC,MAA/B,CAAf;AACA,QAAMoB,YAAY,GAAGL,YAAY,CAACM,WAAlC;;AACA,QAAID,YAAY,CAACE,KAAb,CAAmBC,QAAvB,EAAiC;AAC/BvB,MAAAA,MAAM,CAACwB,OAAP,CAAeJ,YAAf;AACD;;AACDJ,IAAAA,MAAM,CAACS,MAAP,CAAc3B,QAAd;AAEA,iCACE,KAAK4B,MADP,EAEE;AACEC,MAAAA,SAAS,EAAE;AADb,KAFF,EAKE;AAAA,aACE,MAAI,CAACC,MAAL,iCACK7B,IADL;AAEE8B,QAAAA,UAAU,EAAEb,MAFd;AAGEc,QAAAA,IAAI,kCAA2Bf,YAAY,CAACH,EAAxC,CAHN;AAIEZ,QAAAA,MAAM,EAANA,MAJF;AAKE+B,QAAAA,OAAO,EAAE,EALX;AAMEC,QAAAA,SAAS,EAAE,CAAClC,QAAD,CANb;AASEmC,QAAAA,QAAQ,EAAEC,SATZ;AAUEC,QAAAA,UAAU,EAAErC,QAVd;AAWEK,QAAAA,KAAK,EAAE;AAXT,SADF;AAAA,KALF;AAoBD,G;;SAESiC,kB,GAAV,4BAA6B5B,KAA7B,EAA2C6B,UAA3C,EAA+DvC,QAA/D,EAAwF;AACtF,QAAI,KAAKF,cAAL,CAAoBY,KAAK,CAACI,EAA1B,CAAJ,EAAmC;AACjC,aAAO,KAAKhB,cAAL,CAAoBY,KAAK,CAACI,EAA1B,CAAP;AACD;;AACD,QAAM0B,UAAU,0HAA4B9B,KAA5B,EAAmC6B,UAAnC,EAA+CvC,QAA/C,CAAhB;AACAwC,IAAAA,UAAU,CAACC,KAAX,GAAmB,IAAnB;AACA,WAAOD,UAAP;AACD,G;;;EAvEqCE,qB","sourcesContent":["import {\n Layer,\n Viewport,\n LayersPassRenderOptions,\n _PickLayersPass as PickLayersPass\n} from '@deck.gl/core';\nimport {withGLParameters} from '@luma.gl/webgl';\nimport type {TerrainCover} from './terrain-cover';\n\nexport type TerrainPickingPassRenderOptions = LayersPassRenderOptions & {\n pickZ: boolean;\n};\n\n/** Renders textures used by the TerrainEffect picking pass */\nexport class TerrainPickingPass extends PickLayersPass {\n /** Save layer index for use when drawing to terrain cover.\n * When a terrain cover's picking buffer is rendered,\n * we need to make sure each layer receives a consistent index (encoded in the alpha channel)\n * so that a picked color can be decoded back to the correct layer.\n * Updated in getRenderableLayers which is called in TerrainEffect.preRender\n */\n drawParameters: Record<string, any> = {};\n\n getRenderableLayers(viewport: Viewport, opts: TerrainPickingPassRenderOptions): Layer[] {\n const {layers} = opts;\n const result: Layer[] = [];\n this.drawParameters = {};\n this._resetColorEncoder(opts.pickZ);\n const drawParamsByIndex = this._getDrawLayerParams(viewport, opts);\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 this.drawParameters[layer.id] = drawParamsByIndex[i].layerParameters;\n }\n }\n\n return result;\n }\n\n renderTerrainCover(terrainCover: TerrainCover, opts: Partial<TerrainPickingPassRenderOptions>) {\n // console.log('Updating terrain cover for picking ' + terrainCover.id)\n const target = terrainCover.getPickingFramebuffer();\n const viewport = terrainCover.renderViewport;\n\n if (!target || !viewport) {\n return;\n }\n\n const layers = terrainCover.filterLayers(opts.layers!);\n const terrainLayer = terrainCover.targetLayer;\n if (terrainLayer.props.pickable) {\n layers.unshift(terrainLayer);\n }\n target.resize(viewport);\n\n withGLParameters(\n this.device,\n {\n depthTest: false\n },\n () =>\n this.render({\n ...opts,\n pickingFBO: target,\n pass: `terrain-cover-picking-${terrainCover.id}`,\n layers,\n effects: [],\n viewports: [viewport],\n // Disable the default culling because TileLayer would cull sublayers based on the screen viewport,\n // not the viewport of the terrain cover. Culling is already done by `terrainCover.filterLayers`\n cullRect: undefined,\n deviceRect: viewport,\n pickZ: false\n })\n );\n }\n\n protected getLayerParameters(layer: Layer, layerIndex: number, viewport: Viewport): any {\n if (this.drawParameters[layer.id]) {\n return this.drawParameters[layer.id];\n }\n const parameters = super.getLayerParameters(layer, layerIndex, viewport);\n parameters.blend = true;\n return parameters;\n }\n}\n"],"file":"terrain-picking-pass.js"}
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.createRenderTarget = createRenderTarget;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _constants = require("@luma.gl/constants");
13
-
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
15
-
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
17
-
18
- function createRenderTarget(device, opts) {
19
- return device.createFramebuffer({
20
- id: opts.id,
21
- colorAttachments: [device.createTexture(_objectSpread(_objectSpread({}, opts.float && {
22
- format: device.info.type === 'webgl2' ? 'rgba32float' : 'rgba8unorm',
23
- type: 5126
24
- }), {}, {
25
- mipmaps: false,
26
- sampler: {
27
- minFilter: 'linear',
28
- magFilter: 'linear',
29
- addressModeU: 'clamp-to-edge',
30
- addressModeV: 'clamp-to-edge'
31
- }
32
- }))]
33
- });
34
- }
35
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/terrain/utils.ts"],"names":["createRenderTarget","device","opts","createFramebuffer","id","colorAttachments","createTexture","float","format","info","type","mipmaps","sampler","minFilter","magFilter","addressModeU","addressModeV"],"mappings":";;;;;;;;;;;AACA;;;;;;AAEO,SAASA,kBAAT,CACLC,MADK,EAELC,IAFK,EAML;AACA,SAAOD,MAAM,CAACE,iBAAP,CAAyB;AAC9BC,IAAAA,EAAE,EAAEF,IAAI,CAACE,EADqB;AAE9BC,IAAAA,gBAAgB,EAAE,CAChBJ,MAAM,CAACK,aAAP,iCACMJ,IAAI,CAACK,KAAL,IAAc;AAChBC,MAAAA,MAAM,EAAEP,MAAM,CAACQ,IAAP,CAAYC,IAAZ,KAAqB,QAArB,GAAgC,aAAhC,GAAgD,YADxC;AAEhBA,MAAAA,IAAI;AAFY,KADpB;AAKEC,MAAAA,OAAO,EAAE,KALX;AAMEC,MAAAA,OAAO,EAAE;AACPC,QAAAA,SAAS,EAAE,QADJ;AAEPC,QAAAA,SAAS,EAAE,QAFJ;AAGPC,QAAAA,YAAY,EAAE,eAHP;AAIPC,QAAAA,YAAY,EAAE;AAJP;AANX,OADgB;AAFY,GAAzB,CAAP;AAkBD","sourcesContent":["import type {Device} from '@luma.gl/core';\nimport {GL} from '@luma.gl/constants';\n\nexport function createRenderTarget(\n device: Device,\n opts: {\n id: string;\n float?: boolean;\n }\n) {\n return device.createFramebuffer({\n id: opts.id,\n colorAttachments: [\n device.createTexture({\n ...(opts.float && {\n format: device.info.type === 'webgl2' ? 'rgba32float' : 'rgba8unorm',\n type: GL.FLOAT\n }),\n mipmaps: false,\n sampler: {\n minFilter: 'linear',\n magFilter: 'linear',\n addressModeU: 'clamp-to-edge',\n addressModeV: 'clamp-to-edge'\n }\n })\n ]\n });\n}\n"],"file":"utils.js"}
@@ -1,71 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.debugFBO = void 0;
7
-
8
- var _webgl = require("@luma.gl/webgl");
9
-
10
- var debugFBO = function debugFBO(fbo) {
11
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
12
- minimap = _ref.minimap,
13
- opaque = _ref.opaque;
14
-
15
- var color = (0, _webgl.readPixelsToArray)(fbo);
16
- var canvas = document.getElementById('fbo-canvas');
17
- var canvasHeight = (minimap ? 2 : 1) * fbo.height;
18
-
19
- if (!canvas) {
20
- canvas = document.createElement('canvas');
21
- canvas.id = 'fbo-canvas';
22
- canvas.style.zIndex = '100';
23
- canvas.style.position = 'absolute';
24
- canvas.style.top = '0';
25
- canvas.style.right = '0';
26
- canvas.style.border = 'blue 1px solid';
27
- canvas.style.transform = 'scaleY(-1)';
28
- document.body.appendChild(canvas);
29
- }
30
-
31
- if (canvas.width !== fbo.width || canvas.height !== canvasHeight) {
32
- canvas.width = fbo.width;
33
- canvas.height = canvasHeight;
34
- canvas.style.width = '400px';
35
- }
36
-
37
- var ctx = canvas.getContext('2d');
38
- var imageData = ctx.createImageData(canvas.width, canvas.height);
39
-
40
- if (minimap) {
41
- var zoom = 8;
42
- var _canvas = canvas,
43
- width = _canvas.width,
44
- height = _canvas.height;
45
-
46
- for (var y = 0; y < height; y++) {
47
- for (var x = 0; x < width; x++) {
48
- var d = 4 * (x + y * width);
49
- var s = 4 * (Math.floor(x / zoom) + Math.floor(y / zoom) * width);
50
- imageData.data[d + 0] = color[s + 0];
51
- imageData.data[d + 1] = color[s + 1];
52
- imageData.data[d + 2] = color[s + 2];
53
- imageData.data[d + 3] = opaque ? 255 : color[s + 3];
54
- }
55
- }
56
- }
57
-
58
- var offset = minimap ? color.length : 0;
59
-
60
- for (var i = 0; i < color.length; i += 4) {
61
- imageData.data[offset + i + 0] = color[i + 0];
62
- imageData.data[offset + i + 1] = color[i + 1];
63
- imageData.data[offset + i + 2] = color[i + 2];
64
- imageData.data[offset + i + 3] = opaque ? 255 : color[i + 3];
65
- }
66
-
67
- ctx.putImageData(imageData, 0, 0);
68
- };
69
-
70
- exports.debugFBO = debugFBO;
71
- //# sourceMappingURL=debug.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/debug.ts"],"names":["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} 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"}