@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
@@ -1,76 +1,52 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
12
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
13
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
14
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
15
  var _l7Core = require("@antv/l7-core");
25
-
26
16
  var _l7Utils = require("@antv/l7-utils");
27
-
28
17
  var _lodash = require("lodash");
29
-
30
18
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
31
-
32
19
  var _triangulation = require("../../core/triangulation");
33
-
34
20
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
35
-
36
21
  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; } }
37
-
38
22
  /* babel-plugin-inline-import '../shaders/polygon_frag.glsl' */
39
23
  var polygon_frag = "uniform float u_opacity: 1.0;\nvarying vec4 v_color;\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\n#pragma include \"picking\"\n\nvoid main() {\n float opacity = styleMappingMat[0][0];\n gl_FragColor = v_color;\n gl_FragColor.a *= opacity;\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
40
-
41
24
  /* babel-plugin-inline-import '../shaders/polygon_linear_frag.glsl' */
42
25
  var polygon_linear_frag = "uniform float u_opacity: 1.0;\nvarying vec4 v_Color;\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\n#pragma include \"picking\"\nuniform float u_opacitylinear: 0.0;\nuniform float u_dir: 1.0;\nvarying vec3 v_linear;\nvarying vec2 v_pos;\n\n\nvoid main() {\n float opacity = styleMappingMat[0][0];\n gl_FragColor = v_Color;\n \n if(u_opacitylinear > 0.0) {\n gl_FragColor.a *= u_dir == 1.0 ? 1.0 - length(v_pos - v_linear.xy)/v_linear.z : length(v_pos - v_linear.xy)/v_linear.z;\n }\n\n gl_FragColor.a *= opacity;\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
43
-
44
26
  /* babel-plugin-inline-import '../shaders/polygon_linear_vert.glsl' */
45
27
  var polygon_linear_vert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform float u_opacity: 1.0;\nuniform float u_raisingHeight: 0.0;\n\nvarying vec4 v_Color;\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 \"picking\"\n\nuniform float u_opacitylinear: 0.0;\n\nattribute vec3 a_linear;\nvarying vec3 v_linear;\nvarying vec2 v_pos;\n\nvoid main() {\n if(u_opacitylinear > 0.0) {\n v_linear = a_linear;\n v_pos = a_Position.xy;\n }\n \n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\nstyleMappingMat = 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 // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n\n v_Color = a_Color;\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n project_pos.z += u_raisingHeight;\n\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 project_pos.z *= mapboxZoomScale;\n project_pos.z += u_raisingHeight * mapboxZoomScale;\n }\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n }\n\n setPickingColor(a_PickingColor);\n}";
46
-
47
28
  /* babel-plugin-inline-import '../shaders/polygon_vert.glsl' */
48
29
  var polygon_vert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nuniform float u_opacity: 1.0;\nuniform float u_raisingHeight: 0.0;\n\nvarying vec4 v_color;\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 \"picking\"\n\nvoid main() {\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\nstyleMappingMat = 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 // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n\n v_color = a_Color;\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n\n project_pos.z += u_raisingHeight;\n\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 project_pos.z *= mapboxZoomScale;\n project_pos.z += u_raisingHeight * mapboxZoomScale;\n }\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n }\n\n setPickingColor(a_PickingColor);\n}\n\n";
