@antv/l7-layers 2.6.7 → 2.6.11

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 (55) hide show
  1. package/es/core/BaseLayer.d.ts +1 -1
  2. package/es/core/BaseLayer.js +2 -2
  3. package/es/core/BaseLayer.js.map +1 -1
  4. package/es/core/BaseModel.d.ts +4 -0
  5. package/es/core/BaseModel.js +19 -2
  6. package/es/core/BaseModel.js.map +1 -1
  7. package/es/index.d.ts +2 -1
  8. package/es/index.js +2 -1
  9. package/es/index.js.map +1 -1
  10. package/es/line/models/arc.js +6 -4
  11. package/es/line/models/arc.js.map +1 -1
  12. package/es/utils/dataMappingStyle.d.ts +1 -0
  13. package/es/utils/dataMappingStyle.js +4 -0
  14. package/es/utils/dataMappingStyle.js.map +1 -1
  15. package/es/wind/index.d.ts +36 -0
  16. package/es/wind/index.js +91 -0
  17. package/es/wind/index.js.map +1 -0
  18. package/es/wind/models/index.d.ts +5 -0
  19. package/es/wind/models/index.js +6 -0
  20. package/es/wind/models/index.js.map +1 -0
  21. package/es/wind/models/utils.d.ts +19 -0
  22. package/es/wind/models/utils.js +201 -0
  23. package/es/wind/models/utils.js.map +1 -0
  24. package/es/wind/models/wind.d.ts +31 -0
  25. package/es/wind/models/wind.js +298 -0
  26. package/es/wind/models/wind.js.map +1 -0
  27. package/es/wind/models/windRender.d.ts +104 -0
  28. package/es/wind/models/windRender.js +346 -0
  29. package/es/wind/models/windRender.js.map +1 -0
  30. package/es/wind/models/windShader.d.ts +12 -0
  31. package/es/wind/models/windShader.js +7 -0
  32. package/es/wind/models/windShader.js.map +1 -0
  33. package/lib/core/BaseLayer.js +2 -2
  34. package/lib/core/BaseLayer.js.map +1 -1
  35. package/lib/core/BaseModel.js +19 -2
  36. package/lib/core/BaseModel.js.map +1 -1
  37. package/lib/index.js +8 -0
  38. package/lib/index.js.map +1 -1
  39. package/lib/line/models/arc.js +6 -4
  40. package/lib/line/models/arc.js.map +1 -1
  41. package/lib/utils/dataMappingStyle.js +4 -0
  42. package/lib/utils/dataMappingStyle.js.map +1 -1
  43. package/lib/wind/index.js +104 -0
  44. package/lib/wind/index.js.map +1 -0
  45. package/lib/wind/models/index.js +17 -0
  46. package/lib/wind/models/index.js.map +1 -0
  47. package/lib/wind/models/utils.js +228 -0
  48. package/lib/wind/models/utils.js.map +1 -0
  49. package/lib/wind/models/wind.js +310 -0
  50. package/lib/wind/models/wind.js.map +1 -0
  51. package/lib/wind/models/windRender.js +340 -0
  52. package/lib/wind/models/windRender.js.map +1 -0
  53. package/lib/wind/models/windShader.js +19 -0
  54. package/lib/wind/models/windShader.js.map +1 -0
  55. package/package.json +5 -5
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/wind/models/utils.ts"],"names":["createProgram","gl","vshader","fshader","vertexShader","loadShader","VERTEX_SHADER","fragmentShader","FRAGMENT_SHADER","program","attachShader","linkProgram","linked","getProgramParameter","LINK_STATUS","error","getProgramInfoLog","console","warn","deleteProgram","deleteShader","numAttributes","ACTIVE_ATTRIBUTES","i","attribute","getActiveAttrib","name","getAttribLocation","numUniforms","ACTIVE_UNIFORMS","i$1","uniform","getActiveUniform","getUniformLocation","type","source","shader","createShader","shaderSource","compileShader","compiled","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","createTexture","filter","data","width","height","texture","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","TEXTURE_MAG_FILTER","texImage2D","RGBA","UNSIGNED_BYTE","createDataTexture","unit","activeTexture","TEXTURE0","createBuffer","buffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","bindAttriBuffer","attrName","vertices","count","attr","vertexAttribPointer","FLOAT","enableVertexAttribArray","bindAttriIndicesBuffer","indices","ELEMENT_ARRAY_BUFFER","bindUnifrom","unifromName","vec","setUnifrom","location","uniform1f","uniform2fv","uniform3fv","uniform4fv","uniform1i","uniformMatrix4fv","initFramebuffer","drawingBufferWidth","drawingBufferHeight","OFFER_SCREEN_WIDTH","OFFER_SCREEN_HEIGHT","FRAMEBUFFER","createFramebuffer","bindFramebuffer","depthbuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","renderbufferStorage","DEPTH_COMPONENT16","framebufferRenderbuffer","DEPTH_ATTACHMENT","textureSize","NEAREST","framebufferTexture2D","COLOR_ATTACHMENT0"],"mappings":"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","sourcesContent":["// @ts-nocheck\nexport function createProgram(gl, vshader, fshader) {\n // Create shader object\n const vertexShader = loadShader(gl, gl.VERTEX_SHADER, vshader); // 创建顶点着色器对象\n const fragmentShader = loadShader(gl, gl.FRAGMENT_SHADER, fshader); // 创建片元着色器对象\n if (!vertexShader || !fragmentShader) {\n return null;\n }\n\n // Create a program object\n const program = gl.createProgram(); // 创建程序对象\n if (!program) {\n return null;\n }\n\n // Attach the shader objects\n gl.attachShader(program, vertexShader); // 绑定着色器对象\n gl.attachShader(program, fragmentShader);\n\n // Link the program object\n gl.linkProgram(program); // 链接着色器对象\n\n // Check the result of linking\n const linked = gl.getProgramParameter(program, gl.LINK_STATUS); // 判断着色器对象是否链接成功\n if (!linked) {\n const error = gl.getProgramInfoLog(program);\n console.warn('Failed to link program: ' + error);\n gl.deleteProgram(program);\n gl.deleteShader(fragmentShader);\n gl.deleteShader(vertexShader);\n return null;\n }\n\n const numAttributes = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n for (let i = 0; i < numAttributes; i++) {\n const attribute = gl.getActiveAttrib(program, i);\n program[attribute.name] = gl.getAttribLocation(program, attribute.name);\n }\n const numUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n for (let i$1 = 0; i$1 < numUniforms; i$1++) {\n const uniform = gl.getActiveUniform(program, i$1);\n program[uniform.name] = gl.getUniformLocation(program, uniform.name);\n }\n\n program.vertexShader = vertexShader;\n program.fragmentShader = fragmentShader;\n\n return program;\n}\n\nexport function loadShader(gl: WebGLRenderingContext, type, source) {\n // Create shader object\n const shader = gl.createShader(type); // 生成着色器对象\n if (shader == null) {\n console.warn('unable to create shader');\n return null;\n }\n\n // Set the shader program\n gl.shaderSource(shader, source); // 载入着色器\n\n // Compile the shader\n gl.compileShader(shader); // 编译着色器代码\n\n // Check the result of compilation\n const compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); // 判断着色器对象是否生成成功\n // gl.SHADER_TYPE、gl.DELETE_STATUS、gl.COMPILE_STATUS\n if (!compiled) {\n const error = gl.getShaderInfoLog(shader);\n console.warn('Failed to compile shader: ' + error);\n gl.deleteShader(shader);\n return null;\n }\n\n return shader;\n}\n\nexport function createTexture(\n gl: WebGLRenderingContext,\n filter: any,\n data: any,\n width: number,\n height: number,\n) {\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, filter);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, filter);\n gl.texImage2D(\n gl.TEXTURE_2D,\n 0,\n gl.RGBA,\n width,\n height,\n 0,\n gl.RGBA,\n gl.UNSIGNED_BYTE,\n data,\n );\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n return texture;\n}\n\nexport function createDataTexture(\n gl: WebGLRenderingContext,\n filter: any,\n data: any,\n) {\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, filter);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, filter);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, data);\n gl.bindTexture(gl.TEXTURE_2D, null);\n return texture;\n}\n\nexport function bindTexture(gl, texture, unit) {\n gl.activeTexture(gl.TEXTURE0 + unit);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n}\n\nexport function createBuffer(gl, data) {\n const buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, data, gl.STATIC_DRAW);\n return buffer;\n}\n\nexport function bindAttriBuffer(\n gl: WebGLRenderingContext,\n attrName: string,\n vertices,\n count,\n program,\n) {\n const buffer = gl.createBuffer();\n if (!buffer) {\n console.warn('failed create vertex buffer');\n }\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer); // 将缓冲区对象绑定到目标\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW); // 向缓冲区对象中写入数据\n\n const attr = gl.getAttribLocation(program, attrName);\n gl.vertexAttribPointer(attr, count, gl.FLOAT, false, 0, 0);\n gl.enableVertexAttribArray(attr);\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n return { buffer, attr, count };\n}\n\nexport function bindAttriIndicesBuffer(\n gl: WebGLRenderingContext,\n indices: Uint8Array,\n): WebGLBuffer {\n const buffer = gl.createBuffer();\n if (!buffer) {\n console.warn('failed create vertex buffer');\n }\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW);\n return buffer;\n}\n\nexport function bindUnifrom(gl, unifromName, data, program, vec) {\n const uniform = gl.getUniformLocation(program, unifromName);\n if (uniform < 0) {\n console.warn('无法获取 uniform 变量的存储位置');\n }\n setUnifrom(gl, uniform, data, vec);\n return uniform;\n}\n\nexport function setUnifrom(gl, location, data, vec) {\n switch (vec) {\n case 'float':\n gl.uniform1f(location, data);\n break;\n case 'vec2':\n gl.uniform2fv(location, data);\n break;\n case 'vec3':\n gl.uniform3fv(location, data);\n break;\n case 'vec4':\n gl.uniform4fv(location, data);\n break;\n case 'bool':\n gl.uniform1i(location, data); // 1 - true 0 - false\n break;\n case 'sampler2d':\n break;\n case 'mat4':\n gl.uniformMatrix4fv(location, false, data);\n break;\n }\n}\n\nexport function initFramebuffer(gl) {\n const { drawingBufferWidth, drawingBufferHeight } = gl;\n\n const OFFER_SCREEN_WIDTH = drawingBufferWidth;\n const OFFER_SCREEN_HEIGHT = drawingBufferHeight;\n\n const FRAMEBUFFER = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, FRAMEBUFFER);\n const depthbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, depthbuffer);\n gl.renderbufferStorage(\n gl.RENDERBUFFER,\n gl.DEPTH_COMPONENT16,\n OFFER_SCREEN_WIDTH,\n OFFER_SCREEN_HEIGHT,\n );\n gl.framebufferRenderbuffer(\n gl.FRAMEBUFFER,\n gl.DEPTH_ATTACHMENT,\n gl.RENDERBUFFER,\n depthbuffer,\n );\n\n const texture = gl.createTexture();\n const textureSize = 1024;\n FRAMEBUFFER.texture = texture;\n FRAMEBUFFER.width = OFFER_SCREEN_WIDTH;\n FRAMEBUFFER.height = OFFER_SCREEN_HEIGHT;\n\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.texImage2D(\n gl.TEXTURE_2D,\n 0,\n gl.RGBA,\n OFFER_SCREEN_WIDTH,\n OFFER_SCREEN_HEIGHT,\n 0,\n gl.RGBA,\n gl.UNSIGNED_BYTE,\n null,\n );\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0,\n gl.TEXTURE_2D,\n texture,\n 0,\n );\n gl.bindTexture(gl.TEXTURE_2D, null);\n\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { FRAMEBUFFER, OFFER_SCREEN_WIDTH, OFFER_SCREEN_HEIGHT };\n}\n"],"file":"utils.js"}
@@ -0,0 +1,31 @@
1
+ import { IModel, IModelUniform, ITexture2D } from '@antv/l7-core';
2
+ import BaseModel from '../../core/BaseModel';
3
+ export default class WindModel extends BaseModel {
4
+ protected texture: ITexture2D;
5
+ private colorModel;
6
+ private wind;
7
+ private imageCoords;
8
+ private sizeScale;
9
+ private frequency;
10
+ render(): void;
11
+ getUninforms(): IModelUniform;
12
+ initModels(): IModel[];
13
+ getWindSize(): {
14
+ imageWidth: number;
15
+ imageHeight: number;
16
+ };
17
+ buildModels(): IModel[];
18
+ clearModels(): void;
19
+ protected getConfigSchema(): {
20
+ properties: {
21
+ opacity: {
22
+ type: string;
23
+ minimum: number;
24
+ maximum: number;
25
+ };
26
+ };
27
+ };
28
+ protected registerBuiltinAttributes(): void;
29
+ private drawWind;
30
+ private drawColorMode;
31
+ }
@@ -0,0 +1,298 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
+ import _inherits from "@babel/runtime/helpers/inherits";
5
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
+
9
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
+
11
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12
+
13
+ import { AttributeType, gl } from '@antv/l7-core';
14
+ import { FrequencyController } from '@antv/l7-utils';
15
+ import BaseModel from '../../core/BaseModel';
16
+ import { RasterImageTriangulation } from '../../core/triangulation';
17
+ var WindFrag = "precision mediump float;\nuniform float u_opacity: 1.0;\nuniform sampler2D u_texture;\nvarying vec2 v_texCoord;\nvoid main() {\n vec4 color = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y));\n gl_FragColor = color;\n gl_FragColor.a *= u_opacity;\n}\n";
18
+ var WindVert = "precision highp float;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nvarying vec2 v_texCoord;\n#pragma include \"projection\"\nvoid main() {\n v_texCoord = a_Uv;\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0));\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy,0., 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0));\n }\n}\n";
19
+ import { Wind } from './windRender';
20
+ var defaultRampColors = {
21
+ 0.0: '#3288bd',
22
+ 0.1: '#66c2a5',
23
+ 0.2: '#abdda4',
24
+ 0.3: '#e6f598',
25
+ 0.4: '#fee08b',
26
+ 0.5: '#fdae61',
27
+ 0.6: '#f46d43',
28
+ 1.0: '#d53e4f'
29
+ };
30
+
31
+ var WindModel = function (_BaseModel) {
32
+ _inherits(WindModel, _BaseModel);
33
+
34
+ var _super = _createSuper(WindModel);
35
+
36
+ function WindModel() {
37
+ var _this;
38
+
39
+ _classCallCheck(this, WindModel);
40
+
41
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
42
+ args[_key] = arguments[_key];
43
+ }
44
+
45
+ _this = _super.call.apply(_super, [this].concat(args));
46
+
47
+ _defineProperty(_assertThisInitialized(_this), "texture", void 0);
48
+
49
+ _defineProperty(_assertThisInitialized(_this), "colorModel", void 0);
50
+
51
+ _defineProperty(_assertThisInitialized(_this), "wind", void 0);
52
+
53
+ _defineProperty(_assertThisInitialized(_this), "imageCoords", void 0);
54
+
55
+ _defineProperty(_assertThisInitialized(_this), "sizeScale", 0.5);
56
+
57
+ _defineProperty(_assertThisInitialized(_this), "frequency", new FrequencyController(7.2));
58
+
59
+ return _this;
60
+ }
61
+
62
+ _createClass(WindModel, [{
63
+ key: "render",
64
+ value: function render() {
65
+ var _this2 = this;
66
+
67
+ this.frequency.run(function () {
68
+ _this2.drawWind();
69
+ });
70
+ this.drawColorMode();
71
+ }
72
+ }, {
73
+ key: "getUninforms",
74
+ value: function getUninforms() {
75
+ throw new Error('Method not implemented.');
76
+ }
77
+ }, {
78
+ key: "initModels",
79
+ value: function initModels() {
80
+ var _this3 = this;
81
+
82
+ var createTexture2D = this.rendererService.createTexture2D;
83
+ var source = this.layer.getSource();
84
+ this.texture = createTexture2D({
85
+ height: 0,
86
+ width: 0
87
+ });
88
+ var glContext = this.rendererService.getGLContext();
89
+ this.imageCoords = source.data.dataArray[0].coordinates;
90
+ source.data.images.then(function (imageData) {
91
+ var _ref = _this3.layer.getLayerConfig(),
92
+ _ref$uMin = _ref.uMin,
93
+ uMin = _ref$uMin === void 0 ? -21.32 : _ref$uMin,
94
+ _ref$uMax = _ref.uMax,
95
+ uMax = _ref$uMax === void 0 ? 26.8 : _ref$uMax,
96
+ _ref$vMin = _ref.vMin,
97
+ vMin = _ref$vMin === void 0 ? -21.57 : _ref$vMin,
98
+ _ref$vMax = _ref.vMax,
99
+ vMax = _ref$vMax === void 0 ? 21.42 : _ref$vMax,
100
+ _ref$fadeOpacity = _ref.fadeOpacity,
101
+ fadeOpacity = _ref$fadeOpacity === void 0 ? 0.996 : _ref$fadeOpacity,
102
+ _ref$speedFactor = _ref.speedFactor,
103
+ speedFactor = _ref$speedFactor === void 0 ? 0.25 : _ref$speedFactor,
104
+ _ref$dropRate = _ref.dropRate,
105
+ dropRate = _ref$dropRate === void 0 ? 0.003 : _ref$dropRate,
106
+ _ref$dropRateBump = _ref.dropRateBump,
107
+ dropRateBump = _ref$dropRateBump === void 0 ? 0.01 : _ref$dropRateBump,
108
+ _ref$rampColors = _ref.rampColors,
109
+ rampColors = _ref$rampColors === void 0 ? defaultRampColors : _ref$rampColors,
110
+ _ref$sizeScale = _ref.sizeScale,
111
+ sizeScale = _ref$sizeScale === void 0 ? 0.5 : _ref$sizeScale;
112
+
113
+ _this3.sizeScale = sizeScale;
114
+
115
+ var _this3$getWindSize = _this3.getWindSize(),
116
+ imageWidth = _this3$getWindSize.imageWidth,
117
+ imageHeight = _this3$getWindSize.imageHeight;
118
+
119
+ var options = {
120
+ glContext: glContext,
121
+ imageWidth: imageWidth,
122
+ imageHeight: imageHeight,
123
+ fadeOpacity: fadeOpacity,
124
+ speedFactor: speedFactor,
125
+ dropRate: dropRate,
126
+ dropRateBump: dropRateBump,
127
+ rampColors: rampColors
128
+ };
129
+ _this3.wind = new Wind(options);
130
+
131
+ _this3.wind.setWind({
132
+ uMin: uMin,
133
+ uMax: uMax,
134
+ vMin: vMin,
135
+ vMax: vMax,
136
+ image: imageData[0]
137
+ });
138
+
139
+ _this3.texture = createTexture2D({
140
+ data: imageData[0],
141
+ width: imageData[0].width,
142
+ height: imageData[0].height
143
+ });
144
+
145
+ _this3.layerService.updateLayerRenderList();
146
+
147
+ _this3.layerService.renderLayers();
148
+ });
149
+ this.colorModel = this.layer.buildLayerModel({
150
+ moduleName: 'WindLayer',
151
+ vertexShader: WindVert,
152
+ fragmentShader: WindFrag,
153
+ triangulation: RasterImageTriangulation,
154
+ primitive: gl.TRIANGLES,
155
+ depth: {
156
+ enable: false
157
+ },
158
+ blend: this.getBlend()
159
+ });
160
+ return [this.colorModel];
161
+ }
162
+ }, {
163
+ key: "getWindSize",
164
+ value: function getWindSize() {
165
+ var p1 = this.mapService.lngLatToPixel(this.imageCoords[0]);
166
+ var p2 = this.mapService.lngLatToPixel(this.imageCoords[1]);
167
+ var imageWidth = Math.floor((p2.x - p1.x) * this.sizeScale);
168
+ var imageHeight = Math.floor((p1.y - p2.y) * this.sizeScale);
169
+ return {
170
+ imageWidth: imageWidth,
171
+ imageHeight: imageHeight
172
+ };
173
+ }
174
+ }, {
175
+ key: "buildModels",
176
+ value: function buildModels() {
177
+ return this.initModels();
178
+ }
179
+ }, {
180
+ key: "clearModels",
181
+ value: function clearModels() {
182
+ var _this$texture, _this$wind;
183
+
184
+ (_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
185
+ (_this$wind = this.wind) === null || _this$wind === void 0 ? void 0 : _this$wind.destroy();
186
+ }
187
+ }, {
188
+ key: "getConfigSchema",
189
+ value: function getConfigSchema() {
190
+ return {
191
+ properties: {
192
+ opacity: {
193
+ type: 'number',
194
+ minimum: 0,
195
+ maximum: 1
196
+ }
197
+ }
198
+ };
199
+ }
200
+ }, {
201
+ key: "registerBuiltinAttributes",
202
+ value: function registerBuiltinAttributes() {
203
+ this.styleAttributeService.registerStyleAttribute({
204
+ name: 'uv',
205
+ type: AttributeType.Attribute,
206
+ descriptor: {
207
+ name: 'a_Uv',
208
+ buffer: {
209
+ usage: gl.DYNAMIC_DRAW,
210
+ data: [],
211
+ type: gl.FLOAT
212
+ },
213
+ size: 2,
214
+ update: function update(feature, featureIdx, vertex, attributeIdx) {
215
+ return [vertex[3], vertex[4]];
216
+ }
217
+ }
218
+ });
219
+ }
220
+ }, {
221
+ key: "drawWind",
222
+ value: function drawWind() {
223
+ if (this.wind) {
224
+ var _ref2 = this.layer.getLayerConfig(),
225
+ _ref2$uMin = _ref2.uMin,
226
+ uMin = _ref2$uMin === void 0 ? -21.32 : _ref2$uMin,
227
+ _ref2$uMax = _ref2.uMax,
228
+ uMax = _ref2$uMax === void 0 ? 26.8 : _ref2$uMax,
229
+ _ref2$vMin = _ref2.vMin,
230
+ vMin = _ref2$vMin === void 0 ? -21.57 : _ref2$vMin,
231
+ _ref2$vMax = _ref2.vMax,
232
+ vMax = _ref2$vMax === void 0 ? 21.42 : _ref2$vMax,
233
+ _ref2$numParticles = _ref2.numParticles,
234
+ numParticles = _ref2$numParticles === void 0 ? 65535 : _ref2$numParticles,
235
+ _ref2$fadeOpacity = _ref2.fadeOpacity,
236
+ fadeOpacity = _ref2$fadeOpacity === void 0 ? 0.996 : _ref2$fadeOpacity,
237
+ _ref2$speedFactor = _ref2.speedFactor,
238
+ speedFactor = _ref2$speedFactor === void 0 ? 0.25 : _ref2$speedFactor,
239
+ _ref2$dropRate = _ref2.dropRate,
240
+ dropRate = _ref2$dropRate === void 0 ? 0.003 : _ref2$dropRate,
241
+ _ref2$dropRateBump = _ref2.dropRateBump,
242
+ dropRateBump = _ref2$dropRateBump === void 0 ? 0.01 : _ref2$dropRateBump,
243
+ _ref2$rampColors = _ref2.rampColors,
244
+ rampColors = _ref2$rampColors === void 0 ? defaultRampColors : _ref2$rampColors,
245
+ _ref2$sizeScale = _ref2.sizeScale,
246
+ sizeScale = _ref2$sizeScale === void 0 ? 0.5 : _ref2$sizeScale;
247
+
248
+ if (typeof sizeScale === 'number' && sizeScale !== this.sizeScale) {
249
+ this.sizeScale = sizeScale;
250
+
251
+ var _this$getWindSize = this.getWindSize(),
252
+ imageWidth = _this$getWindSize.imageWidth,
253
+ imageHeight = _this$getWindSize.imageHeight;
254
+
255
+ this.wind.reSize(imageWidth, imageHeight);
256
+ }
257
+
258
+ this.wind.updateWindDir(uMin, uMax, vMin, vMax);
259
+ this.wind.updateParticelNum(numParticles);
260
+ this.wind.updateColorRampTexture(rampColors);
261
+ this.wind.fadeOpacity = fadeOpacity;
262
+ this.wind.speedFactor = speedFactor;
263
+ this.wind.dropRate = dropRate;
264
+ this.wind.dropRateBump = dropRateBump;
265
+
266
+ var _this$wind$draw = this.wind.draw(),
267
+ d = _this$wind$draw.d,
268
+ w = _this$wind$draw.w,
269
+ h = _this$wind$draw.h;
270
+
271
+ this.rendererService.setBaseState();
272
+ this.texture.update({
273
+ data: d,
274
+ width: w,
275
+ height: h
276
+ });
277
+ }
278
+ }
279
+ }, {
280
+ key: "drawColorMode",
281
+ value: function drawColorMode() {
282
+ var _ref3 = this.layer.getLayerConfig(),
283
+ opacity = _ref3.opacity;
284
+
285
+ this.colorModel.draw({
286
+ uniforms: {
287
+ u_opacity: opacity || 1.0,
288
+ u_texture: this.texture
289
+ }
290
+ });
291
+ }
292
+ }]);
293
+
294
+ return WindModel;
295
+ }(BaseModel);
296
+
297
+ export { WindModel as default };
298
+ //# sourceMappingURL=wind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/wind/models/wind.ts"],"names":["AttributeType","gl","FrequencyController","BaseModel","RasterImageTriangulation","Wind","defaultRampColors","WindModel","frequency","run","drawWind","drawColorMode","Error","createTexture2D","rendererService","source","layer","getSource","texture","height","width","glContext","getGLContext","imageCoords","data","dataArray","coordinates","images","then","imageData","getLayerConfig","uMin","uMax","vMin","vMax","fadeOpacity","speedFactor","dropRate","dropRateBump","rampColors","sizeScale","getWindSize","imageWidth","imageHeight","options","wind","setWind","image","layerService","updateLayerRenderList","renderLayers","colorModel","buildLayerModel","moduleName","vertexShader","WindVert","fragmentShader","WindFrag","triangulation","primitive","TRIANGLES","depth","enable","blend","getBlend","p1","mapService","lngLatToPixel","p2","Math","floor","x","y","initModels","destroy","properties","opacity","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","numParticles","reSize","updateWindDir","updateParticelNum","updateColorRampTexture","draw","d","w","h","setBaseState","uniforms","u_opacity","u_texture"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n Point,\n} from '@antv/l7-core';\nimport { FrequencyController, isMini } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { RasterImageTriangulation } from '../../core/triangulation';\nimport WindFrag from '../shaders/wind_frag.glsl';\nimport WindVert from '../shaders/wind_vert.glsl';\nimport { IWind, IWindProps, Wind } from './windRender';\n\ninterface IWindLayerStyleOptions {\n uMin?: number;\n uMax?: number;\n vMin?: number;\n vMax?: number;\n fadeOpacity?: number;\n speedFactor?: number;\n dropRate?: number;\n dropRateBump?: number;\n opacity?: number;\n numParticles?: number;\n rampColors?: {\n [key: number]: string;\n };\n sizeScale?: number;\n}\n\nconst defaultRampColors = {\n 0.0: '#3288bd',\n 0.1: '#66c2a5',\n 0.2: '#abdda4',\n 0.3: '#e6f598',\n 0.4: '#fee08b',\n 0.5: '#fdae61',\n 0.6: '#f46d43',\n 1.0: '#d53e4f',\n};\n\nexport default class WindModel extends BaseModel {\n protected texture: ITexture2D;\n\n private colorModel: IModel;\n private wind: IWind;\n private imageCoords: [Point, Point];\n private sizeScale: number = 0.5;\n // https://mapbox.github.io/webgl-wind/demo/\n // source: 'http://nomads.ncep.noaa.gov',\n\n private frequency = new FrequencyController(7.2);\n\n public render() {\n // TODO: 控制风场的平均更新频率\n this.frequency.run(() => {\n this.drawWind();\n });\n this.drawColorMode();\n }\n\n public getUninforms(): IModelUniform {\n throw new Error('Method not implemented.');\n }\n\n public initModels() {\n const { createTexture2D } = this.rendererService;\n\n const source = this.layer.getSource();\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n const glContext = this.rendererService.getGLContext();\n this.imageCoords = source.data.dataArray[0].coordinates as [Point, Point];\n\n source.data.images.then((imageData: HTMLImageElement[]) => {\n const {\n uMin = -21.32,\n uMax = 26.8,\n vMin = -21.57,\n vMax = 21.42,\n fadeOpacity = 0.996,\n speedFactor = 0.25,\n dropRate = 0.003,\n dropRateBump = 0.01,\n rampColors = defaultRampColors,\n sizeScale = 0.5,\n } = this.layer.getLayerConfig() as IWindLayerStyleOptions;\n this.sizeScale = sizeScale;\n\n const { imageWidth, imageHeight } = this.getWindSize();\n\n const options: IWindProps = {\n glContext,\n imageWidth,\n imageHeight,\n fadeOpacity,\n speedFactor,\n dropRate,\n dropRateBump,\n rampColors,\n };\n\n this.wind = new Wind(options);\n\n // imageData[0] 风场图\n this.wind.setWind({\n uMin,\n uMax,\n vMin,\n vMax,\n image: imageData[0],\n });\n\n this.texture = createTexture2D({\n data: imageData[0],\n width: imageData[0].width,\n height: imageData[0].height,\n });\n\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n });\n\n this.colorModel = this.layer.buildLayerModel({\n moduleName: 'WindLayer',\n vertexShader: WindVert,\n fragmentShader: WindFrag,\n triangulation: RasterImageTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n blend: this.getBlend(),\n });\n\n return [this.colorModel];\n }\n\n public getWindSize() {\n const p1 = this.mapService.lngLatToPixel(this.imageCoords[0]);\n const p2 = this.mapService.lngLatToPixel(this.imageCoords[1]);\n\n const imageWidth = Math.floor((p2.x - p1.x) * this.sizeScale);\n const imageHeight = Math.floor((p1.y - p2.y) * this.sizeScale);\n return { imageWidth, imageHeight };\n }\n\n public buildModels() {\n return this.initModels();\n }\n\n public clearModels(): void {\n this.texture?.destroy();\n this.wind?.destroy();\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n\n private drawWind() {\n if (this.wind) {\n const {\n uMin = -21.32,\n uMax = 26.8,\n vMin = -21.57,\n vMax = 21.42,\n numParticles = 65535,\n fadeOpacity = 0.996,\n speedFactor = 0.25,\n dropRate = 0.003,\n dropRateBump = 0.01,\n rampColors = defaultRampColors,\n sizeScale = 0.5,\n } = this.layer.getLayerConfig() as IWindLayerStyleOptions;\n if (typeof sizeScale === 'number' && sizeScale !== this.sizeScale) {\n this.sizeScale = sizeScale;\n const { imageWidth, imageHeight } = this.getWindSize();\n this.wind.reSize(imageWidth, imageHeight);\n }\n\n this.wind.updateWindDir(uMin, uMax, vMin, vMax);\n\n this.wind.updateParticelNum(numParticles);\n\n this.wind.updateColorRampTexture(rampColors);\n\n this.wind.fadeOpacity = fadeOpacity;\n this.wind.speedFactor = speedFactor;\n this.wind.dropRate = dropRate;\n this.wind.dropRateBump = dropRateBump;\n\n const { d, w, h } = this.wind.draw();\n // TODO: 恢复 L7 渲染流程中 gl 状态\n this.rendererService.setBaseState();\n this.texture.update({\n data: d,\n width: w,\n height: h,\n });\n }\n }\n\n private drawColorMode() {\n const { opacity } = this.layer.getLayerConfig() as IWindLayerStyleOptions;\n this.colorModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_texture: this.texture,\n },\n });\n }\n}\n"],"file":"wind.js"}
@@ -0,0 +1,104 @@
1
+ export interface IWindData {
2
+ uMin: number;
3
+ uMax: number;
4
+ vMin: number;
5
+ vMax: number;
6
+ image: HTMLImageElement;
7
+ }
8
+ export interface IWind {
9
+ width: number;
10
+ height: number;
11
+ fadeOpacity: number;
12
+ speedFactor: number;
13
+ dropRate: number;
14
+ dropRateBump: number;
15
+ setWind: (windData: IWindData) => void;
16
+ draw: () => {
17
+ d: Uint8Array;
18
+ w: number;
19
+ h: number;
20
+ };
21
+ updateParticelNum: (num: number) => void;
22
+ updateWindDir: (uMin: number, uMax: number, vMin: number, vMax: number) => void;
23
+ updateColorRampTexture: (rampColors: {
24
+ [key: number]: string;
25
+ }) => void;
26
+ reSize: (width: number, height: number) => void;
27
+ destroy: () => void;
28
+ }
29
+ export interface IWindProps {
30
+ glContext: WebGLRenderingContext;
31
+ imageWidth: number;
32
+ imageHeight: number;
33
+ fadeOpacity: number;
34
+ speedFactor: number;
35
+ dropRate: number;
36
+ dropRateBump: number;
37
+ rampColors: {
38
+ [key: number]: string;
39
+ };
40
+ }
41
+ export declare class Wind {
42
+ width: number;
43
+ height: number;
44
+ pixels: Uint8Array;
45
+ fadeOpacity: number;
46
+ speedFactor: number;
47
+ dropRate: number;
48
+ dropRateBump: number;
49
+ private gl;
50
+ private drawProgram;
51
+ private fullScreenProgram;
52
+ private updateProgram;
53
+ private rampColors;
54
+ private numParticles;
55
+ private numParticlesSize;
56
+ private particleStateResolution;
57
+ private quadBuffer;
58
+ private particleIndexBuffer;
59
+ private framebuffer;
60
+ private colorRampTexture;
61
+ private backgroundTexture;
62
+ private screenTexture;
63
+ private particleStateTexture0;
64
+ private particleStateTexture1;
65
+ private windTexture;
66
+ private windData;
67
+ constructor(options: IWindProps);
68
+ init(): void;
69
+ setWind(windData: IWindData): void;
70
+ /**
71
+ * 更新风场粒子数量
72
+ * @param num
73
+ */
74
+ updateParticelNum(num: number): void;
75
+ /**
76
+ * 更新风场风向风速
77
+ * @param uMin
78
+ * @param uMax
79
+ * @param vMin
80
+ * @param vMax
81
+ */
82
+ updateWindDir(uMin: number, uMax: number, vMin: number, vMax: number): void;
83
+ /**
84
+ * update rampColors
85
+ * @param rampColors
86
+ */
87
+ updateColorRampTexture(rampColors: {
88
+ [key: number]: string;
89
+ }): void;
90
+ isColorChanged(rampColors: {
91
+ [key: number]: string;
92
+ }): boolean;
93
+ reSize(width: number, height: number): void;
94
+ draw(): {
95
+ d: Uint8Array;
96
+ w: number;
97
+ h: number;
98
+ };
99
+ drawScreen(): void;
100
+ drawFullTexture(texture: any, opacity: number): void;
101
+ drawParticles(): void;
102
+ updateParticles(): void;
103
+ destroy(): void;
104
+ }