@antv/l7-layers 2.15.1 → 2.15.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 (243) 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.d.ts +2 -0
  69. package/es/point/models/text.js +214 -295
  70. package/es/point/shape/extrude.js +4 -13
  71. package/es/polygon/index.js +11 -40
  72. package/es/polygon/models/extrude.js +48 -92
  73. package/es/polygon/models/fill.js +54 -88
  74. package/es/polygon/models/index.js +3 -2
  75. package/es/polygon/models/ocean.js +42 -76
  76. package/es/polygon/models/water.js +37 -71
  77. package/es/raster/buffers/triangulation.js +2 -4
  78. package/es/raster/index.js +9 -32
  79. package/es/raster/models/raster.js +80 -116
  80. package/es/raster/models/rasterRgb.js +84 -127
  81. package/es/raster/models/rasterTerrainRgb.js +56 -84
  82. package/es/tile/interaction/getRasterData.js +14 -20
  83. package/es/tile/interaction/utils.js +7 -9
  84. package/es/tile/manager/base.js +63 -96
  85. package/es/tile/service/TileLayerService.js +30 -52
  86. package/es/tile/service/TilePickService.js +26 -40
  87. package/es/tile/service/TileSourceService.js +3 -7
  88. package/es/tile/tileFactory/DebugTile.js +28 -45
  89. package/es/tile/tileFactory/ImageTile.js +20 -38
  90. package/es/tile/tileFactory/MaskTile.js +22 -43
  91. package/es/tile/tileFactory/RasterRGBTile.js +22 -42
  92. package/es/tile/tileFactory/RasterTerrainRGBTile.js +20 -38
  93. package/es/tile/tileFactory/RasterTile.js +30 -53
  94. package/es/tile/tileFactory/Tile.js +63 -97
  95. package/es/tile/tileFactory/VectorTile.js +41 -68
  96. package/es/tile/tileFactory/index.js +0 -11
  97. package/es/tile/tileFactory/layers/TileDebugLayer.js +6 -27
  98. package/es/tile/tileFactory/util.js +0 -3
  99. package/es/tile/tileLayer/BaseLayer.js +105 -146
  100. package/es/tile/utils.js +1 -1
  101. package/es/utils/blend.js +0 -2
  102. package/es/utils/collision-index.js +9 -16
  103. package/es/utils/dataMappingStyle.js +8 -18
  104. package/es/utils/extrude_polyline.js +101 -149
  105. package/es/utils/grid-index.js +2 -27
  106. package/es/utils/identityScale.js +0 -8
  107. package/es/utils/layerData.js +30 -44
  108. package/es/utils/multiPassRender.js +11 -13
  109. package/es/utils/polylineNormal.js +31 -37
  110. package/es/utils/simpleLine.js +2 -16
  111. package/es/utils/stencil.js +2 -3
  112. package/es/utils/symbol-layout.js +27 -53
  113. package/es/wind/index.js +9 -29
  114. package/es/wind/models/utils.js +26 -51
  115. package/es/wind/models/wind.js +101 -147
  116. package/es/wind/models/windRender.js +53 -66
  117. package/lib/Geometry/index.js +9 -38
  118. package/lib/Geometry/models/billboard.js +51 -97
  119. package/lib/Geometry/models/index.js +0 -5
  120. package/lib/Geometry/models/plane.js +79 -151
  121. package/lib/Geometry/models/sprite.js +60 -127
  122. package/lib/canvas/index.js +10 -40
  123. package/lib/canvas/models/canvas.js +41 -101
  124. package/lib/canvas/models/index.js +0 -3
  125. package/lib/citybuliding/building.js +8 -35
  126. package/lib/citybuliding/models/build.js +57 -92
  127. package/lib/core/BaseLayer.js +320 -478
  128. package/lib/core/BaseModel.js +97 -139
  129. package/lib/core/LayerPickService.js +21 -37
  130. package/lib/core/TextureService.js +0 -16
  131. package/lib/core/interface.js +21 -31
  132. package/lib/core/schema.js +0 -1
  133. package/lib/core/shape/Path.js +14 -31
  134. package/lib/core/shape/extrude.js +10 -54
  135. package/lib/core/triangulation.js +53 -153
  136. package/lib/earth/index.js +9 -43
  137. package/lib/earth/models/atmosphere.js +30 -63
  138. package/lib/earth/models/base.js +47 -90
  139. package/lib/earth/models/bloomsphere.js +30 -63
  140. package/lib/earth/utils.js +7 -31
  141. package/lib/heatmap/index.js +10 -48
  142. package/lib/heatmap/models/grid.js +28 -60
  143. package/lib/heatmap/models/grid3d.js +28 -60
  144. package/lib/heatmap/models/heatmap.js +91 -162
  145. package/lib/heatmap/models/hexagon.js +28 -60
  146. package/lib/heatmap/models/index.js +0 -6
  147. package/lib/heatmap/triangulation.js +0 -5
  148. package/lib/image/index.js +9 -36
  149. package/lib/image/models/image.js +66 -109
  150. package/lib/image/models/index.js +0 -3
  151. package/lib/index.js +7 -61
  152. package/lib/line/index.js +9 -40
  153. package/lib/line/models/arc.js +64 -128
  154. package/lib/line/models/arc_3d.js +58 -119
  155. package/lib/line/models/earthArc_3d.js +61 -122
  156. package/lib/line/models/great_circle.js +56 -111
  157. package/lib/line/models/half.js +46 -87
  158. package/lib/line/models/index.js +0 -11
  159. package/lib/line/models/line.js +92 -156
  160. package/lib/line/models/linearline.js +45 -92
  161. package/lib/line/models/simpleLine.js +41 -84
  162. package/lib/line/models/wall.js +52 -103
  163. package/lib/mask/index.js +9 -36
  164. package/lib/mask/models/fill.js +29 -63
  165. package/lib/mask/models/index.js +0 -3
  166. package/lib/plugins/DataMappingPlugin.js +80 -128
  167. package/lib/plugins/DataSourcePlugin.js +45 -76
  168. package/lib/plugins/FeatureScalePlugin.js +67 -138
  169. package/lib/plugins/LayerAnimateStylePlugin.js +0 -10
  170. package/lib/plugins/LayerMaskPlugin.js +4 -17
  171. package/lib/plugins/LayerModelPlugin.js +68 -113
  172. package/lib/plugins/LayerStylePlugin.js +4 -14
  173. package/lib/plugins/LightingPlugin.js +12 -25
  174. package/lib/plugins/MultiPassRendererPlugin.js +11 -22
  175. package/lib/plugins/PixelPickingPlugin.js +12 -27
  176. package/lib/plugins/RegisterStyleAttributePlugin.js +5 -19
  177. package/lib/plugins/ShaderUniformPlugin.js +13 -34
  178. package/lib/plugins/UpdateModelPlugin.js +1 -10
  179. package/lib/plugins/UpdateStyleAttributePlugin.js +5 -16
  180. package/lib/point/index.js +26 -83
  181. package/lib/point/models/earthExtrude.js +61 -113
  182. package/lib/point/models/earthFill.js +57 -117
  183. package/lib/point/models/extrude.js +60 -111
  184. package/lib/point/models/fill.js +68 -109
  185. package/lib/point/models/fillmage.js +61 -115
  186. package/lib/point/models/image.js +48 -98
  187. package/lib/point/models/index.js +1 -12
  188. package/lib/point/models/normal.js +30 -64
  189. package/lib/point/models/radar.js +40 -74
  190. package/lib/point/models/simplePoint.js +41 -79
  191. package/lib/point/models/text.js +214 -303
  192. package/lib/point/shape/extrude.js +4 -20
  193. package/lib/polygon/index.js +11 -48
  194. package/lib/polygon/models/extrude.js +48 -103
  195. package/lib/polygon/models/fill.js +54 -98
  196. package/lib/polygon/models/index.js +2 -14
  197. package/lib/polygon/models/ocean.js +42 -88
  198. package/lib/polygon/models/water.js +37 -82
  199. package/lib/raster/buffers/triangulation.js +3 -7
  200. package/lib/raster/index.js +9 -40
  201. package/lib/raster/models/index.js +0 -5
  202. package/lib/raster/models/raster.js +80 -125
  203. package/lib/raster/models/rasterRgb.js +84 -139
  204. package/lib/raster/models/rasterTerrainRgb.js +56 -93
  205. package/lib/tile/interaction/getRasterData.js +14 -25
  206. package/lib/tile/interaction/utils.js +7 -19
  207. package/lib/tile/manager/base.js +63 -104
  208. package/lib/tile/service/TileLayerService.js +30 -57
  209. package/lib/tile/service/TilePickService.js +26 -48
  210. package/lib/tile/service/TileSourceService.js +2 -16
  211. package/lib/tile/style/utils.js +0 -3
  212. package/lib/tile/tileFactory/DebugTile.js +28 -53
  213. package/lib/tile/tileFactory/ImageTile.js +20 -46
  214. package/lib/tile/tileFactory/MaskTile.js +22 -51
  215. package/lib/tile/tileFactory/RasterRGBTile.js +22 -50
  216. package/lib/tile/tileFactory/RasterTerrainRGBTile.js +20 -46
  217. package/lib/tile/tileFactory/RasterTile.js +30 -63
  218. package/lib/tile/tileFactory/Tile.js +63 -102
  219. package/lib/tile/tileFactory/VectorTile.js +41 -76
  220. package/lib/tile/tileFactory/index.js +0 -25
  221. package/lib/tile/tileFactory/layers/TileDebugLayer.js +6 -32
  222. package/lib/tile/tileFactory/util.js +0 -9
  223. package/lib/tile/tileLayer/BaseLayer.js +105 -153
  224. package/lib/tile/utils.js +1 -5
  225. package/lib/utils/blend.js +0 -5
  226. package/lib/utils/collision-index.js +9 -25
  227. package/lib/utils/dataMappingStyle.js +8 -19
  228. package/lib/utils/extrude_polyline.js +101 -181
  229. package/lib/utils/grid-index.js +2 -28
  230. package/lib/utils/identityScale.js +0 -9
  231. package/lib/utils/layerData.js +30 -49
  232. package/lib/utils/multiPassRender.js +11 -16
  233. package/lib/utils/polylineNormal.js +31 -66
  234. package/lib/utils/simpleLine.js +2 -21
  235. package/lib/utils/stencil.js +0 -4
  236. package/lib/utils/symbol-layout.js +27 -55
  237. package/lib/wind/index.js +9 -37
  238. package/lib/wind/models/index.js +0 -3
  239. package/lib/wind/models/utils.js +26 -62
  240. package/lib/wind/models/wind.js +101 -157
  241. package/lib/wind/models/windRender.js +53 -71
  242. package/lib/wind/models/windShader.js +0 -1
  243. package/package.json +7 -7
