@antv/l7-layers 2.15.2 → 2.15.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/es/Geometry/index.js +9 -31
  2. package/es/Geometry/models/billboard.js +51 -89
  3. package/es/Geometry/models/plane.js +81 -143
  4. package/es/Geometry/models/sprite.js +60 -118
  5. package/es/canvas/index.js +10 -33
  6. package/es/canvas/models/canvas.js +41 -97
  7. package/es/citybuliding/building.js +8 -27
  8. package/es/citybuliding/models/build.js +57 -82
  9. package/es/core/BaseLayer.js +320 -484
  10. package/es/core/BaseModel.js +97 -126
  11. package/es/core/LayerPickService.js +21 -32
  12. package/es/core/TextureService.js +0 -13
  13. package/es/core/interface.js +17 -24
  14. package/es/core/shape/Path.js +13 -20
  15. package/es/core/shape/extrude.js +10 -31
  16. package/es/core/triangulation.js +54 -114
  17. package/es/earth/index.js +9 -33
  18. package/es/earth/models/atmosphere.js +30 -54
  19. package/es/earth/models/base.js +47 -85
  20. package/es/earth/models/bloomsphere.js +30 -54
  21. package/es/earth/utils.js +9 -13
  22. package/es/heatmap/index.js +10 -40
  23. package/es/heatmap/models/grid.js +28 -52
  24. package/es/heatmap/models/grid3d.js +28 -52
  25. package/es/heatmap/models/heatmap.js +91 -146
  26. package/es/heatmap/models/hexagon.js +28 -52
  27. package/es/heatmap/triangulation.js +0 -4
  28. package/es/image/index.js +9 -28
  29. package/es/image/models/image.js +66 -100
  30. package/es/index.js +9 -17
  31. package/es/line/index.js +9 -34
  32. package/es/line/models/arc.js +66 -118
  33. package/es/line/models/arc_3d.js +60 -108
  34. package/es/line/models/earthArc_3d.js +63 -111
  35. package/es/line/models/great_circle.js +56 -100
  36. package/es/line/models/half.js +46 -77
  37. package/es/line/models/line.js +94 -148
  38. package/es/line/models/linearline.js +45 -80
  39. package/es/line/models/simpleLine.js +41 -74
  40. package/es/line/models/wall.js +52 -92
  41. package/es/mask/index.js +9 -28
  42. package/es/mask/models/fill.js +29 -54
  43. package/es/plugins/DataMappingPlugin.js +80 -117
  44. package/es/plugins/DataSourcePlugin.js +45 -68
  45. package/es/plugins/FeatureScalePlugin.js +67 -122
  46. package/es/plugins/LayerAnimateStylePlugin.js +0 -5
  47. package/es/plugins/LayerMaskPlugin.js +3 -11
  48. package/es/plugins/LayerModelPlugin.js +67 -104
  49. package/es/plugins/LayerStylePlugin.js +3 -9
  50. package/es/plugins/LightingPlugin.js +12 -18
  51. package/es/plugins/MultiPassRendererPlugin.js +11 -16
  52. package/es/plugins/PixelPickingPlugin.js +12 -21
  53. package/es/plugins/RegisterStyleAttributePlugin.js +5 -12
  54. package/es/plugins/ShaderUniformPlugin.js +13 -27
  55. package/es/plugins/UpdateModelPlugin.js +0 -5
  56. package/es/plugins/UpdateStyleAttributePlugin.js +5 -11
  57. package/es/point/index.js +26 -77
  58. package/es/point/models/earthExtrude.js +61 -102
  59. package/es/point/models/earthFill.js +57 -87
  60. package/es/point/models/extrude.js +60 -101
  61. package/es/point/models/fill.js +70 -100
  62. package/es/point/models/fillmage.js +63 -107
  63. package/es/point/models/image.js +48 -88
  64. package/es/point/models/index.js +2 -2
  65. package/es/point/models/normal.js +30 -54
  66. package/es/point/models/radar.js +40 -64
  67. package/es/point/models/simplePoint.js +41 -69
  68. package/es/point/models/text.js +197 -299
  69. package/es/point/shape/extrude.js +4 -13
  70. package/es/polygon/index.js +11 -40
  71. package/es/polygon/models/extrude.js +48 -92
  72. package/es/polygon/models/fill.js +54 -88
  73. package/es/polygon/models/index.js +3 -2
  74. package/es/polygon/models/ocean.js +42 -76
  75. package/es/polygon/models/water.js +37 -71
  76. package/es/raster/buffers/triangulation.js +2 -4
  77. package/es/raster/index.js +9 -32
  78. package/es/raster/models/raster.js +80 -116
  79. package/es/raster/models/rasterRgb.js +84 -127
  80. package/es/raster/models/rasterTerrainRgb.js +56 -84
  81. package/es/tile/interaction/getRasterData.js +14 -20
  82. package/es/tile/interaction/utils.js +7 -9
  83. package/es/tile/manager/base.js +63 -96
  84. package/es/tile/service/TileLayerService.js +30 -52
  85. package/es/tile/service/TilePickService.js +26 -40
  86. package/es/tile/service/TileSourceService.js +3 -7
  87. package/es/tile/tileFactory/DebugTile.js +28 -45
  88. package/es/tile/tileFactory/ImageTile.js +20 -38
  89. package/es/tile/tileFactory/MaskTile.js +22 -43
  90. package/es/tile/tileFactory/RasterRGBTile.js +22 -42
  91. package/es/tile/tileFactory/RasterTerrainRGBTile.js +20 -38
  92. package/es/tile/tileFactory/RasterTile.js +30 -53
  93. package/es/tile/tileFactory/Tile.js +63 -97
  94. package/es/tile/tileFactory/VectorTile.js +41 -68
  95. package/es/tile/tileFactory/index.js +0 -11
  96. package/es/tile/tileFactory/layers/TileDebugLayer.js +6 -27
  97. package/es/tile/tileFactory/util.js +0 -3
  98. package/es/tile/tileLayer/BaseLayer.js +105 -146
  99. package/es/tile/utils.js +1 -1
  100. package/es/utils/blend.js +0 -2
  101. package/es/utils/collision-index.js +9 -16
  102. package/es/utils/dataMappingStyle.js +8 -18
  103. package/es/utils/extrude_polyline.js +101 -149
  104. package/es/utils/grid-index.js +2 -27
  105. package/es/utils/identityScale.js +0 -8
  106. package/es/utils/layerData.js +30 -44
  107. package/es/utils/multiPassRender.js +11 -13
  108. package/es/utils/polylineNormal.js +31 -37
  109. package/es/utils/simpleLine.js +2 -16
  110. package/es/utils/stencil.js +2 -3
  111. package/es/utils/symbol-layout.js +27 -53
  112. package/es/wind/index.js +9 -29
  113. package/es/wind/models/utils.js +26 -51
  114. package/es/wind/models/wind.js +101 -147
  115. package/es/wind/models/windRender.js +53 -66
  116. package/lib/Geometry/index.js +9 -38
  117. package/lib/Geometry/models/billboard.js +51 -97
  118. package/lib/Geometry/models/index.js +0 -5
  119. package/lib/Geometry/models/plane.js +79 -151
  120. package/lib/Geometry/models/sprite.js +60 -127
  121. package/lib/canvas/index.js +10 -40
  122. package/lib/canvas/models/canvas.js +41 -101
  123. package/lib/canvas/models/index.js +0 -3
  124. package/lib/citybuliding/building.js +8 -35
  125. package/lib/citybuliding/models/build.js +57 -92
  126. package/lib/core/BaseLayer.js +320 -478
  127. package/lib/core/BaseModel.js +97 -139
  128. package/lib/core/LayerPickService.js +21 -37
  129. package/lib/core/TextureService.js +0 -16
  130. package/lib/core/interface.js +21 -31
  131. package/lib/core/schema.js +0 -1
  132. package/lib/core/shape/Path.js +14 -31
  133. package/lib/core/shape/extrude.js +10 -54
  134. package/lib/core/triangulation.js +53 -153
  135. package/lib/earth/index.js +9 -43
  136. package/lib/earth/models/atmosphere.js +30 -63
  137. package/lib/earth/models/base.js +47 -90
  138. package/lib/earth/models/bloomsphere.js +30 -63
  139. package/lib/earth/utils.js +7 -31
  140. package/lib/heatmap/index.js +10 -48
  141. package/lib/heatmap/models/grid.js +28 -60
  142. package/lib/heatmap/models/grid3d.js +28 -60
  143. package/lib/heatmap/models/heatmap.js +91 -162
  144. package/lib/heatmap/models/hexagon.js +28 -60
  145. package/lib/heatmap/models/index.js +0 -6
  146. package/lib/heatmap/triangulation.js +0 -5
  147. package/lib/image/index.js +9 -36
  148. package/lib/image/models/image.js +66 -109
  149. package/lib/image/models/index.js +0 -3
  150. package/lib/index.js +7 -61
  151. package/lib/line/index.js +9 -40
  152. package/lib/line/models/arc.js +64 -128
  153. package/lib/line/models/arc_3d.js +58 -119
  154. package/lib/line/models/earthArc_3d.js +61 -122
  155. package/lib/line/models/great_circle.js +56 -111
  156. package/lib/line/models/half.js +46 -87
  157. package/lib/line/models/index.js +0 -11
  158. package/lib/line/models/line.js +92 -156
  159. package/lib/line/models/linearline.js +45 -92
  160. package/lib/line/models/simpleLine.js +41 -84
  161. package/lib/line/models/wall.js +52 -103
  162. package/lib/mask/index.js +9 -36
  163. package/lib/mask/models/fill.js +29 -63
  164. package/lib/mask/models/index.js +0 -3
  165. package/lib/plugins/DataMappingPlugin.js +80 -128
  166. package/lib/plugins/DataSourcePlugin.js +45 -76
  167. package/lib/plugins/FeatureScalePlugin.js +67 -138
  168. package/lib/plugins/LayerAnimateStylePlugin.js +0 -10
  169. package/lib/plugins/LayerMaskPlugin.js +4 -17
  170. package/lib/plugins/LayerModelPlugin.js +68 -113
  171. package/lib/plugins/LayerStylePlugin.js +4 -14
  172. package/lib/plugins/LightingPlugin.js +12 -25
  173. package/lib/plugins/MultiPassRendererPlugin.js +11 -22
  174. package/lib/plugins/PixelPickingPlugin.js +12 -27
  175. package/lib/plugins/RegisterStyleAttributePlugin.js +5 -19
  176. package/lib/plugins/ShaderUniformPlugin.js +13 -34
  177. package/lib/plugins/UpdateModelPlugin.js +1 -10
  178. package/lib/plugins/UpdateStyleAttributePlugin.js +5 -16
  179. package/lib/point/index.js +26 -83
  180. package/lib/point/models/earthExtrude.js +61 -113
  181. package/lib/point/models/earthFill.js +57 -117
  182. package/lib/point/models/extrude.js +60 -111
  183. package/lib/point/models/fill.js +68 -109
  184. package/lib/point/models/fillmage.js +61 -115
  185. package/lib/point/models/image.js +48 -98
  186. package/lib/point/models/index.js +1 -12
  187. package/lib/point/models/normal.js +30 -64
  188. package/lib/point/models/radar.js +40 -74
  189. package/lib/point/models/simplePoint.js +41 -79
  190. package/lib/point/models/text.js +197 -307
  191. package/lib/point/shape/extrude.js +4 -20
  192. package/lib/polygon/index.js +11 -48
  193. package/lib/polygon/models/extrude.js +48 -103
  194. package/lib/polygon/models/fill.js +54 -98
  195. package/lib/polygon/models/index.js +2 -14
  196. package/lib/polygon/models/ocean.js +42 -88
  197. package/lib/polygon/models/water.js +37 -82
  198. package/lib/raster/buffers/triangulation.js +3 -7
  199. package/lib/raster/index.js +9 -40
  200. package/lib/raster/models/index.js +0 -5
  201. package/lib/raster/models/raster.js +80 -125
  202. package/lib/raster/models/rasterRgb.js +84 -139
  203. package/lib/raster/models/rasterTerrainRgb.js +56 -93
  204. package/lib/tile/interaction/getRasterData.js +14 -25
  205. package/lib/tile/interaction/utils.js +7 -19
  206. package/lib/tile/manager/base.js +63 -104
  207. package/lib/tile/service/TileLayerService.js +30 -57
  208. package/lib/tile/service/TilePickService.js +26 -48
  209. package/lib/tile/service/TileSourceService.js +2 -16
  210. package/lib/tile/style/utils.js +0 -3
  211. package/lib/tile/tileFactory/DebugTile.js +28 -53
  212. package/lib/tile/tileFactory/ImageTile.js +20 -46
  213. package/lib/tile/tileFactory/MaskTile.js +22 -51
  214. package/lib/tile/tileFactory/RasterRGBTile.js +22 -50
  215. package/lib/tile/tileFactory/RasterTerrainRGBTile.js +20 -46
  216. package/lib/tile/tileFactory/RasterTile.js +30 -63
  217. package/lib/tile/tileFactory/Tile.js +63 -102
  218. package/lib/tile/tileFactory/VectorTile.js +41 -76
  219. package/lib/tile/tileFactory/index.js +0 -25
  220. package/lib/tile/tileFactory/layers/TileDebugLayer.js +6 -32
  221. package/lib/tile/tileFactory/util.js +0 -9
  222. package/lib/tile/tileLayer/BaseLayer.js +105 -153
  223. package/lib/tile/utils.js +1 -5
  224. package/lib/utils/blend.js +0 -5
  225. package/lib/utils/collision-index.js +9 -25
  226. package/lib/utils/dataMappingStyle.js +8 -19
  227. package/lib/utils/extrude_polyline.js +101 -181
  228. package/lib/utils/grid-index.js +2 -28
  229. package/lib/utils/identityScale.js +0 -9
  230. package/lib/utils/layerData.js +30 -49
  231. package/lib/utils/multiPassRender.js +11 -16
  232. package/lib/utils/polylineNormal.js +31 -66
  233. package/lib/utils/simpleLine.js +2 -21
  234. package/lib/utils/stencil.js +0 -4
  235. package/lib/utils/symbol-layout.js +27 -55
  236. package/lib/wind/index.js +9 -37
  237. package/lib/wind/models/index.js +0 -3
  238. package/lib/wind/models/utils.js +26 -62
  239. package/lib/wind/models/wind.js +101 -157
  240. package/lib/wind/models/windRender.js +53 -71
  241. package/lib/wind/models/windShader.js +0 -1
  242. package/package.json +7 -7
