@antv/l7-layers 2.15.5 → 2.16.1

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 (243) hide show
  1. package/es/Geometry/index.js +31 -9
  2. package/es/Geometry/models/billboard.js +89 -51
  3. package/es/Geometry/models/plane.js +143 -81
  4. package/es/Geometry/models/sprite.js +118 -60
  5. package/es/canvas/index.js +33 -10
  6. package/es/canvas/models/canvas.js +97 -41
  7. package/es/citybuliding/building.js +27 -8
  8. package/es/citybuliding/models/build.js +82 -57
  9. package/es/core/BaseLayer.js +486 -321
  10. package/es/core/BaseModel.js +126 -97
  11. package/es/core/LayerPickService.js +32 -21
  12. package/es/core/TextureService.js +13 -0
  13. package/es/core/interface.js +24 -17
  14. package/es/core/shape/Path.js +20 -13
  15. package/es/core/shape/extrude.js +31 -10
  16. package/es/core/triangulation.js +114 -54
  17. package/es/earth/index.js +33 -9
  18. package/es/earth/models/atmosphere.js +54 -30
  19. package/es/earth/models/base.js +85 -47
  20. package/es/earth/models/bloomsphere.js +54 -30
  21. package/es/earth/utils.js +13 -9
  22. package/es/heatmap/index.js +40 -10
  23. package/es/heatmap/models/grid.js +52 -28
  24. package/es/heatmap/models/grid3d.js +52 -28
  25. package/es/heatmap/models/heatmap.js +146 -91
  26. package/es/heatmap/models/hexagon.js +52 -28
  27. package/es/heatmap/triangulation.js +4 -0
  28. package/es/image/index.js +28 -9
  29. package/es/image/models/image.js +100 -66
  30. package/es/index.js +17 -9
  31. package/es/line/index.js +34 -9
  32. package/es/line/models/arc.js +118 -66
  33. package/es/line/models/arc_3d.js +108 -60
  34. package/es/line/models/earthArc_3d.js +111 -63
  35. package/es/line/models/great_circle.js +100 -56
  36. package/es/line/models/half.js +77 -46
  37. package/es/line/models/line.js +148 -94
  38. package/es/line/models/linearline.js +80 -45
  39. package/es/line/models/simpleLine.js +74 -41
  40. package/es/line/models/wall.js +92 -52
  41. package/es/mask/index.js +28 -9
  42. package/es/mask/models/fill.js +54 -29
  43. package/es/plugins/DataMappingPlugin.js +117 -80
  44. package/es/plugins/DataSourcePlugin.js +68 -45
  45. package/es/plugins/FeatureScalePlugin.js +122 -67
  46. package/es/plugins/LayerAnimateStylePlugin.js +5 -0
  47. package/es/plugins/LayerMaskPlugin.js +11 -3
  48. package/es/plugins/LayerModelPlugin.js +104 -67
  49. package/es/plugins/LayerStylePlugin.js +9 -3
  50. package/es/plugins/LightingPlugin.js +18 -12
  51. package/es/plugins/MultiPassRendererPlugin.js +16 -11
  52. package/es/plugins/PixelPickingPlugin.js +21 -12
  53. package/es/plugins/RegisterStyleAttributePlugin.js +12 -5
  54. package/es/plugins/ShaderUniformPlugin.js +27 -13
  55. package/es/plugins/UpdateModelPlugin.js +5 -0
  56. package/es/plugins/UpdateStyleAttributePlugin.js +11 -5
  57. package/es/point/index.js +77 -26
  58. package/es/point/models/earthExtrude.js +102 -61
  59. package/es/point/models/earthFill.js +87 -57
  60. package/es/point/models/extrude.js +101 -60
  61. package/es/point/models/fill.js +100 -70
  62. package/es/point/models/fillmage.js +107 -63
  63. package/es/point/models/image.js +88 -48
  64. package/es/point/models/index.js +2 -2
  65. package/es/point/models/normal.js +54 -30
  66. package/es/point/models/radar.js +64 -40
  67. package/es/point/models/simplePoint.js +69 -41
  68. package/es/point/models/text.d.ts +2 -1
  69. package/es/point/models/text.js +305 -201
  70. package/es/point/shape/extrude.js +13 -4
  71. package/es/polygon/index.js +40 -11
  72. package/es/polygon/models/extrude.js +92 -48
  73. package/es/polygon/models/fill.js +88 -54
  74. package/es/polygon/models/index.js +2 -3
  75. package/es/polygon/models/ocean.js +76 -42
  76. package/es/polygon/models/water.js +71 -37
  77. package/es/raster/buffers/triangulation.js +4 -2
  78. package/es/raster/index.js +32 -9
  79. package/es/raster/models/raster.js +116 -80
  80. package/es/raster/models/rasterRgb.js +127 -84
  81. package/es/raster/models/rasterTerrainRgb.js +84 -56
  82. package/es/tile/interaction/getRasterData.js +20 -14
  83. package/es/tile/interaction/utils.js +9 -7
  84. package/es/tile/manager/base.js +96 -63
  85. package/es/tile/service/TileLayerService.js +55 -33
  86. package/es/tile/service/TilePickService.js +40 -26
  87. package/es/tile/service/TileSourceService.js +7 -3
  88. package/es/tile/tileFactory/DebugTile.js +46 -29
  89. package/es/tile/tileFactory/ImageTile.js +38 -20
  90. package/es/tile/tileFactory/MaskTile.js +43 -22
  91. package/es/tile/tileFactory/RasterRGBTile.js +42 -22
  92. package/es/tile/tileFactory/RasterTerrainRGBTile.js +38 -20
  93. package/es/tile/tileFactory/RasterTile.js +53 -30
  94. package/es/tile/tileFactory/Tile.js +97 -63
  95. package/es/tile/tileFactory/VectorTile.js +68 -41
  96. package/es/tile/tileFactory/index.js +11 -0
  97. package/es/tile/tileFactory/layers/TileDebugLayer.js +27 -6
  98. package/es/tile/tileFactory/util.js +3 -0
  99. package/es/tile/tileLayer/BaseLayer.js +146 -105
  100. package/es/tile/utils.js +1 -1
  101. package/es/utils/blend.js +2 -0
  102. package/es/utils/collision-index.js +16 -9
  103. package/es/utils/dataMappingStyle.js +18 -8
  104. package/es/utils/extrude_polyline.js +149 -101
  105. package/es/utils/grid-index.js +27 -2
  106. package/es/utils/identityScale.js +8 -0
  107. package/es/utils/layerData.js +44 -30
  108. package/es/utils/multiPassRender.js +13 -11
  109. package/es/utils/polylineNormal.js +37 -31
  110. package/es/utils/simpleLine.js +16 -2
  111. package/es/utils/stencil.js +3 -2
  112. package/es/utils/symbol-layout.js +53 -27
  113. package/es/wind/index.js +29 -9
  114. package/es/wind/models/utils.js +51 -26
  115. package/es/wind/models/wind.js +147 -101
  116. package/es/wind/models/windRender.js +66 -53
  117. package/lib/Geometry/index.js +38 -9
  118. package/lib/Geometry/models/billboard.js +97 -51
  119. package/lib/Geometry/models/index.js +5 -0
  120. package/lib/Geometry/models/plane.js +151 -79
  121. package/lib/Geometry/models/sprite.js +127 -60
  122. package/lib/canvas/index.js +40 -10
  123. package/lib/canvas/models/canvas.js +101 -41
  124. package/lib/canvas/models/index.js +3 -0
  125. package/lib/citybuliding/building.js +35 -8
  126. package/lib/citybuliding/models/build.js +92 -57
  127. package/lib/core/BaseLayer.js +480 -321
  128. package/lib/core/BaseModel.js +139 -97
  129. package/lib/core/LayerPickService.js +37 -21
  130. package/lib/core/TextureService.js +16 -0
  131. package/lib/core/interface.js +31 -21
  132. package/lib/core/schema.js +1 -0
  133. package/lib/core/shape/Path.js +31 -14
  134. package/lib/core/shape/extrude.js +54 -10
  135. package/lib/core/triangulation.js +153 -53
  136. package/lib/earth/index.js +43 -9
  137. package/lib/earth/models/atmosphere.js +63 -30
  138. package/lib/earth/models/base.js +90 -47
  139. package/lib/earth/models/bloomsphere.js +63 -30
  140. package/lib/earth/utils.js +31 -7
  141. package/lib/heatmap/index.js +48 -10
  142. package/lib/heatmap/models/grid.js +60 -28
  143. package/lib/heatmap/models/grid3d.js +60 -28
  144. package/lib/heatmap/models/heatmap.js +162 -91
  145. package/lib/heatmap/models/hexagon.js +60 -28
  146. package/lib/heatmap/models/index.js +6 -0
  147. package/lib/heatmap/triangulation.js +5 -0
  148. package/lib/image/index.js +36 -9
  149. package/lib/image/models/image.js +109 -66
  150. package/lib/image/models/index.js +3 -0
  151. package/lib/index.js +61 -7
  152. package/lib/line/index.js +40 -9
  153. package/lib/line/models/arc.js +128 -64
  154. package/lib/line/models/arc_3d.js +119 -58
  155. package/lib/line/models/earthArc_3d.js +122 -61
  156. package/lib/line/models/great_circle.js +111 -56
  157. package/lib/line/models/half.js +87 -46
  158. package/lib/line/models/index.js +11 -0
  159. package/lib/line/models/line.js +156 -92
  160. package/lib/line/models/linearline.js +92 -45
  161. package/lib/line/models/simpleLine.js +84 -41
  162. package/lib/line/models/wall.js +103 -52
  163. package/lib/mask/index.js +36 -9
  164. package/lib/mask/models/fill.js +63 -29
  165. package/lib/mask/models/index.js +3 -0
  166. package/lib/plugins/DataMappingPlugin.js +128 -80
  167. package/lib/plugins/DataSourcePlugin.js +76 -45
  168. package/lib/plugins/FeatureScalePlugin.js +138 -67
  169. package/lib/plugins/LayerAnimateStylePlugin.js +10 -0
  170. package/lib/plugins/LayerMaskPlugin.js +17 -4
  171. package/lib/plugins/LayerModelPlugin.js +113 -68
  172. package/lib/plugins/LayerStylePlugin.js +14 -4
  173. package/lib/plugins/LightingPlugin.js +25 -12
  174. package/lib/plugins/MultiPassRendererPlugin.js +22 -11
  175. package/lib/plugins/PixelPickingPlugin.js +27 -12
  176. package/lib/plugins/RegisterStyleAttributePlugin.js +19 -5
  177. package/lib/plugins/ShaderUniformPlugin.js +34 -13
  178. package/lib/plugins/UpdateModelPlugin.js +10 -1
  179. package/lib/plugins/UpdateStyleAttributePlugin.js +16 -5
  180. package/lib/point/index.js +83 -26
  181. package/lib/point/models/earthExtrude.js +113 -61
  182. package/lib/point/models/earthFill.js +117 -57
  183. package/lib/point/models/extrude.js +111 -60
  184. package/lib/point/models/fill.js +109 -68
  185. package/lib/point/models/fillmage.js +115 -61
  186. package/lib/point/models/image.js +98 -48
  187. package/lib/point/models/index.js +12 -1
  188. package/lib/point/models/normal.js +64 -30
  189. package/lib/point/models/radar.js +74 -40
  190. package/lib/point/models/simplePoint.js +79 -41
  191. package/lib/point/models/text.js +314 -202
  192. package/lib/point/shape/extrude.js +20 -4
  193. package/lib/polygon/index.js +48 -11
  194. package/lib/polygon/models/extrude.js +103 -48
  195. package/lib/polygon/models/fill.js +98 -54
  196. package/lib/polygon/models/index.js +14 -2
  197. package/lib/polygon/models/ocean.js +88 -42
  198. package/lib/polygon/models/water.js +82 -37
  199. package/lib/raster/buffers/triangulation.js +7 -3
  200. package/lib/raster/index.js +40 -9
  201. package/lib/raster/models/index.js +5 -0
  202. package/lib/raster/models/raster.js +125 -80
  203. package/lib/raster/models/rasterRgb.js +139 -84
  204. package/lib/raster/models/rasterTerrainRgb.js +93 -56
  205. package/lib/tile/interaction/getRasterData.js +25 -14
  206. package/lib/tile/interaction/utils.js +19 -7
  207. package/lib/tile/manager/base.js +104 -63
  208. package/lib/tile/service/TileLayerService.js +60 -33
  209. package/lib/tile/service/TilePickService.js +48 -26
  210. package/lib/tile/service/TileSourceService.js +16 -2
  211. package/lib/tile/style/utils.js +3 -0
  212. package/lib/tile/tileFactory/DebugTile.js +54 -29
  213. package/lib/tile/tileFactory/ImageTile.js +46 -20
  214. package/lib/tile/tileFactory/MaskTile.js +51 -22
  215. package/lib/tile/tileFactory/RasterRGBTile.js +50 -22
  216. package/lib/tile/tileFactory/RasterTerrainRGBTile.js +46 -20
  217. package/lib/tile/tileFactory/RasterTile.js +63 -30
  218. package/lib/tile/tileFactory/Tile.js +102 -63
  219. package/lib/tile/tileFactory/VectorTile.js +76 -41
  220. package/lib/tile/tileFactory/index.js +25 -0
  221. package/lib/tile/tileFactory/layers/TileDebugLayer.js +32 -6
  222. package/lib/tile/tileFactory/util.js +9 -0
  223. package/lib/tile/tileLayer/BaseLayer.js +153 -105
  224. package/lib/tile/utils.js +5 -1
  225. package/lib/utils/blend.js +5 -0
  226. package/lib/utils/collision-index.js +25 -9
  227. package/lib/utils/dataMappingStyle.js +19 -8
  228. package/lib/utils/extrude_polyline.js +181 -101
  229. package/lib/utils/grid-index.js +28 -2
  230. package/lib/utils/identityScale.js +9 -0
  231. package/lib/utils/layerData.js +49 -30
  232. package/lib/utils/multiPassRender.js +16 -11
  233. package/lib/utils/polylineNormal.js +66 -31
  234. package/lib/utils/simpleLine.js +21 -2
  235. package/lib/utils/stencil.js +4 -0
  236. package/lib/utils/symbol-layout.js +55 -27
  237. package/lib/wind/index.js +37 -9
  238. package/lib/wind/models/index.js +3 -0
  239. package/lib/wind/models/utils.js +62 -26
  240. package/lib/wind/models/wind.js +157 -101
  241. package/lib/wind/models/windRender.js +71 -53
  242. package/lib/wind/models/windShader.js +1 -0
  243. package/package.json +7 -7