@@ -7,73 +7,57 @@ 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
17
  import { lglt2xyz } from "../../earth/utils";
21
-
22
18
  /* babel-plugin-inline-import '../shaders/earth/extrude_frag.glsl' */
23
19
  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";
24
-
25
20
  /* babel-plugin-inline-import '../shaders/earth/extrude_vert.glsl' */
26
21
  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_globel;\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 \n // \u5728\u5730\u7403\u6A21\u5F0F\u4E0B\uFF0C\u5C06\u539F\u672C\u5782\u76F4\u4E8E xy \u5E73\u9762\u7684\u5706\u67F1\u8C03\u6574\u59FF\u6001\u5230\u9002\u5E94\u5706\u7684\u89D2\u5EA6\n //\u65CB\u8F6C\u77E9\u9635mx\uFF0C\u521B\u5EFA\u7ED5x\u8F74\u65CB\u8F6C\u77E9\u9635\n float r = sqrt(a_Pos.z*a_Pos.z + a_Pos.x*a_Pos.x);\n float xRadian = getXRadian(a_Pos.y, r);\n float xcos = cos(xRadian);//\u6C42\u89E3\u65CB\u8F6C\u89D2\u5EA6\u4F59\u5F26\u503C\n float xsin = sin(xRadian);//\u6C42\u89E3\u65CB\u8F6C\u89D2\u5EA6\u6B63\u5F26\u503C\n mat4 mx = mat4(\n 1,0,0,0, \n 0,xcos,-xsin,0, \n 0,xsin,xcos,0, \n 0,0,0,1);\n\n //\u65CB\u8F6C\u77E9\u9635my\uFF0C\u521B\u5EFA\u7ED5y\u8F74\u65CB\u8F6C\u77E9\u9635\n float yRadian = getYRadian(a_Pos.x, a_Pos.z);\n float ycos = cos(yRadian);//\u6C42\u89E3\u65CB\u8F6C\u89D2\u5EA6\u4F59\u5F26\u503C\n float ysin = sin(yRadian);//\u6C42\u89E3\u65CB\u8F6C\u89D2\u5EA6\u6B63\u5F26\u503C\n mat4 my = mat4(\n ycos,0,-ysin,0, \n 0,1,0,0, \n ysin,0,ycos,0, \n 0,0,0,1);\n\n gl_Position = u_ViewProjectionMatrix * vec4(( my * mx * vec4(a_Position * a_Size, 1.0)).xyz + a_Pos, 1.0);\n \n\n setPickingColor(a_PickingColor);\n}\n";