@@ -7,72 +7,56 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConst
7
7
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
8
8
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
9
9
  import _regeneratorRuntime from "@babel/runtime/regenerator";
10
-
11
10
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12
-
13
11
  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; } }
14
-
15
12
  import { AttributeType, gl } from '@antv/l7-core';
16
13
  import { calculateCentroid, getCullFace, rgb2arr } from '@antv/l7-utils';
17
14
  import { isNumber } from 'lodash';
18
15
  import BaseModel from "../../core/BaseModel";
19
16
  import { PointExtrudeTriangulation } from "../../core/triangulation";
20
-
21
17
  /* babel-plugin-inline-import '../shaders/extrude/extrude_frag.glsl' */
22
18
  var pointExtrudeFrag = "varying vec4 v_color;\nuniform float u_opacity: 1.0;\n\nuniform float u_pickLight: 0.0;\n\n#pragma include \"picking\"\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\nuniform float u_linearColor: 0;\nuniform vec4 u_sourceColor;\nuniform vec4 u_targetColor;\n\nuniform float u_opacitylinear: 0.0;\nuniform float u_opacitylinear_dir: 1.0;\n\nvoid main() {\n float opacity = styleMappingMat[0][0];\n float lightWeight = styleMappingMat[1][3];\n float barLinearZ = styleMappingMat[2][3];\n\n // \u8BBE\u7F6E\u5706\u67F1\u7684\u5E95\u8272\n if(u_linearColor == 1.0) { // \u4F7F\u7528\u6E10\u53D8\u989C\u8272\n gl_FragColor = mix(u_sourceColor, u_targetColor, barLinearZ);\n gl_FragColor.rgb *= lightWeight;\n } else { // \u4F7F\u7528 color \u65B9\u6CD5\u4F20\u5165\u7684\u989C\u8272\n gl_FragColor = v_color;\n }\n\n // \u5E94\u7528\u900F\u660E\u5EA6\n gl_FragColor.a *= opacity;\n\n // \u5F00\u542F\u900F\u660E\u5EA6\u6E10\u53D8\n if(u_opacitylinear > 0.0) {\n gl_FragColor.a *= u_opacitylinear_dir > 0.0 ? (1.0 - barLinearZ): barLinearZ;\n }\n\n // picking\n if(u_pickLight > 0.0) {\n gl_FragColor = filterColorAlpha(gl_FragColor, lightWeight);\n } else {\n gl_FragColor = filterColor(gl_FragColor);\n }\n}\n";
