@antv/l7-layers 2.21.9-beta.0 → 2.21.9

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 (283) hide show
  1. package/es/citybuliding/models/build.d.ts +0 -16
  2. package/es/citybuliding/models/build.js +20 -18
  3. package/es/citybuliding/shaders/build_frag.glsl +6 -6
  4. package/es/citybuliding/shaders/build_vert.glsl +14 -8
  5. package/es/core/BaseLayer.js +8 -12
  6. package/es/core/BaseModel.d.ts +2 -15
  7. package/es/core/BaseModel.js +62 -94
  8. package/es/core/CommonStyleAttribute.d.ts +18 -14
  9. package/es/core/CommonStyleAttribute.js +67 -23
  10. package/es/core/triangulation.js +39 -13
  11. package/es/earth/models/atmosphere.d.ts +0 -15
  12. package/es/earth/models/atmosphere.js +24 -30
  13. package/es/earth/models/base.d.ts +0 -15
  14. package/es/earth/models/base.js +24 -30
  15. package/es/earth/models/bloomsphere.d.ts +0 -15
  16. package/es/earth/models/bloomsphere.js +24 -30
  17. package/es/earth/shaders/atmosphere/atmosphere_vert.glsl +5 -7
  18. package/es/earth/shaders/base/base_vert.glsl +3 -3
  19. package/es/earth/shaders/bloomshpere/bloomsphere_vert.glsl +4 -5
  20. package/es/geometry/models/billboard.d.ts +0 -15
  21. package/es/geometry/models/billboard.js +8 -14
  22. package/es/geometry/models/plane.d.ts +0 -14
  23. package/es/geometry/models/plane.js +10 -10
  24. package/es/geometry/models/sprite.js +9 -3
  25. package/es/geometry/shaders/billboard_vert.glsl +25 -28
  26. package/es/geometry/shaders/plane_vert.glsl +6 -6
  27. package/es/geometry/shaders/sprite_vert.glsl +9 -7
  28. package/es/heatmap/models/grid.d.ts +0 -14
  29. package/es/heatmap/models/grid.js +3 -10
  30. package/es/heatmap/models/grid3d.d.ts +0 -16
  31. package/es/heatmap/models/grid3d.js +6 -14
  32. package/es/heatmap/models/heatmap.d.ts +1 -20
  33. package/es/heatmap/models/heatmap.js +83 -96
  34. package/es/heatmap/models/hexagon.d.ts +0 -14
  35. package/es/heatmap/models/hexagon.js +3 -9
  36. package/es/heatmap/shaders/grid/grid_vert.glsl +42 -30
  37. package/es/heatmap/shaders/grid3d/grid_3d_vert.glsl +26 -14
  38. package/es/heatmap/shaders/heatmap/heatmap_3d_vert.glsl +16 -19
  39. package/es/heatmap/shaders/heatmap/heatmap_framebuffer_vert.glsl +22 -16
  40. package/es/heatmap/shaders/heatmap/heatmap_vert.glsl +4 -3
  41. package/es/heatmap/shaders/hexagon/hexagon_vert.glsl +23 -13
  42. package/es/image/models/image.d.ts +0 -14
  43. package/es/image/models/image.js +3 -11
  44. package/es/image/shaders/image_vert.glsl +6 -7
  45. package/es/line/models/arc.d.ts +0 -18
  46. package/es/line/models/arc.js +8 -57
  47. package/es/line/models/arc_3d.d.ts +0 -18
  48. package/es/line/models/arc_3d.js +7 -55
  49. package/es/line/models/flow.d.ts +0 -17
  50. package/es/line/models/flow.js +7 -35
  51. package/es/line/models/great_circle.d.ts +0 -17
  52. package/es/line/models/great_circle.js +6 -34
  53. package/es/line/models/line.d.ts +0 -17
  54. package/es/line/models/line.js +8 -17
  55. package/es/line/models/simple_line.d.ts +0 -14
  56. package/es/line/models/simple_line.js +47 -12
  57. package/es/line/models/wall.d.ts +0 -17
  58. package/es/line/models/wall.js +48 -22
  59. package/es/line/shaders/arc/line_arc_vert.glsl +48 -42
  60. package/es/line/shaders/arc3d/line_arc_3d_vert.glsl +20 -15
  61. package/es/line/shaders/flow/flow_line_vert.glsl +48 -30
  62. package/es/line/shaders/greatCircle/line_arc_great_circle_vert.glsl +72 -56
  63. package/es/line/shaders/line/line_vert.glsl +48 -31
  64. package/es/line/shaders/simple/simpleline_vert.glsl +23 -18
  65. package/es/line/shaders/wall/wall_vert.glsl +45 -36
  66. package/es/mask/models/fill.js +1 -2
  67. package/es/mask/shaders/mask_vert.glsl +7 -2
  68. package/es/plugins/DataMappingPlugin.d.ts +1 -0
  69. package/es/plugins/DataMappingPlugin.js +24 -1
  70. package/es/plugins/PixelPickingPlugin.js +2 -2
  71. package/es/plugins/RegisterStyleAttributePlugin.d.ts +1 -0
  72. package/es/plugins/RegisterStyleAttributePlugin.js +25 -3
  73. package/es/plugins/ShaderUniformPlugin.d.ts +5 -0
  74. package/es/plugins/ShaderUniformPlugin.js +34 -2
  75. package/es/point/models/billboard_point.d.ts +0 -14
  76. package/es/point/models/billboard_point.js +3 -11
  77. package/es/point/models/earthExtrude.d.ts +0 -16
  78. package/es/point/models/earthExtrude.js +8 -15
  79. package/es/point/models/earthFill.d.ts +0 -16
  80. package/es/point/models/earthFill.js +5 -13
  81. package/es/point/models/extrude.d.ts +0 -16
  82. package/es/point/models/extrude.js +12 -19
  83. package/es/point/models/fill.d.ts +0 -16
  84. package/es/point/models/fill.js +5 -16
  85. package/es/point/models/fillImage.d.ts +0 -16
  86. package/es/point/models/fillImage.js +16 -16
  87. package/es/point/models/image.d.ts +0 -15
  88. package/es/point/models/image.js +4 -14
  89. package/es/point/models/normal.d.ts +0 -14
  90. package/es/point/models/normal.js +3 -11
  91. package/es/point/models/radar.d.ts +0 -15
  92. package/es/point/models/radar.js +4 -13
  93. package/es/point/models/text.d.ts +0 -16
  94. package/es/point/models/text.js +11 -18
  95. package/es/point/shaders/billboard/billboard_point_vert.glsl +13 -10
  96. package/es/point/shaders/earthExtrude/earthExtrude_vert.glsl +25 -15
  97. package/es/point/shaders/earthFill/earthFill_vert.glsl +6 -6
  98. package/es/point/shaders/extrude/extrude_vert.glsl +39 -35
  99. package/es/point/shaders/fill/fill_vert.glsl +14 -12
  100. package/es/point/shaders/fillImage/fillImage_vert.glsl +28 -16
  101. package/es/point/shaders/image/image_vert.glsl +12 -15
  102. package/es/point/shaders/normal/normal_vert.glsl +10 -7
  103. package/es/point/shaders/radar/radar_vert.glsl +11 -11
  104. package/es/point/shaders/text/text_vert.glsl +9 -10
  105. package/es/polygon/models/extrude.d.ts +0 -16
  106. package/es/polygon/models/extrude.js +26 -26
  107. package/es/polygon/models/extrusion.d.ts +0 -16
  108. package/es/polygon/models/extrusion.js +4 -34
  109. package/es/polygon/models/fill.d.ts +0 -14
  110. package/es/polygon/models/fill.js +4 -12
  111. package/es/polygon/models/ocean.d.ts +0 -14
  112. package/es/polygon/models/ocean.js +6 -11
  113. package/es/polygon/models/water.d.ts +0 -14
  114. package/es/polygon/models/water.js +6 -11
  115. package/es/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +15 -17
  116. package/es/polygon/shaders/extrude/polygon_extrude_vert.glsl +20 -22
  117. package/es/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +17 -17
  118. package/es/polygon/shaders/extrusion/polygon_extrusion_vert.glsl +8 -8
  119. package/es/polygon/shaders/fill/fill_linear_vert.glsl +6 -7
  120. package/es/polygon/shaders/fill/fill_vert.glsl +12 -10
  121. package/es/polygon/shaders/ocean/ocean_vert.glsl +4 -3
  122. package/es/polygon/shaders/water/polygon_water_vert.glsl +5 -5
  123. package/es/raster/index.d.ts +1 -1
  124. package/es/raster/index.js +1 -1
  125. package/es/raster/models/raster.d.ts +0 -14
  126. package/es/raster/models/raster.js +3 -12
  127. package/es/raster/models/rasterRgb.d.ts +0 -14
  128. package/es/raster/models/rasterRgb.js +3 -12
  129. package/es/raster/models/rasterTerrainRgb.d.ts +0 -14
  130. package/es/raster/models/rasterTerrainRgb.js +3 -11
  131. package/es/raster/shaders/raster/raster_2d_vert.glsl +6 -6
  132. package/es/raster/shaders/rgb/raster_rgb_vert.glsl +11 -11
  133. package/es/raster/shaders/terrain/terrain_rgb_vert.glsl +11 -11
  134. package/es/tile/core/BaseLayer.js +16 -0
  135. package/es/tile/tile/Tile.d.ts +0 -2
  136. package/es/utils/extrude_polyline.d.ts +15 -0
  137. package/es/utils/extrude_polyline.js +217 -0
  138. package/es/utils/multiPassRender.js +2 -10
  139. package/es/wind/models/wind.d.ts +0 -14
  140. package/es/wind/models/wind.js +1 -9
  141. package/es/wind/shaders/wind_vert.glsl +5 -6
  142. package/lib/citybuliding/models/build.d.ts +0 -16
  143. package/lib/citybuliding/models/build.js +20 -18
  144. package/lib/citybuliding/shaders/build_frag.glsl +6 -6
  145. package/lib/citybuliding/shaders/build_vert.glsl +14 -8
  146. package/lib/core/BaseLayer.js +8 -12
  147. package/lib/core/BaseModel.d.ts +2 -15
  148. package/lib/core/BaseModel.js +60 -92
  149. package/lib/core/CommonStyleAttribute.d.ts +18 -14
  150. package/lib/core/CommonStyleAttribute.js +68 -23
  151. package/lib/core/triangulation.js +39 -13
  152. package/lib/earth/models/atmosphere.d.ts +0 -15
  153. package/lib/earth/models/atmosphere.js +24 -30
  154. package/lib/earth/models/base.d.ts +0 -15
  155. package/lib/earth/models/base.js +24 -30
  156. package/lib/earth/models/bloomsphere.d.ts +0 -15
  157. package/lib/earth/models/bloomsphere.js +24 -30
  158. package/lib/earth/shaders/atmosphere/atmosphere_vert.glsl +5 -7
  159. package/lib/earth/shaders/base/base_vert.glsl +3 -3
  160. package/lib/earth/shaders/bloomshpere/bloomsphere_vert.glsl +4 -5
  161. package/lib/geometry/models/billboard.d.ts +0 -15
  162. package/lib/geometry/models/billboard.js +8 -14
  163. package/lib/geometry/models/plane.d.ts +0 -14
  164. package/lib/geometry/models/plane.js +10 -10
  165. package/lib/geometry/models/sprite.js +9 -3
  166. package/lib/geometry/shaders/billboard_vert.glsl +25 -28
  167. package/lib/geometry/shaders/plane_vert.glsl +6 -6
  168. package/lib/geometry/shaders/sprite_vert.glsl +9 -7
  169. package/lib/heatmap/models/grid.d.ts +0 -14
  170. package/lib/heatmap/models/grid.js +3 -10
  171. package/lib/heatmap/models/grid3d.d.ts +0 -16
  172. package/lib/heatmap/models/grid3d.js +6 -14
  173. package/lib/heatmap/models/heatmap.d.ts +1 -20
  174. package/lib/heatmap/models/heatmap.js +82 -95
  175. package/lib/heatmap/models/hexagon.d.ts +0 -14
  176. package/lib/heatmap/models/hexagon.js +3 -9
  177. package/lib/heatmap/shaders/grid/grid_vert.glsl +42 -30
  178. package/lib/heatmap/shaders/grid3d/grid_3d_vert.glsl +26 -14
  179. package/lib/heatmap/shaders/heatmap/heatmap_3d_vert.glsl +16 -19
  180. package/lib/heatmap/shaders/heatmap/heatmap_framebuffer_vert.glsl +22 -16
  181. package/lib/heatmap/shaders/heatmap/heatmap_vert.glsl +4 -3
  182. package/lib/heatmap/shaders/hexagon/hexagon_vert.glsl +23 -13
  183. package/lib/image/models/image.d.ts +0 -14
  184. package/lib/image/models/image.js +3 -11
  185. package/lib/image/shaders/image_vert.glsl +6 -7
  186. package/lib/line/models/arc.d.ts +0 -18
  187. package/lib/line/models/arc.js +7 -56
  188. package/lib/line/models/arc_3d.d.ts +0 -18
  189. package/lib/line/models/arc_3d.js +7 -55
  190. package/lib/line/models/flow.d.ts +0 -17
  191. package/lib/line/models/flow.js +7 -35
  192. package/lib/line/models/great_circle.d.ts +0 -17
  193. package/lib/line/models/great_circle.js +5 -33
  194. package/lib/line/models/line.d.ts +0 -17
  195. package/lib/line/models/line.js +8 -17
  196. package/lib/line/models/simple_line.d.ts +0 -14
  197. package/lib/line/models/simple_line.js +47 -12
  198. package/lib/line/models/wall.d.ts +0 -17
  199. package/lib/line/models/wall.js +48 -22
  200. package/lib/line/shaders/arc/line_arc_vert.glsl +48 -42
  201. package/lib/line/shaders/arc3d/line_arc_3d_vert.glsl +20 -15
  202. package/lib/line/shaders/flow/flow_line_vert.glsl +48 -30
  203. package/lib/line/shaders/greatCircle/line_arc_great_circle_vert.glsl +72 -56
  204. package/lib/line/shaders/line/line_vert.glsl +48 -31
  205. package/lib/line/shaders/simple/simpleline_vert.glsl +23 -18
  206. package/lib/line/shaders/wall/wall_vert.glsl +45 -36
  207. package/lib/mask/models/fill.js +1 -2
  208. package/lib/mask/shaders/mask_vert.glsl +7 -2
  209. package/lib/plugins/DataMappingPlugin.d.ts +1 -0
  210. package/lib/plugins/DataMappingPlugin.js +23 -0
  211. package/lib/plugins/PixelPickingPlugin.js +1 -1
  212. package/lib/plugins/RegisterStyleAttributePlugin.d.ts +1 -0
  213. package/lib/plugins/RegisterStyleAttributePlugin.js +24 -2
  214. package/lib/plugins/ShaderUniformPlugin.d.ts +5 -0
  215. package/lib/plugins/ShaderUniformPlugin.js +34 -2
  216. package/lib/point/models/billboard_point.d.ts +0 -14
  217. package/lib/point/models/billboard_point.js +3 -11
  218. package/lib/point/models/earthExtrude.d.ts +0 -16
  219. package/lib/point/models/earthExtrude.js +7 -14
  220. package/lib/point/models/earthFill.d.ts +0 -16
  221. package/lib/point/models/earthFill.js +5 -13
  222. package/lib/point/models/extrude.d.ts +0 -16
  223. package/lib/point/models/extrude.js +11 -18
  224. package/lib/point/models/fill.d.ts +0 -16
  225. package/lib/point/models/fill.js +5 -16
  226. package/lib/point/models/fillImage.d.ts +0 -16
  227. package/lib/point/models/fillImage.js +16 -16
  228. package/lib/point/models/image.d.ts +0 -15
  229. package/lib/point/models/image.js +4 -14
  230. package/lib/point/models/normal.d.ts +0 -14
  231. package/lib/point/models/normal.js +3 -11
  232. package/lib/point/models/radar.d.ts +0 -15
  233. package/lib/point/models/radar.js +4 -13
  234. package/lib/point/models/text.d.ts +0 -16
  235. package/lib/point/models/text.js +11 -18
  236. package/lib/point/shaders/billboard/billboard_point_vert.glsl +13 -10
  237. package/lib/point/shaders/earthExtrude/earthExtrude_vert.glsl +25 -15
  238. package/lib/point/shaders/earthFill/earthFill_vert.glsl +6 -6
  239. package/lib/point/shaders/extrude/extrude_vert.glsl +39 -35
  240. package/lib/point/shaders/fill/fill_vert.glsl +14 -12
  241. package/lib/point/shaders/fillImage/fillImage_vert.glsl +28 -16
  242. package/lib/point/shaders/image/image_vert.glsl +12 -15
  243. package/lib/point/shaders/normal/normal_vert.glsl +10 -7
  244. package/lib/point/shaders/radar/radar_vert.glsl +11 -11
  245. package/lib/point/shaders/text/text_vert.glsl +9 -10
  246. package/lib/polygon/models/extrude.d.ts +0 -16
  247. package/lib/polygon/models/extrude.js +25 -25
  248. package/lib/polygon/models/extrusion.d.ts +0 -16
  249. package/lib/polygon/models/extrusion.js +4 -34
  250. package/lib/polygon/models/fill.d.ts +0 -14
  251. package/lib/polygon/models/fill.js +4 -12
  252. package/lib/polygon/models/ocean.d.ts +0 -14
  253. package/lib/polygon/models/ocean.js +6 -11
  254. package/lib/polygon/models/water.d.ts +0 -14
  255. package/lib/polygon/models/water.js +6 -11
  256. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +15 -17
  257. package/lib/polygon/shaders/extrude/polygon_extrude_vert.glsl +20 -22
  258. package/lib/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +17 -17
  259. package/lib/polygon/shaders/extrusion/polygon_extrusion_vert.glsl +8 -8
  260. package/lib/polygon/shaders/fill/fill_linear_vert.glsl +6 -7
  261. package/lib/polygon/shaders/fill/fill_vert.glsl +12 -10
  262. package/lib/polygon/shaders/ocean/ocean_vert.glsl +4 -3
  263. package/lib/polygon/shaders/water/polygon_water_vert.glsl +5 -5
  264. package/lib/raster/index.d.ts +1 -1
  265. package/lib/raster/index.js +2 -2
  266. package/lib/raster/models/raster.d.ts +0 -14
  267. package/lib/raster/models/raster.js +3 -12
  268. package/lib/raster/models/rasterRgb.d.ts +0 -14
  269. package/lib/raster/models/rasterRgb.js +3 -12
  270. package/lib/raster/models/rasterTerrainRgb.d.ts +0 -14
  271. package/lib/raster/models/rasterTerrainRgb.js +3 -11
  272. package/lib/raster/shaders/raster/raster_2d_vert.glsl +6 -6
  273. package/lib/raster/shaders/rgb/raster_rgb_vert.glsl +11 -11
  274. package/lib/raster/shaders/terrain/terrain_rgb_vert.glsl +11 -11
  275. package/lib/tile/core/BaseLayer.js +16 -0
  276. package/lib/tile/tile/Tile.d.ts +0 -2
  277. package/lib/utils/extrude_polyline.d.ts +15 -0
  278. package/lib/utils/extrude_polyline.js +217 -0
  279. package/lib/utils/multiPassRender.js +2 -10
  280. package/lib/wind/models/wind.d.ts +0 -14
  281. package/lib/wind/models/wind.js +1 -9
  282. package/lib/wind/shaders/wind_vert.glsl +5 -6
  283. package/package.json +6 -6