27
-
28
22
  var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
29
23
  _inherits(ExtrudeModel, _BaseModel);
30
-
31
24
  var _super = _createSuper(ExtrudeModel);
32
-
33
25
  function ExtrudeModel() {
34
26
  var _this;
35
-
36
27
  _classCallCheck(this, ExtrudeModel);
37
-
38
28
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
39
29
  args[_key] = arguments[_key];
40
30
  }
41
-
42
31
  _this = _super.call.apply(_super, [this].concat(args));
43
-
44
32
  _defineProperty(_assertThisInitialized(_this), "raiseCount", 0);
45
-
46
33
  _defineProperty(_assertThisInitialized(_this), "raiseRepeat", 0);
47
-
48
34
  return _this;
49
35
  }
50
-
51
36
  _createClass(ExtrudeModel, [{
52
37
  key: "getUninforms",
53
38
  value: function getUninforms() {
54
39
  var _ref = this.layer.getLayerConfig(),
55
- _ref$animateOption = _ref.animateOption,
56
- animateOption = _ref$animateOption === void 0 ? {
57
- enable: false,
58
- speed: 0.01,
59
- repeat: false
60
- } : _ref$animateOption,
61
- _ref$opacity = _ref.opacity,
62
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
63
- sourceColor = _ref.sourceColor,
64
- targetColor = _ref.targetColor,
65
- _ref$pickLight = _ref.pickLight,
66
- pickLight = _ref$pickLight === void 0 ? false : _ref$pickLight,
67
- _ref$heightfixed = _ref.heightfixed,
68
- heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
69
- _ref$opacityLinear = _ref.opacityLinear,
70
- opacityLinear = _ref$opacityLinear === void 0 ? {
71
- enable: false,
72
- dir: 'up'
73
- } : _ref$opacityLinear,
74
- _ref$lightEnable = _ref.lightEnable,
75
- lightEnable = _ref$lightEnable === void 0 ? true : _ref$lightEnable;
76
-
40
+ _ref$animateOption = _ref.animateOption,
41
+ animateOption = _ref$animateOption === void 0 ? {
42
+ enable: false,
43
+ speed: 0.01,
44
+ repeat: false
45
+ } : _ref$animateOption,
46
+ _ref$opacity = _ref.opacity,
47
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
48
+ sourceColor = _ref.sourceColor,
49
+ targetColor = _ref.targetColor,
50
+ _ref$pickLight = _ref.pickLight,
51
+ pickLight = _ref$pickLight === void 0 ? false : _ref$pickLight,
52
+ _ref$heightfixed = _ref.heightfixed,
53
+ heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
54
+ _ref$opacityLinear = _ref.opacityLinear,
55
+ opacityLinear = _ref$opacityLinear === void 0 ? {
56
+ enable: false,
57
+ dir: 'up'
58
+ } : _ref$opacityLinear,
59
+ _ref$lightEnable = _ref.lightEnable,
60
+ lightEnable = _ref$lightEnable === void 0 ? true : _ref$lightEnable;
77
61
  if (this.dataTextureTest && this.dataTextureNeedUpdate({
78
62
  opacity: opacity
79
63
  })) {
@@ -81,12 +65,10 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
81
65
  opacity: opacity
82
66
  });
83
67
  var encodeData = this.layer.getEncodedData();
84
-
85
68
  var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
86
- data = _this$calDataFrame.data,
87
- width = _this$calDataFrame.width,
88
- height = _this$calDataFrame.height;
89
-
69
+ data = _this$calDataFrame.data,
70
+ width = _this$calDataFrame.width,
71
+ height = _this$calDataFrame.height;
90
72
  this.rowCount = height; // 当前数据纹理有多少行
91
73
 
92
74
  this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
@@ -104,26 +86,22 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
104
86
  width: 1,
105
87
  height: 1
106
88
  });
107
- } // 转化渐变色
108
-
89
+ }
109
90
 