23
-
24
19
  /* babel-plugin-inline-import '../shaders/extrude/extrude_vert.glsl' */
25
20
  var pointExtrudeVert = "precision highp float;\n\n#define pi 3.1415926535\n#define ambientRatio 0.5\n#define diffuseRatio 0.3\n#define specularRatio 0.2\n\nattribute vec3 a_Position;\nattribute vec3 a_Pos;\nattribute vec4 a_Color;\nattribute vec3 a_Size;\nattribute vec3 a_Normal;\n\nuniform float u_heightfixed: 0.0; // \u9ED8\u8BA4\u4E0D\u56FA\u5B9A\nuniform float u_r;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nvarying vec4 v_color;\n\nuniform float u_opacity : 1;\nuniform float u_lightEnable: 1;\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\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\n#pragma include \"projection\"\n#pragma include \"light\"\n#pragma include \"picking\"\n\nfloat getYRadian(float x, float z) {\n if(x > 0.0 && z > 0.0) {\n return atan(x/z);\n } else if(x > 0.0 && z <= 0.0){\n return atan(-z/x) + pi/2.0;\n } else if(x <= 0.0 && z <= 0.0) {\n return pi + atan(x/z); //atan(x/z) + \n } else {\n return atan(z/-x) + pi*3.0/2.0;\n }\n}\n\nfloat getXRadian(float y, float r) {\n return atan(y/r);\n}\n\nvoid main() {\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 - lightWeight\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1] - linearZ(\u5782\u76F4\u65B9\u5411 0 - 1 \u7684\u503C)\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 // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n vec3 size = a_Size * a_Position;\n\n // a_Position.z \u662F\u5728\u6784\u5EFA\u7F51\u683C\u7684\u65F6\u5019\u4F20\u5165\u7684\u6807\u51C6\u503C 0 - 1\uFF0C\u5728\u63D2\u503C\u5668\u63D2\u503C\u53EF\u4EE5\u83B7\u53D6 0\uFF5E1 \u7EBF\u6027\u6E10\u53D8\u7684\u503C\n styleMappingMat[2][3] = a_Position.z;\n\n vec3 offset = size; // \u63A7\u5236\u5706\u67F1\u4F53\u7684\u5927\u5C0F - \u4ECE\u6807\u51C6\u5355\u4F4D\u5706\u67F1\u4F53\u8FDB\u884C\u504F\u79FB\n if(u_heightfixed < 1.0) { // \u5706\u67F1\u4F53\u4E0D\u56FA\u5B9A\u9AD8\u5EA6\n \n if (u_CoordinateSystem == COORDINATE_SYSTEM_P20 || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) {\n // P20 \u5750\u6807\u7CFB\u4E0B\uFF0C\u4E3A\u4E86\u548C Web \u58A8\u5361\u6258\u5750\u6807\u7CFB\u7EDF\u4E00\uFF0Czoom \u9ED8\u8BA4\u51CF1\n offset = offset * pow(2.0, (19.0 - u_Zoom));\n }\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) {\n // P20_2 \u5750\u6807\u7CFB\u4E0B\uFF0C\u4E3A\u4E86\u548C Web \u58A8\u5361\u6258\u5750\u6807\u7CFB\u7EDF\u4E00\uFF0Czoom \u9ED8\u8BA4\u51CF3\n offset = offset * pow(2.0, (19.0 - 3.0 - u_Zoom));\n }\n } else {// \u5706\u67F1\u4F53\u56FA\u5B9A\u9AD8\u5EA6 \uFF08 \u5904\u7406 mapbox \uFF09\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n offset *= 4.0/pow(2.0, 21.0 - u_Zoom);\n }\n }\n\n\n vec4 project_pos = project_position(vec4(a_Pos.xy, 0., 1.0));\n\n // u_r \u63A7\u5236\u5706\u67F1\u7684\u751F\u957F\n vec4 pos = vec4(project_pos.xy + offset.xy, offset.z * u_r, 1.0);\n\n // \u5706\u67F1\u5149\u7167\u6548\u679C\n float lightWeight = 1.0;\n if(u_lightEnable > 0.0) { // \u53D6\u6D88\u4E09\u5143\u8868\u8FBE\u5F0F\uFF0C\u589E\u5F3A\u5065\u58EE\u6027\n lightWeight = calc_lighting(pos);\n }\n styleMappingMat[1][3] = lightWeight;\n\n v_color =vec4(a_Color.rgb * lightWeight, a_Color.w);\n\n // gl_Position = project_common_position_to_clipspace(pos);\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * pos;\n } else {\n gl_Position = project_common_position_to_clipspace(pos);\n }\n\n setPickingColor(a_PickingColor);\n}\n";