@@ -1,54 +1,78 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
9
+
8
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
9
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
10
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
11
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
+
12
18
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
+
13
20
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
+
14
22
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
+
15
24
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
+
16
26
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
+
17
28
  var _l7Core = require("@antv/l7-core");
29
+
18
30
  var _lodash = require("lodash");
31
+
19
32
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
33
+
20
34
  var _triangulation = require("../../core/triangulation");
35
+
21
36
  var _glMatrix = require("gl-matrix");
37
+
22
38
  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); }; }
39
+
23
40
  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; } }
41
+
24
42
  /* babel-plugin-inline-import '../shaders/earth/fill_frag.glsl' */
25
43
  var pointFillFrag = "uniform float u_additive;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\n\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\n\n\nvoid main() {\n int shape = int(floor(v_data.w + 0.5));\n\n vec4 textrueStroke = vec4(\n styleMappingMat[1][0],\n styleMappingMat[1][1],\n styleMappingMat[1][2],\n styleMappingMat[1][3]\n );\n\n float opacity = styleMappingMat[0][0];\n float stroke_opacity = styleMappingMat[0][1];\n float strokeWidth = styleMappingMat[0][2];\n vec4 strokeColor = textrueStroke == vec4(0) ? v_color : textrueStroke;\n\n lowp float antialiasblur = v_data.z;\n float r = v_radius / (v_radius + strokeWidth);\n\n float outer_df;\n float inner_df;\n // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica'\n if (shape == 0) {\n outer_df = sdCircle(v_data.xy, 1.0);\n inner_df = sdCircle(v_data.xy, r);\n } else if (shape == 1) {\n outer_df = sdEquilateralTriangle(1.1 * v_data.xy);\n inner_df = sdEquilateralTriangle(1.1 / r * v_data.xy);\n } else if (shape == 2) {\n outer_df = sdBox(v_data.xy, vec2(1.));\n inner_df = sdBox(v_data.xy, vec2(r));\n } else if (shape == 3) {\n outer_df = sdPentagon(v_data.xy, 0.8);\n inner_df = sdPentagon(v_data.xy, r * 0.8);\n } else if (shape == 4) {\n outer_df = sdHexagon(v_data.xy, 0.8);\n inner_df = sdHexagon(v_data.xy, r * 0.8);\n } else if (shape == 5) {\n outer_df = sdOctogon(v_data.xy, 1.0);\n inner_df = sdOctogon(v_data.xy, r);\n } else if (shape == 6) {\n outer_df = sdHexagram(v_data.xy, 0.52);\n inner_df = sdHexagram(v_data.xy, r * 0.52);\n } else if (shape == 7) {\n outer_df = sdRhombus(v_data.xy, vec2(1.0));\n inner_df = sdRhombus(v_data.xy, vec2(r));\n } else if (shape == 8) {\n outer_df = sdVesica(v_data.xy, 1.1, 0.8);\n inner_df = sdVesica(v_data.xy, r * 1.1, r * 0.8);\n }\n\n if(outer_df > antialiasblur + 0.018) discard;\n\n float opacity_t = smoothstep(0.0, antialiasblur, outer_df);\n\n float color_t = strokeWidth < 0.01 ? 0.0 : smoothstep(\n antialiasblur,\n 0.0,\n inner_df\n );\n\n if(strokeWidth < 0.01) {\n gl_FragColor = vec4(v_color.rgb, v_color.a * opacity);\n } else {\n gl_FragColor = mix(vec4(v_color.rgb, v_color.a * opacity), strokeColor * stroke_opacity, color_t);\n }\n\n if(u_additive > 0.0) {\n gl_FragColor *= opacity_t;\n gl_FragColor = filterColorAlpha(gl_FragColor, gl_FragColor.a);\n } else {\n gl_FragColor.a *= opacity_t;\n gl_FragColor = filterColor(gl_FragColor);\n }\n}\n";