91
+ // 转化渐变色
110
92
  var useLinearColor = 0; // 默认不生效
111
-
112
93
  var sourceColorArr = [0, 0, 0, 0];
113
94
  var targetColorArr = [0, 0, 0, 0];
114
-
115
95
  if (sourceColor && targetColor) {
116
96
  sourceColorArr = rgb2arr(sourceColor);
117
97
  targetColorArr = rgb2arr(targetColor);
118
98
  useLinearColor = 1;
119
99
  }
120
-
121
100
  if (this.raiseCount < 1 && this.raiseRepeat > 0) {
122
101
  if (animateOption.enable) {
123
102
  var _animateOption$speed = animateOption.speed,
124
- speed = _animateOption$speed === void 0 ? 0.01 : _animateOption$speed;
103
+ speed = _animateOption$speed === void 0 ? 0.01 : _animateOption$speed;
125
104
  this.raiseCount += speed;
126
-
127
105
  if (this.raiseCount >= 1) {
128
106
  if (this.raiseRepeat > 1) {
129
107
  this.raiseCount = 0;
@@ -134,7 +112,6 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
134
112
  }
135
113
  }
136
114
  }
137
-
138
115
  return {
139
116
  // 圆柱体的拾取高亮是否要计算光照
140
117
  u_pickLight: Number(pickLight),
@@ -161,23 +138,18 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
161
138
  value: function () {
162
139
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
163
140
  return _regeneratorRuntime.wrap(function _callee$(_context) {
164
- while (1) {
165
- switch (_context.prev = _context.next) {
166
- case 0:
167
- return _context.abrupt("return", this.buildModels());
168
-
169
- case 1:
170
- case "end":
171
- return _context.stop();
172
- }
141
+ while (1) switch (_context.prev = _context.next) {
142
+ case 0:
143
+ return _context.abrupt("return", this.buildModels());
144
+ case 1:
145
+ case "end":
146
+ return _context.stop();
173
147
  }
174
148
  }, _callee, this);
175
149
  }));
176
-
177
150
  function initModels() {
178
151
  return _initModels.apply(this, arguments);
179
152
  }
180
-
181
153
  return initModels;
182
154
  }()