26
-
27
21
  var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
28
22
  _inherits(ExtrudeModel, _BaseModel);
29
-
30
23
  var _super = _createSuper(ExtrudeModel);
31
-
32
24
  function ExtrudeModel() {
33
25
  var _this;
34
-
35
26
  _classCallCheck(this, ExtrudeModel);
36
-
37
27
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
38
28
  args[_key] = arguments[_key];
39
29
  }
40
-
41
30
  _this = _super.call.apply(_super, [this].concat(args));
42
-
43
31
  _defineProperty(_assertThisInitialized(_this), "raiseCount", 0);
44
-
45
32
  _defineProperty(_assertThisInitialized(_this), "raiseRepeat", 0);
46
-
47
33
  return _this;
48
34
  }
49
-
50
35
  _createClass(ExtrudeModel, [{
51
36
  key: "getUninforms",
52
37
  value: function getUninforms() {
53
38
  var _ref = this.layer.getLayerConfig(),
54
- _ref$animateOption = _ref.animateOption,
55
- animateOption = _ref$animateOption === void 0 ? {
56
- enable: false,
57
- speed: 0.01,
58
- repeat: false
59
- } : _ref$animateOption,
60
- _ref$opacity = _ref.opacity,
61
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
62
- sourceColor = _ref.sourceColor,
63
- targetColor = _ref.targetColor,
64
- _ref$pickLight = _ref.pickLight,
65
- pickLight = _ref$pickLight === void 0 ? false : _ref$pickLight,
66
- _ref$heightfixed = _ref.heightfixed,
67
- heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
68
- _ref$opacityLinear = _ref.opacityLinear,
69
- opacityLinear = _ref$opacityLinear === void 0 ? {
70
- enable: false,
71
- dir: 'up'
72
- } : _ref$opacityLinear,
73
- _ref$lightEnable = _ref.lightEnable,
74
- lightEnable = _ref$lightEnable === void 0 ? true : _ref$lightEnable;
75
-
39
+ _ref$animateOption = _ref.animateOption,
40
+ animateOption = _ref$animateOption === void 0 ? {
41
+ enable: false,
42
+ speed: 0.01,
43
+ repeat: false
44
+ } : _ref$animateOption,
45
+ _ref$opacity = _ref.opacity,
46
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
47
+ sourceColor = _ref.sourceColor,
48
+ targetColor = _ref.targetColor,
49
+ _ref$pickLight = _ref.pickLight,
50
+ pickLight = _ref$pickLight === void 0 ? false : _ref$pickLight,
51
+ _ref$heightfixed = _ref.heightfixed,
52
+ heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
53
+ _ref$opacityLinear = _ref.opacityLinear,
54
+ opacityLinear = _ref$opacityLinear === void 0 ? {
55
+ enable: false,
56
+ dir: 'up'
57
+ } : _ref$opacityLinear,
58
+ _ref$lightEnable = _ref.lightEnable,
59
+ lightEnable = _ref$lightEnable === void 0 ? true : _ref$lightEnable;
76
60
  if (this.dataTextureTest && this.dataTextureNeedUpdate({
77
61
  opacity: opacity
78
62
  })) {
@@ -80,12 +64,10 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
80
64
  opacity: opacity
81
65
  });
82
66
  var encodeData = this.layer.getEncodedData();
83
-
84
67
  var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
85
- data = _this$calDataFrame.data,
86
- width = _this$calDataFrame.width,
87
- height = _this$calDataFrame.height;
88
-
68
+ data = _this$calDataFrame.data,
69
+ width = _this$calDataFrame.width,
70
+ height = _this$calDataFrame.height;
89
71
  this.rowCount = height; // 当前数据纹理有多少行
90
72
 
91
73
  this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
@@ -103,26 +85,22 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
103
85
  width: 1,
104
86
  height: 1
105
87
  });
106
- } // 转化渐变色
107
-
88
+ }
108
89
 