44
+
26
45
  /* babel-plugin-inline-import '../shaders/earth/fill_vert.glsl' */
27
46
  var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute float a_Shape;\n\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\n\nuniform float u_opacity : 1;\nuniform float u_stroke_opacity : 1;\nuniform float u_stroke_width : 2;\nuniform vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0];\nuniform vec2 u_offsets;\n\nuniform float u_blur : 0.0;\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n#pragma include \"styleMappingCalStrokeOpacity\"\n#pragma include \"styleMappingCalStrokeWidth\"\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\n\nvoid main() {\n vec3 extrude = a_Extrude;\n float shape_type = a_Shape;\n /*\n * setPickingSize \u8BBE\u7F6E\u62FE\u53D6\u5927\u5C0F\n */\n float newSize = setPickingSize(a_Size);\n // float newSize = setPickingSize(a_Size) * 0.00001038445708445579;\n\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n\n vec2 strokeOpacityAndOffset = calStrokeOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][1] = strokeOpacityAndOffset.r;\n textureOffset = strokeOpacityAndOffset.g;\n\n vec2 strokeWidthAndOffset = calStrokeWidthAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][2] = strokeWidthAndOffset.r;\n textureOffset = strokeWidthAndOffset.g;\n\n vec4 textrueStroke = vec4(-1.0, -1.0, -1.0, -1.0);\n if(hasStroke()) {\n vec2 valueRPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][0] = pos2value(valueRPos, columnWidth, rowHeight); // R\n textureOffset += 1.0;\n\n vec2 valueGPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][1] = pos2value(valueGPos, columnWidth, rowHeight); // G\n textureOffset += 1.0;\n\n vec2 valueBPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][2] = pos2value(valueBPos, columnWidth, rowHeight); // B\n textureOffset += 1.0;\n\n vec2 valueAPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][3] = pos2value(valueAPos, columnWidth, rowHeight); // A\n textureOffset += 1.0;\n } else {\n if(u_stroke_color == vec4(0.0)) {\n styleMappingMat[1][0] = v_color.r;\n styleMappingMat[1][1] = v_color.g;\n styleMappingMat[1][2] = v_color.b;\n styleMappingMat[1][3] = v_color.a;\n } else {\n styleMappingMat[1][0] = u_stroke_color.r;\n styleMappingMat[1][1] = u_stroke_color.g;\n styleMappingMat[1][2] = u_stroke_color.b;\n styleMappingMat[1][3] = u_stroke_color.a;\n }\n }\n\n // cal style mapping\n\n // unpack color(vec2)\n v_color = a_Color;\n\n // radius(16-bit)\n v_radius = newSize;\n\n // anti-alias\n // float antialiased_blur = -max(u_blur, antialiasblur);\n float antialiasblur = -max(2.0 / u_DevicePixelRatio / newSize, u_blur);\n\n // TODP: /abs(extrude.x) \u662F\u4E3A\u4E86\u517C\u5BB9\u5730\u7403\u6A21\u5F0F\n v_data = vec4(extrude.x/abs(extrude.x), extrude.y/abs(extrude.y), antialiasblur,shape_type);\n\n\n gl_Position = u_ViewProjectionMatrix * vec4(a_Position + extrude * newSize * 0.1, 1.0);\n\n setPickingColor(a_PickingColor);\n}\n";