183
155
  }, {
@@ -185,53 +157,45 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
185
157
  value: function () {
186
158
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
187
159
  var _ref2, _ref2$animateOption$r, repeat, model;
188
-
189
160
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
190
- while (1) {
191
- switch (_context2.prev = _context2.next) {
192
- case 0:
193
- // GAODE1.x GAODE2.x MAPBOX
194
- _ref2 = this.layer.getLayerConfig(), _ref2$animateOption$r = _ref2.animateOption.repeat, repeat = _ref2$animateOption$r === void 0 ? 1 : _ref2$animateOption$r;
195
- this.raiseRepeat = repeat;
196
- _context2.next = 4;
197
- return this.layer.buildLayerModel({
198
- moduleName: 'pointEarthExtrude',
199
- vertexShader: pointExtrudeVert,
200
- fragmentShader: pointExtrudeFrag,
201
- triangulation: PointExtrudeTriangulation,
202
- depth: {
203
- enable: true
204
- },
205
- cull: {
206
- enable: true,
207
- face: getCullFace(this.mapService.version)
208
- },
209
- blend: this.getBlend()
210
- });
211
-
212
- case 4:
213
- model = _context2.sent;
214
- return _context2.abrupt("return", [model]);
215
-
216
- case 6:
217
- case "end":
218
- return _context2.stop();
219
- }
161
+ while (1) switch (_context2.prev = _context2.next) {
162
+ case 0:
163
+ // GAODE1.x GAODE2.x MAPBOX
164
+ _ref2 = this.layer.getLayerConfig(), _ref2$animateOption$r = _ref2.animateOption.repeat, repeat = _ref2$animateOption$r === void 0 ? 1 : _ref2$animateOption$r;
165
+ this.raiseRepeat = repeat;
166
+ _context2.next = 4;
167
+ return this.layer.buildLayerModel({
168
+ moduleName: 'pointEarthExtrude',
169
+ vertexShader: pointExtrudeVert,
170
+ fragmentShader: pointExtrudeFrag,
171
+ triangulation: PointExtrudeTriangulation,
172
+ depth: {
173
+ enable: true
174
+ },
175
+ cull: {
176
+ enable: true,
177
+ face: getCullFace(this.mapService.version)
178
+ },
179
+ blend: this.getBlend()
180
+ });
181
+ case 4:
182
+ model = _context2.sent;
183
+ return _context2.abrupt("return", [model]);
184
+ case 6:
185
+ case "end":
186
+ return _context2.stop();
220
187
  }
221
188
  }, _callee2, this);
222
189
  }));