90
+ // 转化渐变色
109
91
  var useLinearColor = 0; // 默认不生效
110
-
111
92
  var sourceColorArr = [0, 0, 0, 0];
112
93
  var targetColorArr = [0, 0, 0, 0];
113
-
114
94
  if (sourceColor && targetColor) {
115
95
  sourceColorArr = rgb2arr(sourceColor);
116
96
  targetColorArr = rgb2arr(targetColor);
117
97
  useLinearColor = 1;
118
98
  }
119
-
120
99
  if (this.raiseCount < 1 && this.raiseRepeat > 0) {
121
100
  if (animateOption.enable) {
122
101
  var _animateOption$speed = animateOption.speed,
123
- speed = _animateOption$speed === void 0 ? 0.01 : _animateOption$speed;
102
+ speed = _animateOption$speed === void 0 ? 0.01 : _animateOption$speed;
124
103
  this.raiseCount += speed;
125
-
126
104
  if (this.raiseCount >= 1) {
127
105
  if (this.raiseRepeat > 1) {
128
106
  this.raiseCount = 0;
@@ -133,7 +111,6 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
133
111
  }
134
112
  }
135
113
  }
136
-
137
114
  return {
138
115
  // 圆柱体的拾取高亮是否要计算光照
139
116
  u_pickLight: Number(pickLight),
@@ -160,23 +137,18 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
160
137
  value: function () {
161
138
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
162
139
  return _regeneratorRuntime.wrap(function _callee$(_context) {
163
- while (1) {
164
- switch (_context.prev = _context.next) {
165
- case 0:
166
- return _context.abrupt("return", this.buildModels());
167
-
168
- case 1:
169
- case "end":
170
- return _context.stop();
171
- }
140
+ while (1) switch (_context.prev = _context.next) {
141
+ case 0:
142
+ return _context.abrupt("return", this.buildModels());
143
+ case 1:
144
+ case "end":
145
+ return _context.stop();
172
146
  }
173
147
  }, _callee, this);
174
148
  }));
175
-
176
149
  function initModels() {
177
150
  return _initModels.apply(this, arguments);
178
151
  }
179
-
180
152
  return initModels;
181
153
  }()
182
154
  }, {
@@ -184,52 +156,44 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
184
156
  value: function () {
185
157
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
186
158
  var _ref2, _ref2$depth, depth, _ref2$animateOption$r, repeat, model;
187
-
188
159
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
189
- while (1) {
190
- switch (_context2.prev = _context2.next) {
191
- case 0:
192
- // GAODE1.x GAODE2.x MAPBOX
193
- _ref2 = this.layer.getLayerConfig(), _ref2$depth = _ref2.depth, depth = _ref2$depth === void 0 ? true : _ref2$depth, _ref2$animateOption$r = _ref2.animateOption.repeat, repeat = _ref2$animateOption$r === void 0 ? 1 : _ref2$animateOption$r;
194
- this.raiseRepeat = repeat;
195
- _context2.next = 4;
196
- return this.layer.buildLayerModel({
197
- moduleName: 'pointExtrude',
198
- vertexShader: pointExtrudeVert,
199
- fragmentShader: pointExtrudeFrag,
200
- triangulation: PointExtrudeTriangulation,
201
- cull: {
202
- enable: true,
203
- face: getCullFace(this.mapService.version)
204
- },
205
- depth: {
206
- enable: depth
207
- }
208
- });
209
-
210
- case 4:
211
- model = _context2.sent;
212
- return _context2.abrupt("return", [model]);
213
-
214
- case 6:
215
- case "end":
216
- return _context2.stop();
217
- }
160
+ while (1) switch (_context2.prev = _context2.next) {
161
+ case 0:
162
+ // GAODE1.x GAODE2.x MAPBOX
163
+ _ref2 = this.layer.getLayerConfig(), _ref2$depth = _ref2.depth, depth = _ref2$depth === void 0 ? true : _ref2$depth, _ref2$animateOption$r = _ref2.animateOption.repeat, repeat = _ref2$animateOption$r === void 0 ? 1 : _ref2$animateOption$r;
164
+ this.raiseRepeat = repeat;
165
+ _context2.next = 4;
166
+ return this.layer.buildLayerModel({
167
+ moduleName: 'pointExtrude',
168
+ vertexShader: pointExtrudeVert,
169
+ fragmentShader: pointExtrudeFrag,
170
+ triangulation: PointExtrudeTriangulation,
171
+ cull: {
172
+ enable: true,
173
+ face: getCullFace(this.mapService.version)
174
+ },
175
+ depth: {
176
+ enable: depth
177
+ }
178
+ });
179
+ case 4:
180
+ model = _context2.sent;
181
+ return _context2.abrupt("return", [model]);
182
+ case 6:
183
+ case "end":
184
+ return _context2.stop();
218
185
  }
219
186
  }, _callee2, this);
220
187
  }));