49
-
50
30
  var FillModel = /*#__PURE__*/function (_BaseModel) {
51
31
  (0, _inherits2.default)(FillModel, _BaseModel);
52
-
53
32
  var _super = _createSuper(FillModel);
54
-
55
33
  function FillModel() {
56
34
  (0, _classCallCheck2.default)(this, FillModel);
57
35
  return _super.apply(this, arguments);
58
36
  }
59
-
60
37
  (0, _createClass2.default)(FillModel, [{
61
38
  key: "getUninforms",
62
39
  value: function getUninforms() {
63
40
  var _ref = this.layer.getLayerConfig(),
64
- _ref$raisingHeight = _ref.raisingHeight,
65
- raisingHeight = _ref$raisingHeight === void 0 ? 0 : _ref$raisingHeight,
66
- _ref$opacity = _ref.opacity,
67
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
68
- _ref$opacityLinear = _ref.opacityLinear,
69
- opacityLinear = _ref$opacityLinear === void 0 ? {
70
- enable: false,
71
- dir: 'in'
72
- } : _ref$opacityLinear;
73
-
41
+ _ref$raisingHeight = _ref.raisingHeight,
42
+ raisingHeight = _ref$raisingHeight === void 0 ? 0 : _ref$raisingHeight,
43
+ _ref$opacity = _ref.opacity,
44
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
45
+ _ref$opacityLinear = _ref.opacityLinear,
46
+ opacityLinear = _ref$opacityLinear === void 0 ? {
47
+ enable: false,
48
+ dir: 'in'
49
+ } : _ref$opacityLinear;
74
50
  if (this.dataTextureTest && this.dataTextureNeedUpdate({
75
51
  opacity: opacity
76
52
  })) {
@@ -78,14 +54,11 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
78
54
  opacity: opacity
79
55
  });
80
56
  var encodeData = this.layer.getEncodedData();
81
-
82
57
  var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
83
- data = _this$calDataFrame.data,
84
- width = _this$calDataFrame.width,
85
- height = _this$calDataFrame.height;
86
-
58
+ data = _this$calDataFrame.data,
59
+ width = _this$calDataFrame.width,
60
+ height = _this$calDataFrame.height;
87
61
  this.rowCount = height; // 当前数据纹理有多少行
88
-
89
62
  this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
90
63
  flipY: true,
91
64
  data: data,
@@ -102,7 +75,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
102
75
  height: 1
103
76
  });
104
77
  }
105
-
106
78
  return {
107
79
  u_dataTexture: this.dataTexture,
108
80
  // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]
@@ -118,23 +90,18 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
118
90
  value: function () {
119
91
  var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
120
92
  return _regenerator.default.wrap(function _callee$(_context) {
121
- while (1) {
122
- switch (_context.prev = _context.next) {
123
- case 0:
124
- return _context.abrupt("return", this.buildModels());
125
-
126
- case 1:
127
- case "end":
128
- return _context.stop();
129
- }
93
+ while (1) switch (_context.prev = _context.next) {
94
+ case 0:
95
+ return _context.abrupt("return", this.buildModels());
96
+ case 1:
97
+ case "end":
98
+ return _context.stop();
130
99
  }
131
100
  }, _callee, this);
132
101
  }));
133
-
134
102
  function initModels() {
135
103
  return _initModels.apply(this, arguments);
136
104
  }
137
-
138
105
  return initModels;
139
106
  }()
140
107
  }, {
@@ -142,66 +109,57 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
142
109
  value: function () {
143
110
  var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
144
111
  var _this$getModelParams, frag, vert, triangulation, type, _ref2, _ref2$workerEnabled, workerEnabled, enablePicking, model;
145
-
146
112
  return _regenerator.default.wrap(function _callee2$(_context2) {
147
- while (1) {
148
- switch (_context2.prev = _context2.next) {
149
- case 0:
150
- _this$getModelParams = this.getModelParams(), frag = _this$getModelParams.frag, vert = _this$getModelParams.vert, triangulation = _this$getModelParams.triangulation, type = _this$getModelParams.type;
151
- _ref2 = this.layer.getLayerConfig(), _ref2$workerEnabled = _ref2.workerEnabled, workerEnabled = _ref2$workerEnabled === void 0 ? false : _ref2$workerEnabled, enablePicking = _ref2.enablePicking;
152
- this.layer.triangulation = triangulation;
153
- _context2.next = 5;
154
- return this.layer.buildLayerModel({
155
- moduleName: type,
156
- vertexShader: vert,
157
- fragmentShader: frag,
158
- triangulation: triangulation,
159
- primitive: _l7Core.gl.TRIANGLES,
160
- depth: {
161
- enable: false
162
- },
163
- workerEnabled: workerEnabled,
164
- workerOptions: {
165
- modelType: type,
166
- enablePicking: enablePicking
167
- }
168
- });
169
-
170
- case 5:
171
- model = _context2.sent;
172
- return _context2.abrupt("return", [model]);
173
-
174
- case 7:
175
- case "end":
176
- return _context2.stop();
177
- }
113
+ while (1) switch (_context2.prev = _context2.next) {
114
+ case 0:
115
+ _this$getModelParams = this.getModelParams(), frag = _this$getModelParams.frag, vert = _this$getModelParams.vert, triangulation = _this$getModelParams.triangulation, type = _this$getModelParams.type;
116
+ _ref2 = this.layer.getLayerConfig(), _ref2$workerEnabled = _ref2.workerEnabled, workerEnabled = _ref2$workerEnabled === void 0 ? false : _ref2$workerEnabled, enablePicking = _ref2.enablePicking;
117
+ this.layer.triangulation = triangulation;
118
+ _context2.next = 5;
119
+ return this.layer.buildLayerModel({
120
+ moduleName: type,
121
+ vertexShader: vert,
122
+ fragmentShader: frag,
123
+ triangulation: triangulation,
124
+ primitive: _l7Core.gl.TRIANGLES,
125
+ depth: {
126
+ enable: false
127
+ },
128
+ workerEnabled: workerEnabled,
129
+ workerOptions: {
130
+ modelType: type,
131
+ enablePicking: enablePicking
132
+ }
133
+ });
134
+ case 5:
135
+ model = _context2.sent;
136
+ return _context2.abrupt("return", [model]);
137
+ case 7:
138
+ case "end":
139
+ return _context2.stop();
178
140
  }
179
141
  }, _callee2, this);
180
142
  }));