223
-
224
190
  function buildModels() {
225
191
  return _buildModels.apply(this, arguments);
226
192
  }
227
-
228
193
  return buildModels;
229
194
  }()
230
195
  }, {
231
196
  key: "clearModels",
232
197
  value: function clearModels() {
233
198
  var _this$dataTexture;
234
-
235
199
  (_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
236
200
  }
237
201
  }, {
@@ -250,26 +214,23 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
250
214
  size: 3,
251
215
  update: function update(feature) {
252
216
  var size = feature.size;
253
-
254
217
  if (size) {
255
218
  var buffersize = [];
256
-
257
219
  if (Array.isArray(size)) {
258
220
  buffersize = size.length === 2 ? [size[0], size[0], size[1]] : size;
259
221
  }
260
-
261
222
  if (!Array.isArray(size)) {
262
223
  buffersize = [size, size, size];
263
224
  }
264
-
265
225
  return buffersize;
266
226
  } else {
267
227
  return [2, 2, 2];
268
228
  }
269
229
  }
270
230
  }
271
- }); // point layer size;
231
+ });
272
232
 
233
+ // point layer size;
273
234
  this.styleAttributeService.registerStyleAttribute({
274
235
  name: 'normal',
275
236
  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 };
@@ -7,52 +7,41 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
7
7
  import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
8
8
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
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 { isNumber } from 'lodash';
17
14
  import BaseModel from "../../core/BaseModel";
18
15
  import { GlobelPointFillTriangulation } from "../../core/triangulation";
19
-
20
16
  /* babel-plugin-inline-import '../shaders/earth/fill_frag.glsl' */
21
17
  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";
22
-
23
18
  /* babel-plugin-inline-import '../shaders/earth/fill_vert.glsl' */
24
19
  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";
25
20
  import { mat4, vec3 } from 'gl-matrix';
26
-
27
21
  var FillModel = /*#__PURE__*/function (_BaseModel) {
28
22
  _inherits(FillModel, _BaseModel);
29
-
30
23
  var _super = _createSuper(FillModel);
31
-
32
24
  function FillModel() {
33
25
  _classCallCheck(this, FillModel);
34
-
35
26
  return _super.apply(this, arguments);
36
27
  }
37
-
38
28
  _createClass(FillModel, [{
39
29
  key: "getUninforms",
40
30
  value: function getUninforms() {
41
31
  var _ref = this.layer.getLayerConfig(),
42
- _ref$opacity = _ref.opacity,
43
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
44
- _ref$strokeOpacity = _ref.strokeOpacity,
45
- strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
46
- _ref$strokeWidth = _ref.strokeWidth,
47
- strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
48
- _ref$stroke = _ref.stroke,
49
- stroke = _ref$stroke === void 0 ? 'rgba(0,0,0,0)' : _ref$stroke,
50
- _ref$offsets = _ref.offsets,
51
- offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
52
- blend = _ref.blend,
53
- _ref$blur = _ref.blur,
54
- blur = _ref$blur === void 0 ? 0 : _ref$blur;
55
-
32
+ _ref$opacity = _ref.opacity,
33
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
34
+ _ref$strokeOpacity = _ref.strokeOpacity,
35
+ strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
36
+ _ref$strokeWidth = _ref.strokeWidth,
37
+ strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
38
+ _ref$stroke = _ref.stroke,
39
+ stroke = _ref$stroke === void 0 ? 'rgba(0,0,0,0)' : _ref$stroke,
40
+ _ref$offsets = _ref.offsets,
41
+ offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
42
+ blend = _ref.blend,
43
+ _ref$blur = _ref.blur,
44
+ blur = _ref$blur === void 0 ? 0 : _ref$blur;
56
45
  if (this.dataTextureTest && this.dataTextureNeedUpdate({
57
46
  opacity: opacity,
58
47
  strokeOpacity: strokeOpacity,
@@ -69,12 +58,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
69
58
  offsets: offsets
70
59
  });
71
60
  var encodeData = this.layer.getEncodedData();
72
-
73
61
  var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
74
- data = _this$calDataFrame.data,
75
- width = _this$calDataFrame.width,
76
- height = _this$calDataFrame.height;
77
-
62
+ data = _this$calDataFrame.data,
63
+ width = _this$calDataFrame.width,
64
+ height = _this$calDataFrame.height;
78
65
  this.rowCount = height; // 当前数据纹理有多少行
79
66
 
80
67
  this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
@@ -93,7 +80,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
93
80
  height: 1
94
81
  });
95
82
  }
96
-
97
83
  return {
98
84
  u_blur: blur,
99
85
  u_additive: blend === 'additive' ? 1.0 : 0.0,
@@ -111,11 +97,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
111
97
  key: "getAnimateUniforms",
112
98
  value: function getAnimateUniforms() {
113
99
  var _ref2 = this.layer.getLayerConfig(),
114
- _ref2$animateOption = _ref2.animateOption,
115
- animateOption = _ref2$animateOption === void 0 ? {
116
- enable: false
117
- } : _ref2$animateOption;
118
-
100
+ _ref2$animateOption = _ref2.animateOption,
101
+ animateOption = _ref2$animateOption === void 0 ? {
102
+ enable: false
103
+ } : _ref2$animateOption;
119
104
  return {
120
105
  u_animate: this.animateOption2Array(animateOption),
121
106
  u_time: this.layer.getLayerAnimateTime()
@@ -126,23 +111,18 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
126
111
  value: function () {
127
112
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
128
113
  return _regeneratorRuntime.wrap(function _callee$(_context) {
129
- while (1) {
130
- switch (_context.prev = _context.next) {
131
- case 0:
132
- return _context.abrupt("return", this.buildModels());
133
-
134
- case 1:
135
- case "end":
136
- return _context.stop();
137
- }
114
+ while (1) switch (_context.prev = _context.next) {
115
+ case 0:
116
+ return _context.abrupt("return", this.buildModels());
117
+ case 1:
118
+ case "end":
119
+ return _context.stop();
138
120
  }
139
121
  }, _callee, this);
140
122
  }));
141
-
142
123
  function initModels() {
143
124
  return _initModels.apply(this, arguments);
144
125
  }
145
-
146
126
  return initModels;
147
127
  }()
148
128
  }, {
@@ -151,48 +131,42 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
151
131
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
152
132
  var model;
153
133
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
154
- while (1) {
155
- switch (_context2.prev = _context2.next) {
156
- case 0:
157
- this.layer.triangulation = GlobelPointFillTriangulation;
158
- _context2.next = 3;
159
- return this.layer.buildLayerModel({
160
- moduleName: 'pointEarthFill',
161
- vertexShader: pointFillVert,
162
- fragmentShader: pointFillFrag,
163
- triangulation: GlobelPointFillTriangulation,
164
- depth: {
165
- enable: true
166
- },
167
- blend: this.getBlend()
168
- });
169
-
170
- case 3:
171
- model = _context2.sent;
172
- return _context2.abrupt("return", [model]);
173
-
174
- case 5:
175
- case "end":
176
- return _context2.stop();
177
- }
134
+ while (1) switch (_context2.prev = _context2.next) {
135
+ case 0:
136
+ this.layer.triangulation = GlobelPointFillTriangulation;
137
+ _context2.next = 3;
138
+ return this.layer.buildLayerModel({
139
+ moduleName: 'pointEarthFill',
140
+ vertexShader: pointFillVert,
141
+ fragmentShader: pointFillFrag,
142
+ triangulation: GlobelPointFillTriangulation,
143
+ depth: {
144
+ enable: true
145
+ },
146
+ blend: this.getBlend()
147
+ });
148
+ case 3:
149
+ model = _context2.sent;
150
+ return _context2.abrupt("return", [model]);
151
+ case 5:
152
+ case "end":
153
+ return _context2.stop();
178
154
  }
179
155
  }, _callee2, this);
180
156
  }));
181
-
182
157
  function buildModels() {
183
158
  return _buildModels.apply(this, arguments);
184
159
  }
185
-
186
160
  return buildModels;
187
161
  }()