221
-
222
188
  function buildModels() {
223
189
  return _buildModels.apply(this, arguments);
224
190
  }
225
-
226
191
  return buildModels;
227
192
  }()
228
193
  }, {
229
194
  key: "clearModels",
230
195
  value: function clearModels() {
231
196
  var _this$dataTexture;
232
-
233
197
  (_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
234
198
  }
235
199
  }, {
@@ -249,26 +213,23 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
249
213
  size: 3,
250
214
  update: function update(feature) {
251
215
  var size = feature.size;
252
-
253
216
  if (size) {
254
217
  var buffersize = [];
255
-
256
218
  if (Array.isArray(size)) {
257
219
  buffersize = size.length === 2 ? [size[0], size[0], size[1]] : size;
258
220
  }
259
-
260
221
  if (!Array.isArray(size)) {
261
222
  buffersize = [size, size, size];
262
223
  }
263
-
264
224
  return buffersize;
265
225
  } else {
266
226
  return [2, 2, 2];
267
227
  }
268
228
  }
269
229
  }
270
- }); // point layer size;
230
+ });
271
231
 
232
+ // point layer size;
272
233
  this.styleAttributeService.registerStyleAttribute({
273
234
  name: 'normal',
274
235
  type: AttributeType.Attribute,
@@ -306,8 +267,6 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
306
267
  });
307
268
  }
308
269
  }]);
309
-
310
270
  return ExtrudeModel;
311
271
  }(BaseModel);
312
-
313
272
  export { ExtrudeModel as default };
@@ -5,61 +5,50 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
5
5
  import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
7
7
  import _regeneratorRuntime from "@babel/runtime/regenerator";
8
-
9
8
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
-
11
9
  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; } }
12
-
13
10
  import { AttributeType, gl } from '@antv/l7-core';
14
11
  import { PointFillTriangulation } from '@antv/l7-utils';
15
12
  import { isNumber } from 'lodash';
16
13
  import BaseModel from "../../core/BaseModel";
17
- import { SizeUnitType } from "../../core/interface"; // animate pointLayer shader - support animate
18
-
14
+ import { SizeUnitType } from "../../core/interface";
15
+ // animate pointLayer shader - support animate
19
16
  /* babel-plugin-inline-import '../shaders/animate/wave_frag.glsl' */
20
17
  var waveFillFrag = "\nuniform 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;\nuniform float u_time;\nuniform vec4 u_animate: [ 1., 2., 1.0, 0.2 ];\n\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\n\nvoid main() {\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\n lowp float antialiasblur = v_data.z;\n float r = v_radius / (v_radius);\n\n float outer_df;\n float inner_df;\n // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica'\n \n outer_df = sdCircle(v_data.xy, 1.0);\n inner_df = sdCircle(v_data.xy, r);\n\n\n float opacity_t = smoothstep(0.0, antialiasblur, outer_df);\n\n float color_t = smoothstep(\n antialiasblur,\n 0.0,\n inner_df\n );\n float PI = 3.14159;\n float N_RINGS = 3.0;\n float FREQ = 1.0;\n\n gl_FragColor = vec4(v_color.rgb, v_color.a * opacity);\n\n float d = length(v_data.xy);\n if(d > 0.5) {\n discard;\n }\n float intensity = clamp(cos(d * PI), 0.0, 1.0) * clamp(cos(2.0 * PI * (d * 2.0 * u_animate.z - u_animate.y * u_time)), 0.0, 1.0);\n \n // \u6839\u636E\u53E0\u52A0\u6A21\u5F0F\u9009\u62E9\u6548\u679C\n if(u_additive > 0.0) {\n gl_FragColor *= intensity;\n // \u4F18\u5316\u6C34\u6CE2\u70B9 blend additive \u6A21\u5F0F\u4E0B\u6709\u7684\u62FE\u53D6\u6548\u679C \n gl_FragColor = filterColorAlpha(gl_FragColor, gl_FragColor.a);\n } else {\n gl_FragColor = vec4(gl_FragColor.xyz, gl_FragColor.a * intensity);\n gl_FragColor = filterColor(gl_FragColor);\n }\n}\n"; // static pointLayer shader - not support animate
21
-
22
18
  /* babel-plugin-inline-import '../shaders/fill_frag.glsl' */
23
19
  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 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 // \u4F5C\u4E3A mask \u6A21\u677F\u65F6\u9700\u8981\u4E22\u5F03\u900F\u660E\u7684\u50CF\u7D20\n if(gl_FragColor.a < 0.01) {\n discard;\n } \n}\n";
24
-
25
20
  /* babel-plugin-inline-import '../shaders/fill_vert.glsl' */