@@ -3,27 +3,28 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.COMMON_ATTRIBUTE_LOCATION = void 0;
6
+ exports.ShaderLocation = void 0;
7
7
  exports.getCommonStyleAttributeOptions = getCommonStyleAttributeOptions;
8
8
  var _l7Core = require("@antv/l7-core");
9
- /**
10
- * Attribute Layout Location in Shader
11
- */
12
- const COMMON_ATTRIBUTE_LOCATION = exports.COMMON_ATTRIBUTE_LOCATION = {
13
- // common attribute in RegisterStyleAttributePlugin
14
- POSITION: 0,
15
- // low part for double precision POSITION attribute
16
- POSITION_64LOW: 1,
17
- COLOR: 2,
18
- PICKING_COLOR: 3,
19
- // common style attribute
20
- STROKE: 4,
21
- OPACITY: 5,
22
- OFFSETS: 6,
23
- ROTATION: 7,
24
- // last index
25
- MAX: 8
26
- };
9
+ let ShaderLocation = exports.ShaderLocation = /*#__PURE__*/function (ShaderLocation) {
10
+ ShaderLocation[ShaderLocation["POSITION"] = 0] = "POSITION";
11
+ ShaderLocation[ShaderLocation["COLOR"] = 1] = "COLOR";
12
+ ShaderLocation[ShaderLocation["VERTEX_ID"] = 2] = "VERTEX_ID";
13
+ ShaderLocation[ShaderLocation["PICKING_COLOR"] = 3] = "PICKING_COLOR";
14
+ ShaderLocation[ShaderLocation["STROKE"] = 4] = "STROKE";
15
+ ShaderLocation[ShaderLocation["OPACITY"] = 5] = "OPACITY";
16
+ ShaderLocation[ShaderLocation["OFFSETS"] = 6] = "OFFSETS";
17
+ ShaderLocation[ShaderLocation["ROTATION"] = 7] = "ROTATION";
18
+ ShaderLocation[ShaderLocation["EXTRUSION_BASE"] = 8] = "EXTRUSION_BASE";
19
+ ShaderLocation[ShaderLocation["SIZE"] = 9] = "SIZE";
20
+ ShaderLocation[ShaderLocation["SHAPE"] = 10] = "SHAPE";
21
+ ShaderLocation[ShaderLocation["EXTRUDE"] = 11] = "EXTRUDE";
22
+ ShaderLocation[ShaderLocation["MAX"] = 12] = "MAX";
23
+ ShaderLocation[ShaderLocation["NORMAL"] = 13] = "NORMAL";
24
+ ShaderLocation[ShaderLocation["UV"] = 14] = "UV";
25
+ ShaderLocation[ShaderLocation["LINEAR"] = 15] = "LINEAR";
26
+ return ShaderLocation;
27
+ }({}); // Polygon Linear
27
28
  function getCommonStyleAttributeOptions(name) {
28
29
  switch (name) {
29
30
  // // roate
@@ -33,7 +34,7 @@ function getCommonStyleAttributeOptions(name) {
33
34
  type: _l7Core.AttributeType.Attribute,
34
35
  descriptor: {
35
36
  name: 'a_Rotation',
36
- shaderLocation: COMMON_ATTRIBUTE_LOCATION.ROTATION,
37
+ shaderLocation: ShaderLocation.ROTATION,
37
38
  buffer: {
38
39
  usage: _l7Core.gl.DYNAMIC_DRAW,
39
40
  data: [],
@@ -54,7 +55,7 @@ function getCommonStyleAttributeOptions(name) {
54
55
  type: _l7Core.AttributeType.Attribute,
55
56
  descriptor: {
56
57
  name: 'a_Stroke',
57
- shaderLocation: COMMON_ATTRIBUTE_LOCATION.STROKE,
58
+ shaderLocation: ShaderLocation.STROKE,
58
59
  buffer: {
59
60
  // give the WebGL driver a hint that this buffer may change
60
61
  usage: _l7Core.gl.DYNAMIC_DRAW,
@@ -76,7 +77,7 @@ function getCommonStyleAttributeOptions(name) {
76
77
  type: _l7Core.AttributeType.Attribute,
77
78
  descriptor: {
78
79
  name: 'a_Opacity',
79
- shaderLocation: COMMON_ATTRIBUTE_LOCATION.OPACITY,
80
+ shaderLocation: ShaderLocation.OPACITY,
80
81
  buffer: {
81
82
  // give the WebGL driver a hint that this buffer may change
82
83
  usage: _l7Core.gl.STATIC_DRAW,
@@ -92,13 +93,35 @@ function getCommonStyleAttributeOptions(name) {
92
93
  }
93
94
  }
94
95
  };
96
+ case 'extrusionBase':
97
+ return {
98
+ name: 'extrusionBase',
99
+ type: _l7Core.AttributeType.Attribute,
100
+ descriptor: {
101
+ name: 'a_ExtrusionBase',
102
+ shaderLocation: ShaderLocation.EXTRUSION_BASE,
103
+ buffer: {
104
+ // give the WebGL driver a hint that this buffer may change
105
+ usage: _l7Core.gl.STATIC_DRAW,
106
+ data: [],
107
+ type: _l7Core.gl.FLOAT
108
+ },
109
+ size: 1,
110
+ update: feature => {
111
+ const {
112
+ extrusionBase: op = 0
113
+ } = feature;
114
+ return [op];
115
+ }
116
+ }
117
+ };
95
118
  case 'offsets':
96
119
  return {
97
120
  name: 'offsets',
98
121
  type: _l7Core.AttributeType.Attribute,
99
122
  descriptor: {
100
123
  name: 'a_Offsets',
101
- shaderLocation: COMMON_ATTRIBUTE_LOCATION.OFFSETS,
124
+ shaderLocation: ShaderLocation.OFFSETS,
102
125
  buffer: {
103
126
  // give the WebGL driver a hint that this buffer may change
104
127
  usage: _l7Core.gl.STATIC_DRAW,
@@ -114,6 +137,28 @@ function getCommonStyleAttributeOptions(name) {
114
137
  }
115
138
  }
116
139
  };
140
+ case 'thetaOffset':
141
+ return {
142
+ name: 'thetaOffset',
143
+ type: _l7Core.AttributeType.Attribute,
144
+ descriptor: {
145
+ name: 'a_ThetaOffset',
146
+ shaderLocation: 15,
147
+ buffer: {
148
+ // give the WebGL driver a hint that this buffer may change
149
+ usage: _l7Core.gl.STATIC_DRAW,
150
+ data: [],
151
+ type: _l7Core.gl.FLOAT
152
+ },
153
+ size: 1,
154
+ update: feature => {
155
+ const {
156
+ thetaOffset: op = 1
157
+ } = feature;
158
+ return [op];
159
+ }
160
+ }
161
+ };
117
162
  default:
118
163
  return undefined;
119
164
  }
@@ -103,7 +103,9 @@ function PointImageTriangulation(feature) {
103
103
  */
104
104
  function LineTriangulation(feature) {
105
105
  const {
106
- coordinates
106
+ coordinates,
107
+ originCoordinates,
108
+ version
107
109
  } = feature;
108
110
  // let path = coordinates as number[][][] | number[][];
109
111
  // if (!Array.isArray(path[0][0])) {
@@ -114,13 +116,32 @@ function LineTriangulation(feature) {
114
116
  dash: true,
115
117
  join: 'bevel'
116
118
  });
117
- let path = coordinates;
118
- if (path[0] && !Array.isArray(path[0][0])) {
119
- path = [coordinates];
119
+ if (version === 'GAODE2.x') {
120
+ // 处理高德2.0几何体构建
121
+ let path1 = coordinates; // 计算位置
122
+ if (!Array.isArray(path1[0][0])) {
123
+ path1 = [coordinates];
124
+ }
125
+ let path2 = originCoordinates; // 计算法线
126
+ if (!Array.isArray(path2[0][0])) {
127
+ path2 = [originCoordinates];
128
+ }
129
+ for (let i = 0; i < path1.length; i++) {
130
+ // 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置
131
+ const item1 = path1[i];
132
+ const item2 = path2[i];
133
+ line.extrude_gaode2(item1, item2);
134
+ }
135
+ } else {
136
+ // 处理非高德2.0的几何体构建
137
+ let path = coordinates;
138
+ if (path[0] && !Array.isArray(path[0][0])) {
139
+ path = [coordinates];
140
+ }
141
+ path.forEach(item => {
142
+ line.extrude(item);
143
+ });
120
144
  }
121
- path.forEach(item => {
122
- line.extrude(item);
123
- });
124
145
  const linebuffer = line.complex;
125
146
  return {
126
147
  vertices: linebuffer.positions,
@@ -182,7 +203,8 @@ function FlowLineFillTriangulation(feature) {
182
203
  }
183
204
  function SimpleLineTriangulation(feature) {
184
205
  const {
185
- coordinates
206
+ coordinates,
207
+ originCoordinates
186
208
  } = feature;
187
209
  const pos = [];
188
210
  if (!Array.isArray(coordinates[0])) {
@@ -197,7 +219,7 @@ function SimpleLineTriangulation(feature) {
197
219
  const {
198
220
  results,
199
221
  totalDistance
200
- } = getSimpleLineVertices(coordinates);
222
+ } = getSimpleLineVertices(coordinates, originCoordinates);
201
223
  results.map(point => {
202
224
  pos.push(point[0], point[1], point[2], point[3], 0, totalDistance);
203
225
  });
@@ -249,11 +271,15 @@ function pushDis(point, n) {
249
271
  }
250
272
  return point;
251
273
  }
252
- function getSimpleLineVertices(coordinates) {
274
+ function getSimpleLineVertices(coordinates, originCoordinates) {
253
275
  let points = coordinates;
276
+ //除了amap2.0以外 coordinates就是经纬度数据
277
+ let originPoints = originCoordinates || coordinates;
254
278
  if (Array.isArray(points) && Array.isArray(points[0]) && Array.isArray(points[0][0])) {
255
279
  // @ts-ignore
256
- points = coordinates.flat();
280
+ points = originCoordinates.flat();
281
+ // @ts-ignore
282
+ originPoints = originCoordinates.flat();
257
283
  }
258
284
  //修改计算距离的方式,与普通线的计算方式保持一致 edit by huyang 20231214
259
285
  let distance = 0;
@@ -267,13 +293,13 @@ function getSimpleLineVertices(coordinates) {
267
293
  const point = pushDis(points[0], distance);
268
294
  results.push(point);
269
295
  for (let i = 1; i < points.length - 1; i++) {
270
- const subDistance = lineSegmentDistance((0, _l7Utils.aProjectFlat)(points[i - 1]), (0, _l7Utils.aProjectFlat)(points[i]));
296
+ const subDistance = lineSegmentDistance((0, _l7Utils.aProjectFlat)(originPoints[i - 1]), (0, _l7Utils.aProjectFlat)(originPoints[i]));
271
297
  distance += subDistance;
272
298
  const mulPoint = pushDis(points[i], distance);
273
299
  results.push(mulPoint);
274
300
  results.push(mulPoint);
275
301
  }
276
- const pointDistance = lineSegmentDistance((0, _l7Utils.aProjectFlat)(points[points.length - 2]), (0, _l7Utils.aProjectFlat)(points[points.length - 1]));
302
+ const pointDistance = lineSegmentDistance((0, _l7Utils.aProjectFlat)(originPoints[originPoints.length - 2]), (0, _l7Utils.aProjectFlat)(originPoints[originPoints.length - 1]));
277
303
  distance += pointDistance;
278
304
  results.push(pushDis(points[points.length - 1], distance));
279
305
  return {
@@ -1,21 +1,6 @@
1
1
  import type { IModel } from '@antv/l7-core';
2
2
  import BaseModel from '../../core/BaseModel';
3
3
  export default class EarthAtomSphereModel extends BaseModel {
4
- protected get attributeLocation(): {
5
- readonly POSITION: 0;
6
- readonly POSITION_64LOW: 1;
7
- readonly COLOR: 2;
8
- readonly PICKING_COLOR: 3;
9
- readonly STROKE: 4;
10
- readonly OPACITY: 5;
11
- readonly OFFSETS: 6;
12
- readonly ROTATION: 7;
13
- readonly MAX: 8;
14
- } & Record<string, number> & {
15
- MAX: 8;
16
- NORMAL: number;
17
- UV: number;
18
- };
19
4
  protected getCommonUniformsInfo(): {
20
5
  uniformsArray: number[];
21
6
  uniformsLength: number;
@@ -9,22 +9,16 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
9
9
  var _l7Core = require("@antv/l7-core");
10
10
  var _l7Utils = require("@antv/l7-utils");
11
11
  var _BaseModel = _interopRequireDefault(require("../../core/BaseModel"));
12
+ var _CommonStyleAttribute = require("../../core/CommonStyleAttribute");
12
13
  var _triangulation = require("../../core/triangulation");
13
14
  /* babel-plugin-inline-import '../shaders/atmosphere/atmosphere_frag.glsl' */
14
15
  const atmoSphereFrag = "\nlayout(std140) uniform commonUniforms {\n float u_opacity;\n};\nin vec3 vVertexNormal;\nin float v_offset;\nin vec4 v_Color;\n\n#pragma include \"scene_uniforms\"\nout vec4 outputColor;\nvoid main() {\n \n \n // float intensity = pow(0.5 + dot(normalize(vVertexNormal), normalize(u_CameraPosition)), 3.0);\n float intensity = pow(v_offset + dot(normalize(vVertexNormal), normalize(u_CameraPosition)), 3.0);\n // \u53BB\u9664\u80CC\u9762\n if(intensity > 1.0) intensity = 0.0;\n\n outputColor = vec4(v_Color.rgb, v_Color.a * intensity * u_opacity);\n}\n";
15
16
  /* babel-plugin-inline-import '../shaders/atmosphere/atmosphere_vert.glsl' */
16
- const atmoSphereVert = "layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;\nlayout(location = ATTRIBUTE_LOCATION_COLOR) vec4 a_Color;\nlayout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;\nlayout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv;\n\nlayout(std140) uniform commonUniforms {\n float u_opacity;\n};\n\n#pragma include \"scene_uniforms\"\nout vec3 vVertexNormal;\nout vec4 v_Color;\nout float v_offset;\n\nvoid main() {\n float EARTH_RADIUS = 100.0;\n\n v_Color = a_Color;\n\n v_offset = min(((length(u_CameraPosition) - EARTH_RADIUS)/600.0) * 0.5 + 0.4, 1.0);\n vVertexNormal = a_Normal;\n\n gl_Position = u_ViewProjectionMatrix * u_ModelMatrix * vec4(a_Position, 1.0);\n}\n";
17
+ const atmoSphereVert = "layout(location = 0) in vec3 a_Position;\nlayout(location = 1) vec4 a_Color;\nlayout(location = 13) in vec3 a_Normal;\nlayout(location = 14) in vec2 a_Uv;\nlayout(std140) uniform commonUniforms {\n float u_opacity;\n};\n#pragma include \"scene_uniforms\"\nout vec3 vVertexNormal;\nout vec4 v_Color;\nout float v_offset;\n\nvoid main() {\n float EARTH_RADIUS = 100.0;\n \n v_Color = a_Color;\n\n v_offset = min(((length(u_CameraPosition) - EARTH_RADIUS)/600.0) * 0.5 + 0.4, 1.0);\n vVertexNormal = a_Normal;\n\n gl_Position = u_ViewProjectionMatrix * u_ModelMatrix * vec4(a_Position, 1.0);\n}\n";
17
18
  const {
18
19
  isNumber
19
20
  } = _l7Utils.lodashUtil;
20
21
  class EarthAtomSphereModel extends _BaseModel.default {
21
- get attributeLocation() {
22
- return Object.assign(super.attributeLocation, {
23
- MAX: super.attributeLocation.MAX,
24
- NORMAL: 9,
25
- UV: 10
26
- });
27
- }
28
22
  getCommonUniformsInfo() {
29
23
  const {
30
24
  opacity = 1
@@ -54,7 +48,6 @@ class EarthAtomSphereModel extends _BaseModel.default {
54
48
  moduleName: 'earthAtmoSphere',
55
49
  vertexShader: atmoSphereVert,
56
50
  fragmentShader: atmoSphereFrag,
57
- defines: _this2.getDefines(),
58
51
  triangulation: _triangulation.earthTriangulation,
59
52
  depth: {
60
53
  enable: false
@@ -66,31 +59,32 @@ class EarthAtomSphereModel extends _BaseModel.default {
66
59
  }
67
60
  registerBuiltinAttributes() {
68
61
  // point layer size;
69
- // this.styleAttributeService.registerStyleAttribute({
70
- // name: 'size',
71
- // type: AttributeType.Attribute,
72
- // descriptor: {
73
- // name: 'a_Size',
74
- // shaderLocation: this.attributeLocation.SIZE,
75
- // buffer: {
76
- // usage: gl.DYNAMIC_DRAW,
77
- // data: [],
78
- // type: gl.FLOAT,
79
- // },
80
- // size: 1,
81
- // update: (feature: IEncodeFeature) => {
82
- // const { size = 1 } = feature;
83
- // return Array.isArray(size) ? [size[0]] : [size as number];
84
- // },
85
- // },
86
- // });
87
-
62
+ this.styleAttributeService.registerStyleAttribute({
63
+ name: 'size',
64
+ type: _l7Core.AttributeType.Attribute,
65
+ descriptor: {
66
+ name: 'a_Size',
67
+ shaderLocation: _CommonStyleAttribute.ShaderLocation.SIZE,
68
+ buffer: {
69
+ usage: _l7Core.gl.DYNAMIC_DRAW,
70
+ data: [],
71
+ type: _l7Core.gl.FLOAT
72
+ },
73
+ size: 1,
74
+ update: feature => {
75
+ const {
76
+ size = 1
77
+ } = feature;
78
+ return Array.isArray(size) ? [size[0]] : [size];
79
+ }
80
+ }
81
+ });
88
82
  this.styleAttributeService.registerStyleAttribute({
89
83
  name: 'normal',
90
84
  type: _l7Core.AttributeType.Attribute,
91
85
  descriptor: {
92
86
  name: 'a_Normal',
93
- shaderLocation: this.attributeLocation.NORMAL,
87
+ shaderLocation: _CommonStyleAttribute.ShaderLocation.NORMAL,
94
88
  buffer: {
95
89
  usage: _l7Core.gl.STATIC_DRAW,
96
90
  data: [],
@@ -107,7 +101,7 @@ class EarthAtomSphereModel extends _BaseModel.default {
107
101
  type: _l7Core.AttributeType.Attribute,
108
102
  descriptor: {
109
103
  name: 'a_Uv',
110
- shaderLocation: this.attributeLocation.UV,
104
+ shaderLocation: _CommonStyleAttribute.ShaderLocation.UV,
111
105
  buffer: {
112
106
  usage: _l7Core.gl.DYNAMIC_DRAW,
113
107
  data: [],
@@ -1,21 +1,6 @@
1
1
  import type { IModel, ITexture2D } from '@antv/l7-core';
2
2
  import BaseModel from '../../core/BaseModel';
3
3
  export default class BaseEarthModel extends BaseModel {
4
- protected get attributeLocation(): {
5
- readonly POSITION: 0;
6
- readonly POSITION_64LOW: 1;
7
- readonly COLOR: 2;
8
- readonly PICKING_COLOR: 3;
9
- readonly STROKE: 4;
10
- readonly OPACITY: 5;
11
- readonly OFFSETS: 6;
12
- readonly ROTATION: 7;
13
- readonly MAX: 8;
14
- } & Record<string, number> & {
15
- MAX: 8;
16
- NORMAL: number;
17
- UV: number;
18
- };
19
4
  protected texture: ITexture2D;
20
5
  private earthTime;
21
6
  private sunX;
@@ -10,10 +10,11 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
10
10
  var _l7Core = require("@antv/l7-core");
11
11
  var _BaseModel = _interopRequireDefault(require("../../core/BaseModel"));
12
12
  var _triangulation = require("../../core/triangulation");
13
+ var _CommonStyleAttribute = require("../../core/CommonStyleAttribute");
13
14
  /* babel-plugin-inline-import '../shaders/base/base_frag.glsl' */
14
15
  const baseFrag = "uniform sampler2D u_texture;\n\nin vec2 v_texCoord;\nin float v_lightWeight;\nout vec4 outputColor;\n\nvoid main() {\n vec4 color = texture(SAMPLER_2D(u_texture),vec2(v_texCoord.x,v_texCoord.y));\n color.xyz = color.xyz * v_lightWeight;\n outputColor = color;\n}\n";
15
16
  /* babel-plugin-inline-import '../shaders/base/base_vert.glsl' */
16
- const baseVert = "// attribute vec4 a_Color;\nlayout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;\nlayout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;\nlayout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv;\n\n// attribute vec2 a_Extrude;\n// attribute float a_Size;\n// attribute float a_Shape;\n\nlayout(std140) uniform commonUniforms {\n\tvec4 u_sunLight: [1.0, -10.5, 12.0,0.0];\n\tfloat u_ambientRatio : 0.5;\n\tfloat u_diffuseRatio : 0.3;\n\tfloat u_specularRatio : 0.2;\n};\n\n#pragma include \"scene_uniforms\"\n\nout vec2 v_texCoord;\nout float v_lightWeight;\n\nfloat calc_lighting(vec4 pos) {\n\n\tvec3 worldPos = vec3(pos * u_ModelMatrix);\n\n\tvec3 worldNormal = a_Normal;\n\n\t// cal light weight\n\tvec3 viewDir = normalize(u_CameraPosition - worldPos);\n\n\tvec3 lightDir = normalize(u_sunLight.xyz);\n\n\tvec3 halfDir = normalize(viewDir+lightDir);\n\t// lambert\n\tfloat lambert = dot(worldNormal, lightDir);\n\t// specular\n\tfloat specular = pow(max(0.0, dot(worldNormal, halfDir)), 32.0);\n\t//sum to light weight\n\tfloat lightWeight = u_ambientRatio + u_diffuseRatio * lambert + u_specularRatio * specular;\n\n\treturn lightWeight;\n}\n\nvoid main() {\n\n\tv_texCoord = a_Uv;\n\n\tfloat lightWeight = calc_lighting(vec4(a_Position, 1.0));\n\tv_lightWeight = lightWeight;\n\n\tgl_Position = u_ViewProjectionMatrix * u_ModelMatrix * vec4(a_Position, 1.0);\n}\n";
17
+ const baseVert = "// attribute vec4 a_Color;\nlayout(location = 0) in vec3 a_Position;\nlayout(location = 13) in vec3 a_Normal;\nlayout(location = 14) in vec2 a_Uv;\n\n// attribute vec2 a_Extrude;\n// attribute float a_Size;\n// attribute float a_Shape;\n\nlayout(std140) uniform commonUniforms {\n\tvec4 u_sunLight: [1.0, -10.5, 12.0,0.0];\n\tfloat u_ambientRatio : 0.5;\n\tfloat u_diffuseRatio : 0.3;\n\tfloat u_specularRatio : 0.2;\n};\n\n#pragma include \"scene_uniforms\"\n\nout vec2 v_texCoord;\nout float v_lightWeight;\n\nfloat calc_lighting(vec4 pos) {\n\n\tvec3 worldPos = vec3(pos * u_ModelMatrix);\n\n\tvec3 worldNormal = a_Normal;\n\n\t// cal light weight\n\tvec3 viewDir = normalize(u_CameraPosition - worldPos);\n\n\tvec3 lightDir = normalize(u_sunLight.xyz);\n\n\tvec3 halfDir = normalize(viewDir+lightDir);\n\t// lambert\n\tfloat lambert = dot(worldNormal, lightDir);\n\t// specular\n\tfloat specular = pow(max(0.0, dot(worldNormal, halfDir)), 32.0);\n\t//sum to light weight\n\tfloat lightWeight = u_ambientRatio + u_diffuseRatio * lambert + u_specularRatio * specular;\n\n\treturn lightWeight;\n}\n\nvoid main() {\n\n\tv_texCoord = a_Uv;\n\n\tfloat lightWeight = calc_lighting(vec4(a_Position, 1.0));\n\tv_lightWeight = lightWeight;\n\n\tgl_Position = u_ViewProjectionMatrix * u_ModelMatrix * vec4(a_Position, 1.0);\n}\n";
17
18
  class BaseEarthModel extends _BaseModel.default {
18
19
  constructor(...args) {
19
20
  super(...args);
@@ -25,13 +26,6 @@ class BaseEarthModel extends _BaseModel.default {
25
26
  (0, _defineProperty2.default)(this, "sunZ", 1000);
26
27
  (0, _defineProperty2.default)(this, "sunRadius", Math.sqrt(this.sunX * this.sunX + this.sunY * this.sunY + this.sunZ * this.sunZ));
27
28
  }
28
- get attributeLocation() {
29
- return Object.assign(super.attributeLocation, {
30
- MAX: super.attributeLocation.MAX,
31
- NORMAL: 9,
32
- UV: 10
33
- });
34
- }
35
29
  getCommonUniformsInfo() {
36
30
  const {
37
31
  animateOption,
@@ -110,7 +104,6 @@ class BaseEarthModel extends _BaseModel.default {
110
104
  moduleName: 'earthBase',
111
105
  vertexShader: baseVert,
112
106
  fragmentShader: baseFrag,
113
- defines: _this2.getDefines(),
114
107
  triangulation: _triangulation.earthTriangulation,
115
108
  depth: {
116
109
  enable: true
@@ -121,31 +114,32 @@ class BaseEarthModel extends _BaseModel.default {
121
114
  })();
122
115
  }
123
116
  registerBuiltinAttributes() {
124
- // this.styleAttributeService.registerStyleAttribute({
125
- // name: 'size',
126
- // type: AttributeType.Attribute,
127
- // descriptor: {
128
- // name: 'a_Size',
129
- // shaderLocation: this.attributeLocation.SIZE,
130
- // buffer: {
131
- // usage: gl.DYNAMIC_DRAW,
132
- // data: [],
133
- // type: gl.FLOAT,
134
- // },
135
- // size: 1,
136
- // update: (feature: IEncodeFeature) => {
137
- // const { size = 1 } = feature;
138
- // return Array.isArray(size) ? [size[0]] : [size as number];
139
- // },
140
- // },
141
- // });
142
-
117
+ this.styleAttributeService.registerStyleAttribute({
118
+ name: 'size',
119
+ type: _l7Core.AttributeType.Attribute,
120
+ descriptor: {
121
+ name: 'a_Size',
122
+ shaderLocation: _CommonStyleAttribute.ShaderLocation.SIZE,
123
+ buffer: {
124
+ usage: _l7Core.gl.DYNAMIC_DRAW,
125
+ data: [],
126
+ type: _l7Core.gl.FLOAT
127
+ },
128
+ size: 1,
129
+ update: feature => {
130
+ const {
131
+ size = 1
132
+ } = feature;
133
+ return Array.isArray(size) ? [size[0]] : [size];
134
+ }
135
+ }
136
+ });
143
137
  this.styleAttributeService.registerStyleAttribute({
144
138
  name: 'normal',
145
139
  type: _l7Core.AttributeType.Attribute,
146
140
  descriptor: {
147
141
  name: 'a_Normal',
148
- shaderLocation: this.attributeLocation.NORMAL,
142
+ shaderLocation: _CommonStyleAttribute.ShaderLocation.NORMAL,
149
143
  buffer: {
150
144
  usage: _l7Core.gl.STATIC_DRAW,
151
145
  data: [],
@@ -162,7 +156,7 @@ class BaseEarthModel extends _BaseModel.default {
162
156
  type: _l7Core.AttributeType.Attribute,
163
157
  descriptor: {
164
158
  name: 'a_Uv',
165
- shaderLocation: this.attributeLocation.UV,
159
+ shaderLocation: _CommonStyleAttribute.ShaderLocation.UV,
166
160
  buffer: {
167
161
  // give the WebGL driver a hint that this buffer may change
168
162
  usage: _l7Core.gl.DYNAMIC_DRAW,
@@ -1,21 +1,6 @@
1
1
  import type { IModel } from '@antv/l7-core';
2
2
  import BaseModel from '../../core/BaseModel';
3
3
  export default class EarthBloomSphereModel extends BaseModel {
4
- protected get attributeLocation(): {
5
- readonly POSITION: 0;
6
- readonly POSITION_64LOW: 1;
7
- readonly COLOR: 2;
8
- readonly PICKING_COLOR: 3;
9
- readonly STROKE: 4;
10
- readonly OPACITY: 5;
11
- readonly OFFSETS: 6;
12
- readonly ROTATION: 7;
13
- readonly MAX: 8;
14
- } & Record<string, number> & {
15
- MAX: 8;
16
- NORMAL: number;
17
- UV: number;
18
- };
19
4
  protected getCommonUniformsInfo(): {
20
5
  uniformsArray: number[];
21
6
  uniformsLength: number;
@@ -9,22 +9,16 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
9
9
  var _l7Core = require("@antv/l7-core");
10
10
  var _l7Utils = require("@antv/l7-utils");
11
11
  var _BaseModel = _interopRequireDefault(require("../../core/BaseModel"));
12
+ var _CommonStyleAttribute = require("../../core/CommonStyleAttribute");
12
13
  var _triangulation = require("../../core/triangulation");
13
14
  /* babel-plugin-inline-import '../shaders/bloomshpere/bloomsphere_frag.glsl' */
14
15
  const bloomSphereFrag = "\nin vec3 vVertexNormal;\nin vec4 v_Color;\n\nlayout(std140) uniform commonUniforms {\n float u_opacity;\n};\nout vec4 outputColor;\n#pragma include \"scene_uniforms\"\nvoid main() {\n float intensity = - dot(normalize(vVertexNormal), normalize(u_CameraPosition));\n // \u53BB\u9664\u80CC\u9762\n if(intensity > 1.0) intensity = 0.0;\n\n outputColor = vec4(v_Color.rgb, v_Color.a * intensity * u_opacity);\n}\n";
15
16
  /* babel-plugin-inline-import '../shaders/bloomshpere/bloomsphere_vert.glsl' */
16
- const bloomSphereVert = "layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;\nlayout(location = ATTRIBUTE_LOCATION_COLOR) vec4 a_Color;\nlayout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;\nlayout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv;\n\nlayout(std140) uniform commonUniforms {\n float u_opacity;\n};\n#pragma include \"scene_uniforms\"\n\nout vec3 vVertexNormal;\nout vec4 v_Color;\n\nvoid main() {\n v_Color = a_Color;\n\n vVertexNormal = a_Normal;\n\n gl_Position = u_ViewProjectionMatrix * u_ModelMatrix * vec4(a_Position, 1.0);\n}\n";
17
+ const bloomSphereVert = "layout(location = 0) in vec3 a_Position;\nlayout(location = 1) vec4 a_Color;\nlayout(location = 13) in vec3 a_Normal;\nlayout(location = 14) in vec2 a_Uv;\nlayout(std140) uniform commonUniforms {\n float u_opacity;\n};\n#pragma include \"scene_uniforms\"\n\nout vec3 vVertexNormal;\nout vec4 v_Color;\n\nvoid main() {\n v_Color = a_Color;\n\n vVertexNormal = a_Normal;\n\n gl_Position = u_ViewProjectionMatrix * u_ModelMatrix * vec4(a_Position, 1.0);\n}\n";
17
18
  const {
18
19
  isNumber
19
20
  } = _l7Utils.lodashUtil;
20
21
  class EarthBloomSphereModel extends _BaseModel.default {
21
- get attributeLocation() {
22
- return Object.assign(super.attributeLocation, {
23
- MAX: super.attributeLocation.MAX,
24
- NORMAL: 9,
25
- UV: 10
26
- });
27
- }
28
22
  getCommonUniformsInfo() {
29
23
  const {
30
24
  opacity = 1
@@ -54,7 +48,6 @@ class EarthBloomSphereModel extends _BaseModel.default {
54
48
  moduleName: 'earthBloom',
55
49
  vertexShader: bloomSphereVert,
56
50
  fragmentShader: bloomSphereFrag,
57
- defines: _this2.getDefines(),
58
51
  triangulation: _triangulation.earthOuterTriangulation,
59
52
  depth: {
60
53
  enable: false
@@ -65,31 +58,32 @@ class EarthBloomSphereModel extends _BaseModel.default {
65
58
  })();
66
59
  }
67
60
  registerBuiltinAttributes() {
68
- // this.styleAttributeService.registerStyleAttribute({
69
- // name: 'size',
70
- // type: AttributeType.Attribute,
71
- // descriptor: {
72
- // name: 'a_Size',
73
- // shaderLocation: this.attributeLocation.SIZE,
74
- // buffer: {
75
- // usage: gl.DYNAMIC_DRAW,
76
- // data: [],
77
- // type: gl.FLOAT,
78
- // },
79
- // size: 1,
80
- // update: (feature: IEncodeFeature) => {
81
- // const { size = 1 } = feature;
82
- // return Array.isArray(size) ? [size[0]] : [size as number];
83
- // },
84
- // },
85
- // });
86
-
61
+ this.styleAttributeService.registerStyleAttribute({
62
+ name: 'size',
63
+ type: _l7Core.AttributeType.Attribute,
64
+ descriptor: {
65
+ name: 'a_Size',
66
+ shaderLocation: _CommonStyleAttribute.ShaderLocation.SIZE,
67
+ buffer: {
68
+ usage: _l7Core.gl.DYNAMIC_DRAW,
69
+ data: [],
70
+ type: _l7Core.gl.FLOAT
71
+ },
72
+ size: 1,
73
+ update: feature => {
74
+ const {
75
+ size = 1
76
+ } = feature;
77
+ return Array.isArray(size) ? [size[0]] : [size];
78
+ }
79
+ }
80
+ });
87
81
  this.styleAttributeService.registerStyleAttribute({
88
82
  name: 'normal',
89
83
  type: _l7Core.AttributeType.Attribute,
90
84
  descriptor: {
91
85
  name: 'a_Normal',
92
- shaderLocation: this.attributeLocation.NORMAL,
86
+ shaderLocation: _CommonStyleAttribute.ShaderLocation.NORMAL,
93
87
  buffer: {
94
88
  usage: _l7Core.gl.STATIC_DRAW,
95
89
  data: [],
@@ -106,7 +100,7 @@ class EarthBloomSphereModel extends _BaseModel.default {
106
100
  type: _l7Core.AttributeType.Attribute,
107
101
  descriptor: {
108
102
  name: 'a_Uv',
109
- shaderLocation: this.attributeLocation.UV,
103
+ shaderLocation: _CommonStyleAttribute.ShaderLocation.UV,
110
104
  buffer: {
111
105
  usage: _l7Core.gl.DYNAMIC_DRAW,
112
106
  data: [],
@@ -1,12 +1,10 @@
1
- layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
2
- layout(location = ATTRIBUTE_LOCATION_COLOR) vec4 a_Color;
3
- layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;
4
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv;
5
-
1
+ layout(location = 0) in vec3 a_Position;
2
+ layout(location = 1) vec4 a_Color;
3
+ layout(location = 13) in vec3 a_Normal;
4
+ layout(location = 14) in vec2 a_Uv;
6
5
  layout(std140) uniform commonUniforms {
7
6
  float u_opacity;
8
7
  };
9
-
10
8
  #pragma include "scene_uniforms"
11
9
  out vec3 vVertexNormal;
12
10
  out vec4 v_Color;
@@ -14,7 +12,7 @@ out float v_offset;
14
12
 
15
13
  void main() {
16
14
  float EARTH_RADIUS = 100.0;
17
-
15
+
18
16
  v_Color = a_Color;
19
17
 
20
18
  v_offset = min(((length(u_CameraPosition) - EARTH_RADIUS)/600.0) * 0.5 + 0.4, 1.0);
@@ -1,7 +1,7 @@
1
1
  // attribute vec4 a_Color;
2
- layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
3
- layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;
4
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv;
2
+ layout(location = 0) in vec3 a_Position;
3
+ layout(location = 13) in vec3 a_Normal;
4
+ layout(location = 14) in vec2 a_Uv;
5
5
 
6
6
  // attribute vec2 a_Extrude;
7
7
  // attribute float a_Size;
@@ -1,8 +1,7 @@
1
- layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position;
2
- layout(location = ATTRIBUTE_LOCATION_COLOR) vec4 a_Color;
3
- layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal;
4
- layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv;
5
-
1
+ layout(location = 0) in vec3 a_Position;
2
+ layout(location = 1) vec4 a_Color;
3
+ layout(location = 13) in vec3 a_Normal;
4
+ layout(location = 14) in vec2 a_Uv;
6
5
  layout(std140) uniform commonUniforms {
7
6
  float u_opacity;
8
7
  };