188
162
  }, {
189
163
  key: "clearModels",
190
164
  value: function clearModels() {
191
165
  var _this$dataTexture;
192
-
193
166
  (_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
194
- } // overwrite baseModel func
167
+ }
195
168
 
169
+ // overwrite baseModel func
196
170
  }, {
197
171
  key: "animateOption2Array",
198
172
  value: function animateOption2Array(option) {
@@ -202,7 +176,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
202
176
  key: "registerBuiltinAttributes",
203
177
  value: function registerBuiltinAttributes() {
204
178
  var _this = this;
205
-
206
179
  this.styleAttributeService.registerStyleAttribute({
207
180
  name: 'extrude',
208
181
  type: AttributeType.Attribute,
@@ -217,10 +190,9 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
217
190
  size: 3,
218
191
  update: function update(feature, featureIdx, vertex, attributeIdx) {
219
192
  var _vertex = _slicedToArray(vertex, 3),
220
- x = _vertex[0],
221
- y = _vertex[1],
222
- z = _vertex[2];
223
-
193
+ x = _vertex[0],
194
+ y = _vertex[1],
195
+ z = _vertex[2];
224
196
  var n1 = vec3.fromValues(0, 0, 1);
225
197
  var n2 = vec3.fromValues(x, 0, z);
226
198
  var xzReg = x >= 0 ? vec3.angle(n1, n2) : Math.PI * 2 - vec3.angle(n1, n2);
@@ -245,8 +217,9 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
245
217
  return [extrude[extrudeIndex], extrude[extrudeIndex + 1], extrude[extrudeIndex + 2]];
246
218
  }
247
219
  }
248
- }); // point layer size;
220
+ });
249
221
 