47
+
28
48
  var FillModel = /*#__PURE__*/function (_BaseModel) {
29
49
  (0, _inherits2.default)(FillModel, _BaseModel);
50
+
30
51
  var _super = _createSuper(FillModel);
52
+
31
53
  function FillModel() {
32
54
  (0, _classCallCheck2.default)(this, FillModel);
33
55
  return _super.apply(this, arguments);
34
56
  }
57
+
35
58
  (0, _createClass2.default)(FillModel, [{
36
59
  key: "getUninforms",
37
60
  value: function getUninforms() {
38
61
  var _ref = this.layer.getLayerConfig(),
39
- _ref$opacity = _ref.opacity,
40
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
41
- _ref$strokeOpacity = _ref.strokeOpacity,
42
- strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
43
- _ref$strokeWidth = _ref.strokeWidth,
44
- strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
45
- _ref$stroke = _ref.stroke,
46
- stroke = _ref$stroke === void 0 ? 'rgba(0,0,0,0)' : _ref$stroke,
47
- _ref$offsets = _ref.offsets,
48
- offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
49
- blend = _ref.blend,
50
- _ref$blur = _ref.blur,
51
- blur = _ref$blur === void 0 ? 0 : _ref$blur;
62
+ _ref$opacity = _ref.opacity,
63
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
64
+ _ref$strokeOpacity = _ref.strokeOpacity,
65
+ strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
66
+ _ref$strokeWidth = _ref.strokeWidth,
67
+ strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
68
+ _ref$stroke = _ref.stroke,
69
+ stroke = _ref$stroke === void 0 ? 'rgba(0,0,0,0)' : _ref$stroke,
70
+ _ref$offsets = _ref.offsets,
71
+ offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
72
+ blend = _ref.blend,
73
+ _ref$blur = _ref.blur,
74
+ blur = _ref$blur === void 0 ? 0 : _ref$blur;
75
+
52
76
  if (this.dataTextureTest && this.dataTextureNeedUpdate({
53
77
  opacity: opacity,
54
78
  strokeOpacity: strokeOpacity,
@@ -65,10 +89,12 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
65
89
  offsets: offsets
66
90
  });
67
91
  var encodeData = this.layer.getEncodedData();
92
+
68
93
  var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
69
- data = _this$calDataFrame.data,
70
- width = _this$calDataFrame.width,
71
- height = _this$calDataFrame.height;
94
+ data = _this$calDataFrame.data,
95
+ width = _this$calDataFrame.width,
96
+ height = _this$calDataFrame.height;
97
+
72
98
  this.rowCount = height; // 当前数据纹理有多少行
73
99
 
74
100
  this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
@@ -87,6 +113,7 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
87
113
  height: 1
88
114
  });
89
115
  }
116
+
90
117
  return {
91
118
  u_blur: blur,
92
119
  u_additive: blend === 'additive' ? 1.0 : 0.0,
@@ -104,10 +131,11 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
104
131
  key: "getAnimateUniforms",
105
132
  value: function getAnimateUniforms() {
106
133
  var _ref2 = this.layer.getLayerConfig(),
107
- _ref2$animateOption = _ref2.animateOption,
108
- animateOption = _ref2$animateOption === void 0 ? {
109
- enable: false
110
- } : _ref2$animateOption;
134
+ _ref2$animateOption = _ref2.animateOption,
135
+ animateOption = _ref2$animateOption === void 0 ? {
136
+ enable: false
137
+ } : _ref2$animateOption;
138
+
111
139
  return {
112
140
  u_animate: this.animateOption2Array(animateOption),
113
141
  u_time: this.layer.getLayerAnimateTime()
@@ -118,18 +146,23 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
118
146
  value: function () {
119
147
  var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
120
148
  return _regenerator.default.wrap(function _callee$(_context) {
121
- while (1) switch (_context.prev = _context.next) {
122
- case 0:
123
- return _context.abrupt("return", this.buildModels());
124
- case 1:
125
- case "end":
126
- return _context.stop();
149
+ while (1) {
150
+ switch (_context.prev = _context.next) {
151
+ case 0:
152
+ return _context.abrupt("return", this.buildModels());
153
+
154
+ case 1:
155
+ case "end":
156
+ return _context.stop();
157
+ }
127
158
  }
128
159
  }, _callee, this);
129
160
  }));
161
+
130
162
  function initModels() {
131
163
  return _initModels.apply(this, arguments);
132
164
  }
165
+
133
166
  return initModels;
134
167
  }()
135
168
  }, {
@@ -138,42 +171,48 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
138
171
  var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
139
172
  var model;
140
173
  return _regenerator.default.wrap(function _callee2$(_context2) {
141
- while (1) switch (_context2.prev = _context2.next) {
142
- case 0:
143
- this.layer.triangulation = _triangulation.GlobelPointFillTriangulation;
144
- _context2.next = 3;
145
- return this.layer.buildLayerModel({
146
- moduleName: 'pointEarthFill',
147
- vertexShader: pointFillVert,
148
- fragmentShader: pointFillFrag,
149
- triangulation: _triangulation.GlobelPointFillTriangulation,
150
- depth: {
151
- enable: true
152
- },
153
- blend: this.getBlend()
154
- });
155
- case 3:
156
- model = _context2.sent;
157
- return _context2.abrupt("return", [model]);
158
- case 5:
159
- case "end":
160
- return _context2.stop();
174
+ while (1) {
175
+ switch (_context2.prev = _context2.next) {
176
+ case 0:
177
+ this.layer.triangulation = _triangulation.GlobelPointFillTriangulation;
178
+ _context2.next = 3;
179
+ return this.layer.buildLayerModel({
180
+ moduleName: 'pointEarthFill',
181
+ vertexShader: pointFillVert,
182
+ fragmentShader: pointFillFrag,
183
+ triangulation: _triangulation.GlobelPointFillTriangulation,
184
+ depth: {
185
+ enable: true
186
+ },
187
+ blend: this.getBlend()
188
+ });
189
+
190
+ case 3:
191
+ model = _context2.sent;
192
+ return _context2.abrupt("return", [model]);
193
+
194
+ case 5:
195
+ case "end":
196
+ return _context2.stop();
197
+ }
161
198
  }
162
199
  }, _callee2, this);
163
200
  }));
201
+
164
202
  function buildModels() {
165
203
  return _buildModels.apply(this, arguments);
166
204
  }
205
+
167
206
  return buildModels;
168
207
  }()
169
208
  }, {
170
209
  key: "clearModels",
171
210
  value: function clearModels() {
172
211
  var _this$dataTexture;
212
+
173
213
  (_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
174
- }
214
+ } // overwrite baseModel func
175
215
 
176
- // overwrite baseModel func
177
216
  }, {
178
217
  key: "animateOption2Array",
179
218
  value: function animateOption2Array(option) {
@@ -183,6 +222,7 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
183
222
  key: "registerBuiltinAttributes",
184
223
  value: function registerBuiltinAttributes() {
185
224
  var _this = this;
225
+
186
226
  this.styleAttributeService.registerStyleAttribute({
187
227
  name: 'extrude',
188
228
  type: _l7Core.AttributeType.Attribute,
@@ -197,36 +237,54 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
197
237
  size: 3,
198
238
  update: function update(feature, featureIdx, vertex, attributeIdx) {
199
239
  var _vertex = (0, _slicedToArray2.default)(vertex, 3),
200
- x = _vertex[0],
201
- y = _vertex[1],
202
- z = _vertex[2];
240
+ x = _vertex[0],
241
+ y = _vertex[1],
242
+ z = _vertex[2];
243
+
203
244
  var n1 = _glMatrix.vec3.fromValues(0, 0, 1);
245
+
204
246
  var n2 = _glMatrix.vec3.fromValues(x, 0, z);
247
+
205
248
  var xzReg = x >= 0 ? _glMatrix.vec3.angle(n1, n2) : Math.PI * 2 - _glMatrix.vec3.angle(n1, n2);
206
249
  var yReg = Math.PI * 2 - Math.asin(y / 100);
250
+
207
251
  var m = _glMatrix.mat4.create();
252
+
208
253
  _glMatrix.mat4.rotateY(m, m, xzReg);
254
+
209
255
  _glMatrix.mat4.rotateX(m, m, yReg);
256
+
210
257
  var v1 = _glMatrix.vec3.fromValues(1, 1, 0);
258
+
211
259
  _glMatrix.vec3.transformMat4(v1, v1, m);
260
+
212
261
  _glMatrix.vec3.normalize(v1, v1);
262
+
213
263
  var v2 = _glMatrix.vec3.fromValues(-1, 1, 0);
264
+
214
265
  _glMatrix.vec3.transformMat4(v2, v2, m);
266
+
215
267
  _glMatrix.vec3.normalize(v2, v2);
268
+
216
269
  var v3 = _glMatrix.vec3.fromValues(-1, -1, 0);
270
+
217
271
  _glMatrix.vec3.transformMat4(v3, v3, m);
272
+
218
273
  _glMatrix.vec3.normalize(v3, v3);
274
+
219
275
  var v4 = _glMatrix.vec3.fromValues(1, -1, 0);
276
+
220
277
  _glMatrix.vec3.transformMat4(v4, v4, m);
278
+
221
279
  _glMatrix.vec3.normalize(v4, v4);
280
+
222
281
  var extrude = [].concat((0, _toConsumableArray2.default)(v1), (0, _toConsumableArray2.default)(v2), (0, _toConsumableArray2.default)(v3), (0, _toConsumableArray2.default)(v4));
223
282
  var extrudeIndex = attributeIdx % 4 * 3;
224
283
  return [extrude[extrudeIndex], extrude[extrudeIndex + 1], extrude[extrudeIndex + 2]];
225
284
  }
226
285
  }
227
- });
286
+ }); // point layer size;
228
287
 