26
21
  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;\nuniform int u_Size_Unit;\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;\nuniform float u_raisingHeight: 0.0;\nuniform float u_heightfixed: 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 * u_meter2coord \u5728\u7B49\u9762\u79EF\u5927\u5C0F\u7684\u65F6\u5019\u8BBE\u7F6E\u5355\u4F4D\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 vec2 textrueOffsets = vec2(0.0, 0.0);\n if(hasOffsets()) {\n vec2 valueXPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.r = pos2value(valueXPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n\n vec2 valueYPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.g = pos2value(valueYPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n } else {\n textrueOffsets = u_offsets;\n }\n\n // cal style mapping\n\n // unpack color(vec2)\n v_color = a_Color;\nif(u_Size_Unit == 1) {\n newSize = newSize * u_PixelsPerMeter.z;\n }\n\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 vec2 offset = (extrude.xy * (newSize + u_stroke_width) + textrueOffsets);\n vec3 aPosition = a_Position;\n\n offset = project_pixel(offset);\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 // vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0));\n vec4 project_pos = project_position(vec4(aPosition.xy, 0.0, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0));\n\n float raisingHeight = u_raisingHeight;\n\n if(u_heightfixed < 1.0) { // false\n raisingHeight = project_pixel(u_raisingHeight);\n } else {\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);\n raisingHeight = u_raisingHeight * mapboxZoomScale;\n }\n }\n \n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * vec4(project_pos.xy + offset, raisingHeight, 1.0);\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, raisingHeight, 1.0));\n }\n \n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n\n setPickingColor(a_PickingColor);\n}\n";
27
-
28
22
  var FillModel = /*#__PURE__*/function (_BaseModel) {
29
23
  _inherits(FillModel, _BaseModel);
30
-
31
24
  var _super = _createSuper(FillModel);
32
-
33
25
  function FillModel() {
34
26
  _classCallCheck(this, FillModel);
35
-
36
27
  return _super.apply(this, arguments);
37
28
  }
38
-
39
29
  _createClass(FillModel, [{
40
30
  key: "getUninforms",
41
31
  value: function getUninforms() {
42
32
  var _ref = this.layer.getLayerConfig(),
43
- _ref$opacity = _ref.opacity,
44
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
45
- _ref$strokeOpacity = _ref.strokeOpacity,
46
- strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
47
- _ref$strokeWidth = _ref.strokeWidth,
48
- strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
49
- _ref$stroke = _ref.stroke,
50
- stroke = _ref$stroke === void 0 ? 'rgba(0,0,0,0)' : _ref$stroke,
51
- _ref$offsets = _ref.offsets,
52
- offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
53
- blend = _ref.blend,
54
- _ref$blur = _ref.blur,
55
- blur = _ref$blur === void 0 ? 0 : _ref$blur,
56
- _ref$raisingHeight = _ref.raisingHeight,
57
- raisingHeight = _ref$raisingHeight === void 0 ? 0 : _ref$raisingHeight,
58
- _ref$heightfixed = _ref.heightfixed,
59
- heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
60
- _ref$unit = _ref.unit,
61
- unit = _ref$unit === void 0 ? 'pixel' : _ref$unit;
62
-
33
+ _ref$opacity = _ref.opacity,
34
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
35
+ _ref$strokeOpacity = _ref.strokeOpacity,
36
+ strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
37
+ _ref$strokeWidth = _ref.strokeWidth,
38
+ strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
39
+ _ref$stroke = _ref.stroke,
40
+ stroke = _ref$stroke === void 0 ? 'rgba(0,0,0,0)' : _ref$stroke,
41
+ _ref$offsets = _ref.offsets,
42
+ offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
43
+ blend = _ref.blend,
44
+ _ref$blur = _ref.blur,
45
+ blur = _ref$blur === void 0 ? 0 : _ref$blur,
46
+ _ref$raisingHeight = _ref.raisingHeight,
47
+ raisingHeight = _ref$raisingHeight === void 0 ? 0 : _ref$raisingHeight,
48
+ _ref$heightfixed = _ref.heightfixed,
49
+ heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
50
+ _ref$unit = _ref.unit,
51
+ unit = _ref$unit === void 0 ? 'pixel' : _ref$unit;
63
52
  if (this.dataTextureTest && this.dataTextureNeedUpdate({
64
53
  opacity: opacity,
65
54
  strokeOpacity: strokeOpacity,
@@ -76,14 +65,11 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
76
65
  offsets: offsets
77
66
  });
78
67
  var encodeData = this.layer.getEncodedData();
79
-
80
68
  var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
81
- data = _this$calDataFrame.data,
82
- width = _this$calDataFrame.width,
83
- height = _this$calDataFrame.height;
84
-
69
+ data = _this$calDataFrame.data,
70
+ width = _this$calDataFrame.width,
71
+ height = _this$calDataFrame.height;
85
72
  this.rowCount = height; // 当前数据纹理有多少行
86
-
87
73
  this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
88
74
  flipY: true,
89
75
  data: data,
@@ -100,7 +86,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
100
86
  height: 1
101
87
  });
102
88
  }
103
-
104
89
  return {
105
90
  u_raisingHeight: Number(raisingHeight),
106
91
  u_heightfixed: Number(heightfixed),
@@ -121,11 +106,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
121
106
  key: "getAnimateUniforms",
122
107
  value: function getAnimateUniforms() {
123
108
  var _ref2 = this.layer.getLayerConfig(),
124
- _ref2$animateOption = _ref2.animateOption,
125
- animateOption = _ref2$animateOption === void 0 ? {
126
- enable: false
127
- } : _ref2$animateOption;
128
-
109
+ _ref2$animateOption = _ref2.animateOption,
110
+ animateOption = _ref2$animateOption === void 0 ? {
111
+ enable: false
112
+ } : _ref2$animateOption;
129
113
  return {
130
114
  u_animate: this.animateOption2Array(animateOption),
131
115
  u_time: this.layer.getLayerAnimateTime()
@@ -141,23 +125,18 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
141
125
  value: function () {
142
126
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
143
127
  return _regeneratorRuntime.wrap(function _callee$(_context) {
144
- while (1) {
145
- switch (_context.prev = _context.next) {
146
- case 0:
147
- return _context.abrupt("return", this.buildModels());
148
-
149
- case 1:
150
- case "end":
151
- return _context.stop();
152
- }
128
+ while (1) switch (_context.prev = _context.next) {
129
+ case 0:
130
+ return _context.abrupt("return", this.buildModels());
131
+ case 1:
132
+ case "end":
133
+ return _context.stop();
153
134
  }
154
135
  }, _callee, this);
155
136
  }));
156
-
157
137
  function initModels() {
158
138
  return _initModels.apply(this, arguments);
159
139
  }
160
-
161
140
  return initModels;
162
141
  }()
163
142
  }, {
@@ -165,56 +144,48 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
165
144
  value: function () {
166
145
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
167
146
  var _ref3, _ref3$animateOption, animateOption, _ref3$workerEnabled, workerEnabled, enablePicking, shape2d, _this$getShaders, frag, vert, type, model;
168
-
169
147
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
170
- while (1) {
171
- switch (_context2.prev = _context2.next) {
172
- case 0:
173
- _ref3 = this.layer.getLayerConfig(), _ref3$animateOption = _ref3.animateOption, animateOption = _ref3$animateOption === void 0 ? {
148
+ while (1) switch (_context2.prev = _context2.next) {
149
+ case 0:
150
+ _ref3 = this.layer.getLayerConfig(), _ref3$animateOption = _ref3.animateOption, animateOption = _ref3$animateOption === void 0 ? {
151
+ enable: false
152
+ } : _ref3$animateOption, _ref3$workerEnabled = _ref3.workerEnabled, workerEnabled = _ref3$workerEnabled === void 0 ? false : _ref3$workerEnabled, enablePicking = _ref3.enablePicking, shape2d = _ref3.shape2d;
153
+ _this$getShaders = this.getShaders(animateOption), frag = _this$getShaders.frag, vert = _this$getShaders.vert, type = _this$getShaders.type;
154
+ this.layer.triangulation = PointFillTriangulation;
155
+ _context2.next = 5;
156
+ return this.layer.buildLayerModel({
157
+ moduleName: type,
158
+ vertexShader: vert,
159
+ fragmentShader: frag,
160
+ triangulation: PointFillTriangulation,
161
+ depth: {
174
162
  enable: false
175
- } : _ref3$animateOption, _ref3$workerEnabled = _ref3.workerEnabled, workerEnabled = _ref3$workerEnabled === void 0 ? false : _ref3$workerEnabled, enablePicking = _ref3.enablePicking, shape2d = _ref3.shape2d;
176
- _this$getShaders = this.getShaders(animateOption), frag = _this$getShaders.frag, vert = _this$getShaders.vert, type = _this$getShaders.type;
177
- this.layer.triangulation = PointFillTriangulation;
178
- _context2.next = 5;
179
- return this.layer.buildLayerModel({
180
- moduleName: type,
181
- vertexShader: vert,
182
- fragmentShader: frag,
183
- triangulation: PointFillTriangulation,
184
- depth: {
185
- enable: false
186
- },
187
- workerEnabled: workerEnabled,
188
- workerOptions: {
189
- modelType: type,
190
- enablePicking: enablePicking,
191
- shape2d: shape2d
192
- }
193
- });
194
-
195
- case 5:
196
- model = _context2.sent;
197
- return _context2.abrupt("return", [model]);
198
-
199
- case 7:
200
- case "end":
201
- return _context2.stop();
202
- }
163
+ },
164
+ workerEnabled: workerEnabled,
165
+ workerOptions: {
166
+ modelType: type,
167
+ enablePicking: enablePicking,
168
+ shape2d: shape2d
169
+ }
170
+ });
171
+ case 5:
172
+ model = _context2.sent;
173
+ return _context2.abrupt("return", [model]);
174
+ case 7:
175
+ case "end":
176
+ return _context2.stop();
203
177
  }
204
178
  }, _callee2, this);
205
179
  }));
206
-
207
180
  function buildModels() {
208
181
  return _buildModels.apply(this, arguments);
209
182
  }
210
-
211
183
  return buildModels;
212
184
  }()
213
185
  /**
214
186
  * 根据 animateOption 的值返回对应的 shader 代码
215
187
  * @returns
216
188
  */
217
-
218
189
  }, {
219
190
  key: "getShaders",
220
191
  value: function getShaders(animateOption) {
@@ -226,7 +197,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
226
197
  vert: pointFillVert,
227
198
  type: 'pointWave'
228
199
  };
229
-
230
200
  default:
231
201
  return {
232
202
  frag: waveFillFrag,
@@ -246,10 +216,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
246
216
  key: "clearModels",
247
217
  value: function clearModels() {
248
218
  var _this$dataTexture;
249
-
250
219
  (_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
251
- } // overwrite baseModel func
220
+ }
252
221
 
222
+ // overwrite baseModel func
253
223
  }, {
254
224
  key: "animateOption2Array",
255
225
  value: function animateOption2Array(option) {
@@ -277,8 +247,9 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
277
247
  return [extrude[extrudeIndex], extrude[extrudeIndex + 1], extrude[extrudeIndex + 2]];
278
248
  }
279
249
  }
280
- }); // point layer size;
250
+ });
281
251
 