222
+ // point layer size;
250
223
  this.styleAttributeService.registerStyleAttribute({
251
224
  name: 'size',
252
225
  type: AttributeType.Attribute,
@@ -261,12 +234,13 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
261
234
  size: 1,
262
235
  update: function update(feature) {
263
236
  var _feature$size = feature.size,
264
- size = _feature$size === void 0 ? 5 : _feature$size;
237
+ size = _feature$size === void 0 ? 5 : _feature$size;
265
238
  return Array.isArray(size) ? [size[0]] : [size];
266
239
  }
267
240
  }
268
- }); // point layer size;
241
+ });
269
242
 
243
+ // point layer size;
270
244
  this.styleAttributeService.registerStyleAttribute({
271
245
  name: 'shape',
272
246
  type: AttributeType.Attribute,
@@ -281,10 +255,8 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
281
255
  size: 1,
282
256
  update: function update(feature) {
283
257
  var _feature$shape = feature.shape,
284
- shape = _feature$shape === void 0 ? 2 : _feature$shape;
285
-
258
+ shape = _feature$shape === void 0 ? 2 : _feature$shape;
286
259
  var shape2d = _this.layer.getLayerConfig().shape2d;
287
-
288
260
  var shapeIndex = shape2d.indexOf(shape);
289
261
  return [shapeIndex];
290
262
  }
@@ -292,8 +264,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
292
264
  });
293
265
  }
294
266
  }]);
295
-
296
267
  return FillModel;
297
268
  }(BaseModel);
298
-
299
269
  export { FillModel as default };