229
- // point layer size;
230
288
  this.styleAttributeService.registerStyleAttribute({
231
289
  name: 'size',
232
290
  type: _l7Core.AttributeType.Attribute,
@@ -241,13 +299,12 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
241
299
  size: 1,
242
300
  update: function update(feature) {
243
301
  var _feature$size = feature.size,
244
- size = _feature$size === void 0 ? 5 : _feature$size;
302
+ size = _feature$size === void 0 ? 5 : _feature$size;
245
303
  return Array.isArray(size) ? [size[0]] : [size];
246
304
  }
247
305
  }
248
- });
306
+ }); // point layer size;
249
307
 
250
- // point layer size;
251
308
  this.styleAttributeService.registerStyleAttribute({
252
309
  name: 'shape',
253
310
  type: _l7Core.AttributeType.Attribute,
@@ -262,8 +319,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
262
319
  size: 1,
263
320
  update: function update(feature) {
264
321
  var _feature$shape = feature.shape,
265
- shape = _feature$shape === void 0 ? 2 : _feature$shape;
322
+ shape = _feature$shape === void 0 ? 2 : _feature$shape;
323
+
266
324
  var shape2d = _this.layer.getLayerConfig().shape2d;
325
+
267
326
  var shapeIndex = shape2d.indexOf(shape);
268
327
  return [shapeIndex];
269
328
  }
@@ -273,4 +332,5 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
273
332
  }]);
274
333
  return FillModel;
275
334
  }(_BaseModel2.default);
335
+
276
336
  exports.default = FillModel;