252
+ // point layer size;
282
253
  this.styleAttributeService.registerStyleAttribute({
283
254
  name: 'size',
284
255
  type: AttributeType.Attribute,
@@ -293,12 +264,13 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
293
264
  size: 1,
294
265
  update: function update(feature) {
295
266
  var _feature$size = feature.size,
296
- size = _feature$size === void 0 ? 5 : _feature$size;
267
+ size = _feature$size === void 0 ? 5 : _feature$size;
297
268
  return Array.isArray(size) ? [size[0]] : [size];
298
269
  }
299
270
  }
300
- }); // point layer size;
271
+ });
301
272
 
273
+ // point layer size;
302
274
  this.styleAttributeService.registerStyleAttribute({
303
275
  name: 'shape',
304
276
  type: AttributeType.Attribute,
@@ -313,7 +285,7 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
313
285
  size: 1,
314
286
  update: function update(feature) {
315
287
  var _feature$shape = feature.shape,
316
- shape = _feature$shape === void 0 ? 2 : _feature$shape;
288
+ shape = _feature$shape === void 0 ? 2 : _feature$shape;
317
289
  var shapeIndex = shape2d.indexOf(shape);
318
290
  return [shapeIndex];
319
291
  }
@@ -321,8 +293,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
321
293
  });
322
294
  }
323
295
  }]);
324
-
325
296
  return FillModel;
326
297
  }(BaseModel);
327
-
328
298
  export { FillModel as default };