181
-
182
143
  function buildModels() {
183
144
  return _buildModels.apply(this, arguments);
184
145
  }
185
-
186
146
  return buildModels;
187
147
  }()
188
148
  }, {
189
149
  key: "clearModels",
190
150
  value: function clearModels() {
191
151
  var _this$dataTexture;
192
-
193
152
  (_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
194
153
  }
195
154
  }, {
196
155
  key: "registerBuiltinAttributes",
197
156
  value: function registerBuiltinAttributes() {
198
157
  var _ref3 = this.layer.getLayerConfig(),
199
- _ref3$opacityLinear = _ref3.opacityLinear,
200
- opacityLinear = _ref3$opacityLinear === void 0 ? {
201
- enable: false,
202
- dir: 'in'
203
- } : _ref3$opacityLinear;
204
-
158
+ _ref3$opacityLinear = _ref3.opacityLinear,
159
+ opacityLinear = _ref3$opacityLinear === void 0 ? {
160
+ enable: false,
161
+ dir: 'in'
162
+ } : _ref3$opacityLinear;
205
163
  if (opacityLinear.enable) {
206
164
  this.styleAttributeService.registerStyleAttribute({
207
165
  name: 'linear',
@@ -226,11 +184,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
226
184
  key: "getModelParams",
227
185
  value: function getModelParams() {
228
186
  var _ref4 = this.layer.getLayerConfig(),
229
- _ref4$opacityLinear = _ref4.opacityLinear,
230
- opacityLinear = _ref4$opacityLinear === void 0 ? {
231
- enable: false
232
- } : _ref4$opacityLinear;
233
-
187
+ _ref4$opacityLinear = _ref4.opacityLinear,
188
+ opacityLinear = _ref4$opacityLinear === void 0 ? {
189
+ enable: false
190
+ } : _ref4$opacityLinear;
234
191
  if (opacityLinear.enable) {
235
192
  return {
236
193
  frag: polygon_linear_frag,
@@ -250,5 +207,4 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
250
207
  }]);
251
208
  return FillModel;
252
209
  }(_BaseModel2.default);
253
-
254
210
  exports.default = FillModel;
@@ -1,32 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _line = _interopRequireDefault(require("../../line/models/line"));
11
-
12
9
  var _extrude = _interopRequireDefault(require("../../point/models/extrude"));
13
-
14
10
  var _fill = _interopRequireDefault(require("../../point/models/fill"));
15
-
16
11
  var _image = _interopRequireDefault(require("../../point/models/image"));
17
-
18
12
  var _normal = _interopRequireDefault(require("../../point/models/normal"));
19
-
20
13
  var _text = _interopRequireDefault(require("../../point/models/text"));
21
-
22
14
  var _extrude2 = _interopRequireDefault(require("./extrude"));
23
-
24
15
  var _fill2 = _interopRequireDefault(require("./fill"));
25
-
26
16
  var _ocean = _interopRequireDefault(require("./ocean"));
27
-
28
17
  var _water = _interopRequireDefault(require("./water"));
29
-
30
18
  var PolygonModels = {
31
19
  fill: _fill2.default,
32
20
  line: _line.default,
@@ -37,8 +25,8 @@ var PolygonModels = {
37
25
  point_normal: _normal.default,
38
26
  point_extrude: _extrude.default,
39
27
  water: _water.default,
40
- ocean: _ocean.default // point_fill: PointModels.fill,
41
-
28
+ ocean: _ocean.default
29
+ // point_fill: PointModels.fill,
42
30
  };
43
31
  var _default = PolygonModels;
44
32
  exports.default = _default;
@@ -1,71 +1,47 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
16
  var _l7Core = require("@antv/l7-core");
27
-
28
17
  var _l7Maps = require("@antv/l7-maps");
29
-
30
18
  var _l7Utils = require("@antv/l7-utils");
31
-
32
19
  var _lodash = require("lodash");
33
-
34
20
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
35
-
36
21
  var _triangulation = require("../../core/triangulation");
37
-
38
22
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
39
-
40
23
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
-
42
24
  /* babel-plugin-inline-import '../shaders/water/polygon_ocean_frag.glsl' */
43
25
  var ocean_frag = "\nuniform float u_time: 0.0;\nuniform float u_opacity: 1.0;\n\nvarying vec2 v_uv;\n\nfloat coast2water_fadedepth = 0.10;\nfloat large_waveheight = .750; // change to adjust the \"heavy\" waves\nfloat large_wavesize = 3.4; // factor to adjust the large wave size\nfloat small_waveheight = 0.6; // change to adjust the small random waves\nfloat small_wavesize = 0.5; // factor to ajust the small wave size\nfloat water_softlight_fact = 15.; // range [1..200] (should be << smaller than glossy-fact)\nfloat water_glossylight_fact= 120.; // range [1..200]\nfloat particle_amount = 70.;\n// vec3 watercolor = vec3(0.43, 0.60, 0.66); // 'transparent' low-water color (RGB)\n// vec3 watercolor2 = vec3(0.06, 0.07, 0.11); // deep-water color (RGB, should be darker than the low-water color)\nuniform vec4 u_watercolor;\nuniform vec4 u_watercolor2;\nvec3 water_specularcolor = vec3(1.3, 1.3, 0.9); // specular Color (RGB) of the water-highlights\n#define light vec3(-0., sin(u_time*0.5)*.5 + .35, 2.8) // position of the sun\n\nuniform sampler2D u_texture1;\nuniform sampler2D u_texture2;\nuniform sampler2D u_texture3;\n\n \n\nfloat hash( float n ) {\n return fract(sin(n)*43758.5453123);\n}\n\n// 2d noise function\nfloat noise1( in vec2 x ) {\n vec2 p = floor(x);\n vec2 f = smoothstep(0.0, 1.0, fract(x));\n float n = p.x + p.y*57.0;\n return mix(mix( hash(n+ 0.0), hash(n+ 1.0),f.x),\n mix( hash(n+ 57.0), hash(n+ 58.0),f.x),f.y);\n}\n\nfloat noise(vec2 p) {\n return texture2D(u_texture2,p*vec2(1./256.)).x;\n}\n\nvec4 highness(vec2 p) {\n vec4 t = texture2D(u_texture1,fract(p));\n float clipped = -2.0-smoothstep(3.,10.,t.a)*6.9-smoothstep(10.,100.,t.a)*89.9-smoothstep(0.,10000.,t.a)*10000.0;\n return clamp(t, 0.0,3.0)+clamp(t/3.0-1.0, 0.0,1.0)+clamp(t/16.0-1.0, 0.0,1.0);\n}\n\nfloat height_map( vec2 p ) {\n vec4 height=highness(p);\n /*\n height = -0.5+\n 0.5*smoothstep(-100.,0.,-height)+\n 2.75*smoothstep(0.,2.,height)+\n 1.75*smoothstep(2.,4.,height)+\n 2.75*smoothstep(4.,16.,height)+\n 1.5*smoothstep(16.,1000.,height);\n */\n\n mat2 m = mat2( 0.9563*1.4, -0.2924*1.4, 0.2924*1.4, 0.9563*1.4 );\n //p = p*6.;\n float f = 0.6000*noise1( p ); p = m*p*1.1*6.;\n f += 0.2500*noise( p ); p = m*p*1.32;\n f += 0.1666*noise( p ); p = m*p*1.11;\n f += 0.0834*noise( p ); p = m*p*1.12;\n f += 0.0634*noise( p ); p = m*p*1.13;\n f += 0.0444*noise( p ); p = m*p*1.14;\n f += 0.0274*noise( p ); p = m*p*1.15;\n f += 0.0134*noise( p ); p = m*p*1.16;\n f += 0.0104*noise( p ); p = m*p*1.17;\n f += 0.0084*noise( p );\n f = .25*f+dot(height,vec4(-.03125,-.125,.25,.25))*.5;\n const float FLAT_LEVEL = 0.92525;\n //f = f*0.25+height*0.75;\n if (f<FLAT_LEVEL)\n f = f;\n else\n f = pow((f-FLAT_LEVEL)/(1.-FLAT_LEVEL), 2.)*(1.-FLAT_LEVEL)*2.0+FLAT_LEVEL; // makes a smooth coast-increase\n return clamp(f, 0., 10.);\n}\n\nvec3 plasma_quintic( float x ) {\n x = clamp( x, 0.0, 1.0);\n vec4 x1 = vec4( 1.0, x, x * x, x * x * x ); // 1 x x2 x3\n vec4 x2 = x1 * x1.w * x; // x4 x5 x6 x7\n return vec3(\n dot( x1.xyzw, vec4( +0.063861086, +1.992659096, -1.023901152, -0.490832805 ) ) + dot( x2.xy, vec2( +1.308442123, -0.914547012 ) ),\n dot( x1.xyzw, vec4( +0.049718590, -0.791144343, +2.892305078, +0.811726816 ) ) + dot( x2.xy, vec2( -4.686502417, +2.717794514 ) ),\n dot( x1.xyzw, vec4( +0.513275779, +1.580255060, -5.164414457, +4.559573646 ) ) + dot( x2.xy, vec2( -1.916810682, +0.570638854 ) ) );\n}\n\nvec4 color(vec2 p){\n vec4 c1 = vec4(1.7,1.6,.9,1);\n vec4 c2 = vec4(.2,.94,.1,1);\n vec4 c3 = vec4(.3,.2,.0,1);\n vec4 c4 = vec4(.99,.99,1.6,1);\n vec4 v = highness(p);\n float los = smoothstep(0.1,1.1,v.b);\n float his = smoothstep(3.5,6.5,v.b);\n float ces = smoothstep(1.,5.,v.a);\n vec4 lo = mix(c1,c2,los);\n vec4 hi = mix(c3,c4,his);\n vec4 ce = mix(lo,hi,ces);\n\n return vec4(plasma_quintic(ces),1).ragb;\n}\n\nvec3 terrain_map( vec2 p )\n{\n return color(p).rgb*0.75+0.25*vec3(0.7, .55, .4)+texture2D(u_texture3, fract(p*5.)).rgb*.5; // test-terrain is simply 'sandstone'\n}\n\nconst mat2 m = mat2( 0.72, -1.60, 1.60, 0.72 );\n\nfloat water_map( vec2 p, float height ) {\n vec2 p2 = p*large_wavesize;\n vec2 shift1 = 0.001*vec2( u_time*160.0*2.0, u_time*120.0*2.0 );\n vec2 shift2 = 0.001*vec2( u_time*190.0*2.0, -u_time*130.0*2.0 );\n\n // coarse crossing 'ocean' waves...\n float f = 0.6000*noise( p );\n f += 0.2500*noise( p*m );\n f += 0.1666*noise( p*m*m );\n float wave = sin(p2.x*0.622+p2.y*0.622+shift2.x*4.269)*large_waveheight*f*height*height ;\n\n p *= small_wavesize;\n f = 0.;\n float amp = 1.0, s = .5;\n for (int i=0; i<9; i++)\n { p = m*p*.947; f -= amp*abs(sin((noise( p+shift1*s )-.5)*2.)); amp = amp*.59; s*=-1.329; }\n \n return wave+f*small_waveheight;\n}\n\nfloat nautic(vec2 p) {\n p *= 18.;\n float f = 0.;\n float amp = 1.0, s = .5;\n for (int i=0; i<3; i++)\n { p = m*p*1.2; f += amp*abs(smoothstep(0., 1., noise( p+u_time*s ))-.5); amp = amp*.5; s*=-1.227; }\n return pow(1.-f, 5.);\n}\n\nfloat particles(vec2 p) {\n p *= 200.;\n float f = 0.;\n float amp = 1.0, s = 1.5;\n for (int i=0; i<3; i++)\n { p = m*p*1.2; f += amp*noise( p+u_time*s ); amp = amp*.5; s*=-1.227; }\n return pow(f*.35, 7.)*particle_amount;\n}\n\nfloat test_shadow( vec2 xy, float height) {\n vec3 r0 = vec3(xy, height);\n vec3 rd = normalize( light - r0 );\n \n float hit = 1.0;\n float t = 0.001;\n for (int j=1; j<25; j++)\n {\n vec3 p = r0 + t*rd;\n float h = height_map( p.xy );\n float height_diff = p.z - h;\n if (height_diff<0.0)\n {\n return 0.0;\n }\n t += 0.01+height_diff*.02;\n hit = min(hit, 2.*height_diff/t); // soft shaddow \n }\n return hit;\n}\n\nvec3 CalcTerrain(vec2 uv, float height) {\n vec3 col = terrain_map( uv );\n vec2 iResolution = vec2(512.);\n float h1 = height_map(uv-vec2(0., 0.5)/ iResolution.xy);\n float h2 = height_map(uv+vec2(0., 0.5)/ iResolution.xy);\n float h3 = height_map(uv-vec2(0.5, 0.)/ iResolution.xy);\n float h4 = height_map(uv+vec2(0.5, 0.)/ iResolution.xy);\n vec3 norm = normalize(vec3(h3-h4, h1-h2, 1.));\n vec3 r0 = vec3(uv, height);\n vec3 rd = normalize( light - r0 );\n float grad = dot(norm, rd);\n col *= grad+pow(grad, 8.);\n float terrainshade = test_shadow( uv, height );\n col = mix(col*.25, col, terrainshade);\n return col;\n}\n\n\nvoid main() {\n vec3 watercolor = u_watercolor.rgb;\n vec3 watercolor2 = u_watercolor2.rgb;\n vec2 uv = v_uv;\n float WATER_LEVEL = 0.84; // Water level (range: 0.0 - 2.0)\n float deepwater_fadedepth = 0.4 + coast2water_fadedepth;\n float height = height_map( uv );\n vec3 col;\n\n float waveheight = clamp(WATER_LEVEL*3.-1.5, 0., 1.);\n float level = WATER_LEVEL + .2*water_map(uv*15. + vec2(u_time*.1), waveheight);\n if (height > level)\n {\n col = CalcTerrain(uv, height);\n }\n if (height <= level)\n {\n vec2 dif = vec2(.0, .01);\n vec2 pos = uv*15. + vec2(u_time*.01);\n float h1 = water_map(pos-dif,waveheight);\n float h2 = water_map(pos+dif,waveheight);\n float h3 = water_map(pos-dif.yx,waveheight);\n float h4 = water_map(pos+dif.yx,waveheight);\n vec3 normwater = normalize(vec3(h3-h4, h1-h2, .125)); // norm-vector of the 'bumpy' water-plane\n uv += normwater.xy*.002*(level-height);\n \n col = CalcTerrain(uv, height);\n\n float coastfade = clamp((level-height)/coast2water_fadedepth, 0., 1.);\n float coastfade2= clamp((level-height)/deepwater_fadedepth, 0., 1.);\n float intensity = col.r*.2126+col.g*.7152+col.b*.0722;\n watercolor = mix(watercolor*intensity, watercolor2, smoothstep(0., 1., coastfade2));\n\n vec3 r0 = vec3(uv, WATER_LEVEL);\n vec3 rd = normalize( light - r0 ); // ray-direction to the light from water-position\n float grad = dot(normwater, rd); // dot-product of norm-vector and light-direction\n float specular = pow(grad, water_softlight_fact); // used for soft highlights \n float specular2= pow(grad, water_glossylight_fact); // used for glossy highlights\n float gradpos = dot(vec3(0., 0., 1.), rd);\n float specular1= smoothstep(0., 1., pow(gradpos, 5.)); // used for diffusity (some darker corona around light's specular reflections...) \n float watershade = test_shadow( uv, level );\n watercolor *= 2.2+watershade;\n watercolor += (.2+.8*watershade) * ((grad-1.0)*.5+specular) * .25;\n watercolor /= (1.+specular1*1.25);\n watercolor += watershade*specular2*water_specularcolor;\n watercolor += watershade*coastfade*(1.-coastfade2)*(vec3(.5, .6, .7)*nautic(uv)+vec3(1., 1., 1.)*particles(uv));\n \n col = mix(col, watercolor, coastfade);\n }\n \n\n float opacity = u_opacity;\n gl_FragColor = vec4(col, opacity); \n}\n";
44
-
45
26
  /* babel-plugin-inline-import '../shaders/water/polygon_ocean_vert.glsl' */
46
27
  var ocean_vert = "attribute vec2 a_uv;\nattribute vec3 a_Position;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nvarying vec2 v_uv;\n\n#pragma include \"projection\"\n\nvoid main() {\n v_uv = a_uv;\n\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n }\n}\n\n";
47
-
48
28
  var OceanModel = /*#__PURE__*/function (_BaseModel) {
49
29
  (0, _inherits2.default)(OceanModel, _BaseModel);
50
-
51
30
  var _super = _createSuper(OceanModel);
52
-
53
31
  function OceanModel() {
54
32
  (0, _classCallCheck2.default)(this, OceanModel);
55
33
  return _super.apply(this, arguments);
56
34
  }
57
-
58
35
  (0, _createClass2.default)(OceanModel, [{
59
36
  key: "getUninforms",
60
37
  value: function getUninforms() {
61
38
  var _ref = this.layer.getLayerConfig(),
62
- _ref$opacity = _ref.opacity,
63
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
64
- _ref$watercolor = _ref.watercolor,
65
- watercolor = _ref$watercolor === void 0 ? '#6D99A8' : _ref$watercolor,
66
- _ref$watercolor2 = _ref.watercolor2,
67
- watercolor2 = _ref$watercolor2 === void 0 ? '#0F121C' : _ref$watercolor2;
68
-
39
+ _ref$opacity = _ref.opacity,
40
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
41
+ _ref$watercolor = _ref.watercolor,
42
+ watercolor = _ref$watercolor === void 0 ? '#6D99A8' : _ref$watercolor,
43
+ _ref$watercolor2 = _ref.watercolor2,
44
+ watercolor2 = _ref$watercolor2 === void 0 ? '#0F121C' : _ref$watercolor2;
69
45
  return {
70
46
  u_texture1: this.texture1,
71
47
  u_texture2: this.texture2,
@@ -87,24 +63,19 @@ var OceanModel = /*#__PURE__*/function (_BaseModel) {
87
63
  value: function () {
88
64
  var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
89
65
  return _regenerator.default.wrap(function _callee$(_context) {
90
- while (1) {
91
- switch (_context.prev = _context.next) {
92
- case 0:
93
- this.loadTexture();
94
- return _context.abrupt("return", this.buildModels());
95
-
96
- case 2:
97
- case "end":
98
- return _context.stop();
99
- }
66
+ while (1) switch (_context.prev = _context.next) {
67
+ case 0:
68
+ this.loadTexture();
69
+ return _context.abrupt("return", this.buildModels());
70
+ case 2:
71
+ case "end":
72
+ return _context.stop();
100
73
  }
101
74
  }, _callee, this);
102
75
  }));
103
-
104
76
  function initModels() {
105
77
  return _initModels.apply(this, arguments);
106
78
  }
107
-
108
79
  return initModels;
109
80
  }()
110
81
  }, {
@@ -113,44 +84,37 @@ var OceanModel = /*#__PURE__*/function (_BaseModel) {
113
84
  var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
114
85
  var model;
115
86
  return _regenerator.default.wrap(function _callee2$(_context2) {
116
- while (1) {
117
- switch (_context2.prev = _context2.next) {
118
- case 0:
119
- _context2.next = 2;
120
- return this.layer.buildLayerModel({
121
- moduleName: 'polygonOcean',
122
- vertexShader: ocean_vert,
123
- fragmentShader: ocean_frag,
124
- triangulation: _triangulation.polygonTriangulation,
125
- primitive: _l7Core.gl.TRIANGLES,
126
- depth: {
127
- enable: false
128
- }
129
- });
130
-
131
- case 2:
132
- model = _context2.sent;
133
- return _context2.abrupt("return", [model]);
134
-
135
- case 4:
136
- case "end":
137
- return _context2.stop();
138
- }
87
+ while (1) switch (_context2.prev = _context2.next) {
88
+ case 0:
89
+ _context2.next = 2;
90
+ return this.layer.buildLayerModel({
91
+ moduleName: 'polygonOcean',
92
+ vertexShader: ocean_vert,
93
+ fragmentShader: ocean_frag,
94
+ triangulation: _triangulation.polygonTriangulation,
95
+ primitive: _l7Core.gl.TRIANGLES,
96
+ depth: {
97
+ enable: false
98
+ }
99
+ });
100
+ case 2:
101
+ model = _context2.sent;
102
+ return _context2.abrupt("return", [model]);
103
+ case 4:
104
+ case "end":
105
+ return _context2.stop();
139
106
  }
140
107
  }, _callee2, this);
141
108
  }));
142
-
143
109
  function buildModels() {
144
110
  return _buildModels.apply(this, arguments);
145
111
  }
146
-
147
112
  return buildModels;
148
113
  }()
149
114
  }, {
150
115
  key: "clearModels",
151
116
  value: function clearModels() {
152
117
  var _this$texture, _this$texture2, _this$texture3;
153
-
154
118
  (_this$texture = this.texture1) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
155
119
  (_this$texture2 = this.texture2) === null || _this$texture2 === void 0 ? void 0 : _this$texture2.destroy();
156
120
  (_this$texture3 = this.texture3) === null || _this$texture3 === void 0 ? void 0 : _this$texture3.destroy();
@@ -159,13 +123,11 @@ var OceanModel = /*#__PURE__*/function (_BaseModel) {
159
123
  key: "registerBuiltinAttributes",
160
124
  value: function registerBuiltinAttributes() {
161
125
  var bbox = this.layer.getSource().extent;
162
-
163
126
  var _bbox = (0, _slicedToArray2.default)(bbox, 4),
164
- minLng = _bbox[0],
165
- minLat = _bbox[1],
166
- maxLng = _bbox[2],
167
- maxLat = _bbox[3];
168
-
127
+ minLng = _bbox[0],
128
+ minLat = _bbox[1],
129
+ maxLng = _bbox[2],
130
+ maxLat = _bbox[3];
169
131
  var lngLen = maxLng - minLng;
170
132
  var latLen = maxLat - minLat;
171
133
  this.styleAttributeService.registerStyleAttribute({
@@ -182,11 +144,9 @@ var OceanModel = /*#__PURE__*/function (_BaseModel) {
182
144
  size: 2,
183
145
  update: function update(feature, featureIdx, vertex, attributeIdx) {
184
146
  var v = feature.version === _l7Maps.Version['GAODE2.x'] ? feature.originCoordinates[0][attributeIdx] : vertex;
185
-
186
147
  var _v = (0, _slicedToArray2.default)(v, 2),
187
- lng = _v[0],
188
- lat = _v[1];
189
-
148
+ lng = _v[0],
149
+ lat = _v[1];
190
150
  return [(lng - minLng) / lngLen, (lat - minLat) / latLen];
191
151
  }
192
152
  }
@@ -196,25 +156,23 @@ var OceanModel = /*#__PURE__*/function (_BaseModel) {
196
156
  key: "loadTexture",
197
157
  value: function loadTexture() {
198
158
  var _this = this;
199
-
200
159
  var createTexture2D = this.rendererService.createTexture2D;
201
160
  var defaultTextureOptions = {
202
161
  height: 0,
203
162
  width: 0
204
- }; // 默认索引为 undefined,所以单独赋值
205
-
163
+ };
164
+ // 默认索引为 undefined,所以单独赋值
206
165
  this.texture1 = createTexture2D(defaultTextureOptions);
207
166
  this.texture2 = createTexture2D(defaultTextureOptions);
208
- this.texture3 = createTexture2D(defaultTextureOptions); // 加载完 image 后单独给 texture f赋值
167
+ this.texture3 = createTexture2D(defaultTextureOptions);
209
168
 
169
+ // 加载完 image 后单独给 texture f赋值
210
170
  initImage(function (images) {
211
171
  _this.texture1 = initTex(images[0]);
212
172
  _this.texture2 = initTex(images[1]);
213
173
  _this.texture3 = initTex(images[2]);
214
-
215
174
  _this.layerService.reRender();
216
175
  });
217
-
218
176
  function initImage(callback) {
219
177
  var loadedCount = 0;
220
178
  var loadedImages = [];
@@ -224,17 +182,14 @@ var OceanModel = /*#__PURE__*/function (_BaseModel) {
224
182
  image.crossOrigin = '';
225
183
  image.src = imgSrc;
226
184
  loadedImages.push(image);
227
-
228
185
  image.onload = function () {
229
186
  loadedCount++;
230
-
231
187
  if (loadedCount === 3) {
232
188
  callback(loadedImages);
233
189
  }
234
190
  };
235
191
  });
236
192
  }
237
-
238
193
  function initTex(image) {
239
194
  return createTexture2D({
240
195
  data: image,
@@ -250,5 +205,4 @@ var OceanModel = /*#__PURE__*/function (_BaseModel) {
250
205
  }]);
251
206
  return OceanModel;
252
207
  }(_BaseModel2.default);
253
-
254
208
  exports.default = OceanModel;