@antv/l7-layers 2.8.5 → 2.8.8

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 (47) hide show
  1. package/es/Geometry/index.d.ts +19 -0
  2. package/es/Geometry/index.js +82 -0
  3. package/es/Geometry/index.js.map +1 -0
  4. package/es/Geometry/models/index.d.ts +5 -0
  5. package/es/Geometry/models/index.js +6 -0
  6. package/es/Geometry/models/index.js.map +1 -0
  7. package/es/Geometry/models/plane.d.ts +26 -0
  8. package/es/Geometry/models/plane.js +244 -0
  9. package/es/Geometry/models/plane.js.map +1 -0
  10. package/es/canvas/index.d.ts +19 -0
  11. package/es/canvas/index.js +82 -0
  12. package/es/canvas/index.js.map +1 -0
  13. package/es/canvas/models/canvas.d.ts +18 -0
  14. package/es/canvas/models/canvas.js +216 -0
  15. package/es/canvas/models/canvas.js.map +1 -0
  16. package/es/canvas/models/index.d.ts +5 -0
  17. package/es/canvas/models/index.js +6 -0
  18. package/es/canvas/models/index.js.map +1 -0
  19. package/es/core/BaseLayer.js +4 -0
  20. package/es/core/BaseLayer.js.map +1 -1
  21. package/es/core/interface.d.ts +28 -1
  22. package/es/core/interface.js +7 -0
  23. package/es/core/interface.js.map +1 -1
  24. package/es/core/triangulation.js.map +1 -1
  25. package/es/index.d.ts +3 -1
  26. package/es/index.js +3 -1
  27. package/es/index.js.map +1 -1
  28. package/lib/Geometry/index.js +95 -0
  29. package/lib/Geometry/index.js.map +1 -0
  30. package/lib/Geometry/models/index.js +17 -0
  31. package/lib/Geometry/models/index.js.map +1 -0
  32. package/lib/Geometry/models/plane.js +258 -0
  33. package/lib/Geometry/models/plane.js.map +1 -0
  34. package/lib/canvas/index.js +95 -0
  35. package/lib/canvas/index.js.map +1 -0
  36. package/lib/canvas/models/canvas.js +222 -0
  37. package/lib/canvas/models/canvas.js.map +1 -0
  38. package/lib/canvas/models/index.js +17 -0
  39. package/lib/canvas/models/index.js.map +1 -0
  40. package/lib/core/BaseLayer.js +4 -0
  41. package/lib/core/BaseLayer.js.map +1 -1
  42. package/lib/core/interface.js +9 -1
  43. package/lib/core/interface.js.map +1 -1
  44. package/lib/core/triangulation.js.map +1 -1
  45. package/lib/index.js +16 -0
  46. package/lib/index.js.map +1 -1
  47. package/package.json +5 -5
@@ -0,0 +1,19 @@
1
+ import BaseLayer from '../core/BaseLayer';
2
+ import { IGeometryLayerStyleOptions } from '../core/interface';
3
+ import { GeometryModelType } from './models';
4
+ export default class GeometryLayer extends BaseLayer<IGeometryLayerStyleOptions> {
5
+ type: string;
6
+ buildModels(): void;
7
+ rebuildModels(): void;
8
+ protected getConfigSchema(): {
9
+ properties: {
10
+ opacity: {
11
+ type: string;
12
+ minimum: number;
13
+ maximum: number;
14
+ };
15
+ };
16
+ };
17
+ protected getDefaultConfig(): {};
18
+ protected getModelType(): GeometryModelType;
19
+ }
@@ -0,0 +1,82 @@
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 BaseLayer from '../core/BaseLayer';
14
+ import GeometryModels from './models';
15
+
16
+ var GeometryLayer = function (_BaseLayer) {
17
+ _inherits(GeometryLayer, _BaseLayer);
18
+
19
+ var _super = _createSuper(GeometryLayer);
20
+
21
+ function GeometryLayer() {
22
+ var _this;
23
+
24
+ _classCallCheck(this, GeometryLayer);
25
+
26
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
27
+ args[_key] = arguments[_key];
28
+ }
29
+
30
+ _this = _super.call.apply(_super, [this].concat(args));
31
+
32
+ _defineProperty(_assertThisInitialized(_this), "type", 'GeometryLayer');
33
+
34
+ return _this;
35
+ }
36
+
37
+ _createClass(GeometryLayer, [{
38
+ key: "buildModels",
39
+ value: function buildModels() {
40
+ var modelType = this.getModelType();
41
+ this.layerModel = new GeometryModels[modelType](this);
42
+ this.models = this.layerModel.initModels();
43
+ }
44
+ }, {
45
+ key: "rebuildModels",
46
+ value: function rebuildModels() {
47
+ this.models = this.layerModel.buildModels();
48
+ }
49
+ }, {
50
+ key: "getConfigSchema",
51
+ value: function getConfigSchema() {
52
+ return {
53
+ properties: {
54
+ opacity: {
55
+ type: 'number',
56
+ minimum: 0,
57
+ maximum: 1
58
+ }
59
+ }
60
+ };
61
+ }
62
+ }, {
63
+ key: "getDefaultConfig",
64
+ value: function getDefaultConfig() {
65
+ var type = this.getModelType();
66
+ var defaultConfig = {
67
+ plane: {}
68
+ };
69
+ return defaultConfig[type];
70
+ }
71
+ }, {
72
+ key: "getModelType",
73
+ value: function getModelType() {
74
+ return 'plane';
75
+ }
76
+ }]);
77
+
78
+ return GeometryLayer;
79
+ }(BaseLayer);
80
+
81
+ export { GeometryLayer as default };
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/Geometry/index.ts"],"names":["BaseLayer","GeometryModels","GeometryLayer","modelType","getModelType","layerModel","models","initModels","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","plane"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,cAAP,MAAkD,UAAlD;;IAEqBC,a;;;;;;;;;;;;;;;;2DAGG,e;;;;;;;WACtB,uBAAqB;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIJ,cAAc,CAACE,SAAD,CAAlB,CAA8B,IAA9B,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKD,UAAL,CAAgBG,WAAhB,EAAd;AACD;;;WAED,2BAA4B;AAC1B,aAAO;AACLC,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKP,YAAL,EAAb;AACA,UAAMU,aAAa,GAAG;AACpBC,QAAAA,KAAK,EAAE;AADa,OAAtB;AAGA,aAAOD,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAA4C;AAC1C,aAAO,OAAP;AACD;;;;EAlCwCX,S;;SAAtBE,a","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { IGeometryLayerStyleOptions } from '../core/interface';\nimport GeometryModels, { GeometryModelType } from './models';\n\nexport default class GeometryLayer extends BaseLayer<\n IGeometryLayerStyleOptions\n> {\n public type: string = 'GeometryLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new GeometryModels[modelType](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\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 protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n plane: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): GeometryModelType {\n return 'plane';\n }\n}\n"],"file":"index.js"}
@@ -0,0 +1,5 @@
1
+ export declare type GeometryModelType = 'plane';
2
+ declare const GeometryModels: {
3
+ [key in GeometryModelType]: any;
4
+ };
5
+ export default GeometryModels;
@@ -0,0 +1,6 @@
1
+ import PlaneModel from './plane';
2
+ var GeometryModels = {
3
+ plane: PlaneModel
4
+ };
5
+ export default GeometryModels;
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Geometry/models/index.ts"],"names":["PlaneModel","GeometryModels","plane"],"mappings":"AAAA,OAAOA,UAAP,MAAuB,SAAvB;AAGA,IAAMC,cAAmD,GAAG;AAC1DC,EAAAA,KAAK,EAAEF;AADmD,CAA5D;AAGA,eAAeC,cAAf","sourcesContent":["import PlaneModel from './plane';\nexport type GeometryModelType = 'plane';\n\nconst GeometryModels: { [key in GeometryModelType]: any } = {\n plane: PlaneModel,\n};\nexport default GeometryModels;\n"],"file":"index.js"}
@@ -0,0 +1,26 @@
1
+ import { IModelUniform, ITexture2D } from '@antv/l7-core';
2
+ import BaseModel from '../../core/BaseModel';
3
+ export default class PlaneModel extends BaseModel {
4
+ protected texture: ITexture2D;
5
+ protected mapTexture: string | undefined;
6
+ planeGeometryTriangulation: () => {
7
+ vertices: number[];
8
+ indices: number[];
9
+ size: number;
10
+ };
11
+ getUninforms(): IModelUniform;
12
+ clearModels(): void;
13
+ initModels(): import("@antv/l7-core").IModel[];
14
+ buildModels(): import("@antv/l7-core").IModel[];
15
+ updateTexture(mapTexture: string | undefined): void;
16
+ protected getConfigSchema(): {
17
+ properties: {
18
+ opacity: {
19
+ type: string;
20
+ minimum: number;
21
+ maximum: number;
22
+ };
23
+ };
24
+ };
25
+ protected registerBuiltinAttributes(): void;
26
+ }
@@ -0,0 +1,244 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/createClass";
4
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
5
+ import _inherits from "@babel/runtime/helpers/inherits";
6
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
7
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
8
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
+
10
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
11
+
12
+ 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; } }
13
+
14
+ import { AttributeType, gl } from '@antv/l7-core';
15
+ import { getMask } from '@antv/l7-utils';
16
+ import BaseModel from '../../core/BaseModel';
17
+ var planeFrag = "\nuniform sampler2D u_texture;\nuniform float u_mapFlag;\nuniform float u_opacity;\n\nvarying vec3 v_Color;\nvarying vec2 v_uv;\n\n#pragma include \"picking\"\nvoid main() {\n // gl_FragColor = vec4(v_Color, u_opacity);\n if(u_mapFlag > 0.0) {\n gl_FragColor = texture2D(u_texture, vec2(v_uv.x, 1.0 - v_uv.y));\n gl_FragColor.a *= u_opacity;\n\n } else {\n // gl_FragColor = vec4(v_uv, 0.0, u_opacity);\n gl_FragColor = vec4(v_Color, u_opacity);\n }\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
18
+ var planeVert = "precision highp float;\nuniform mat4 u_ModelMatrix;\n\nuniform mat4 u_Mvp;\n\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nattribute vec3 a_Color;\n\nvarying vec3 v_Color;\nvarying vec2 v_uv;\n\n#pragma include \"projection\"\n#pragma include \"picking\"\nvoid main() {\n v_Color = a_Color;\n v_uv = a_Uv;\n \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\n // float x = 1.0;\n // float y = 0.0;\n // float z = 0.0;\n // mat3 translateMatrix = mat3(\n // 1.0, 0.0, 0.0 \n // 0.0, 1.0, 0.0\n // -project_pos.x, -project_pos.y, 1.0\n // );\n // mat4 translateMatrix = mat4(\n // 1.0, 0.0, 0.0, 0.0 ,\n // 0.0, 1.0, 0.0, 0.0,\n // 0.0, 0.0, 1.0, 0.0,\n // 1.0, 0.0, 0.0, 1.0\n // );\n\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 setPickingColor(a_PickingColor);\n\n gl_PointSize = 10.0;\n}\n";
19
+
20
+ function initPlane() {
21
+ var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
22
+ var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
23
+ var widthSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
24
+ var heightSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
25
+ var lng = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 120;
26
+ var lat = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 30;
27
+ var widthHalf = width / 2;
28
+ var heightHalf = height / 2;
29
+ var gridX = Math.floor(widthSegments);
30
+ var gridY = Math.floor(heightSegments);
31
+ var gridX1 = gridX + 1;
32
+ var gridY1 = gridY + 1;
33
+ var segmentWidth = width / gridX;
34
+ var segmentHeight = height / gridY;
35
+ var indices = [];
36
+ var positions = [];
37
+
38
+ for (var iy = 0; iy < gridY1; iy++) {
39
+ var y = iy * segmentHeight - heightHalf;
40
+
41
+ for (var ix = 0; ix < gridX1; ix++) {
42
+ var x = ix * segmentWidth - widthHalf;
43
+ positions.push(x + lng, -y + lat, 0);
44
+ positions.push(ix / gridX);
45
+ positions.push(1 - iy / gridY);
46
+ }
47
+ }
48
+
49
+ for (var _iy = 0; _iy < gridY; _iy++) {
50
+ for (var _ix = 0; _ix < gridX; _ix++) {
51
+ var a = _ix + gridX1 * _iy;
52
+ var b = _ix + gridX1 * (_iy + 1);
53
+ var c = _ix + 1 + gridX1 * (_iy + 1);
54
+ var d = _ix + 1 + gridX1 * _iy;
55
+ indices.push(a, b, d);
56
+ indices.push(b, c, d);
57
+ }
58
+ }
59
+
60
+ return {
61
+ indices: indices,
62
+ positions: positions
63
+ };
64
+ }
65
+
66
+ var PlaneModel = function (_BaseModel) {
67
+ _inherits(PlaneModel, _BaseModel);
68
+
69
+ var _super = _createSuper(PlaneModel);
70
+
71
+ function PlaneModel() {
72
+ var _this;
73
+
74
+ _classCallCheck(this, PlaneModel);
75
+
76
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
77
+ args[_key] = arguments[_key];
78
+ }
79
+
80
+ _this = _super.call.apply(_super, [this].concat(args));
81
+
82
+ _defineProperty(_assertThisInitialized(_this), "texture", void 0);
83
+
84
+ _defineProperty(_assertThisInitialized(_this), "mapTexture", void 0);
85
+
86
+ _defineProperty(_assertThisInitialized(_this), "planeGeometryTriangulation", function () {
87
+ var _ref = _this.layer.getLayerConfig(),
88
+ _ref$width = _ref.width,
89
+ width = _ref$width === void 0 ? 1 : _ref$width,
90
+ _ref$height = _ref.height,
91
+ height = _ref$height === void 0 ? 1 : _ref$height,
92
+ _ref$widthSegments = _ref.widthSegments,
93
+ widthSegments = _ref$widthSegments === void 0 ? 1 : _ref$widthSegments,
94
+ _ref$heightSegments = _ref.heightSegments,
95
+ heightSegments = _ref$heightSegments === void 0 ? 1 : _ref$heightSegments,
96
+ _ref$center = _ref.center,
97
+ center = _ref$center === void 0 ? [120, 30] : _ref$center;
98
+
99
+ var _initPlane = initPlane.apply(void 0, [width, height, widthSegments, heightSegments].concat(_toConsumableArray(center))),
100
+ indices = _initPlane.indices,
101
+ positions = _initPlane.positions;
102
+
103
+ return {
104
+ vertices: positions,
105
+ indices: indices,
106
+ size: 5
107
+ };
108
+ });
109
+
110
+ return _this;
111
+ }
112
+
113
+ _createClass(PlaneModel, [{
114
+ key: "getUninforms",
115
+ value: function getUninforms() {
116
+ var _ref2 = this.layer.getLayerConfig(),
117
+ opacity = _ref2.opacity,
118
+ mapTexture = _ref2.mapTexture;
119
+
120
+ if (this.mapTexture !== mapTexture) {
121
+ this.mapTexture = mapTexture;
122
+ this.texture.destroy();
123
+ this.updateTexture(mapTexture);
124
+ }
125
+
126
+ return {
127
+ u_opacity: opacity || 1,
128
+ u_mapFlag: mapTexture ? 1 : 0,
129
+ u_texture: this.texture
130
+ };
131
+ }
132
+ }, {
133
+ key: "clearModels",
134
+ value: function clearModels() {
135
+ this.texture.destroy();
136
+ }
137
+ }, {
138
+ key: "initModels",
139
+ value: function initModels() {
140
+ var _ref3 = this.layer.getLayerConfig(),
141
+ _ref3$mask = _ref3.mask,
142
+ mask = _ref3$mask === void 0 ? false : _ref3$mask,
143
+ _ref3$maskInside = _ref3.maskInside,
144
+ maskInside = _ref3$maskInside === void 0 ? true : _ref3$maskInside,
145
+ mapTexture = _ref3.mapTexture;
146
+
147
+ this.mapTexture = mapTexture;
148
+ var createTexture2D = this.rendererService.createTexture2D;
149
+ this.texture = createTexture2D({
150
+ height: 0,
151
+ width: 0
152
+ });
153
+ this.updateTexture(mapTexture);
154
+ return [this.layer.buildLayerModel({
155
+ moduleName: 'geometry_plane',
156
+ vertexShader: planeVert,
157
+ fragmentShader: planeFrag,
158
+ triangulation: this.planeGeometryTriangulation,
159
+ primitive: gl.TRIANGLES,
160
+ depth: {
161
+ enable: false
162
+ },
163
+ blend: this.getBlend(),
164
+ stencil: getMask(mask, maskInside)
165
+ })];
166
+ }
167
+ }, {
168
+ key: "buildModels",
169
+ value: function buildModels() {
170
+ return this.initModels();
171
+ }
172
+ }, {
173
+ key: "updateTexture",
174
+ value: function updateTexture(mapTexture) {
175
+ var _this2 = this;
176
+
177
+ var createTexture2D = this.rendererService.createTexture2D;
178
+
179
+ if (mapTexture) {
180
+ var img = new Image();
181
+ img.crossOrigin = 'anonymous';
182
+
183
+ img.onload = function () {
184
+ _this2.texture = createTexture2D({
185
+ data: img,
186
+ width: img.width,
187
+ height: img.height,
188
+ wrapS: gl.CLAMP_TO_EDGE,
189
+ wrapT: gl.CLAMP_TO_EDGE
190
+ });
191
+
192
+ _this2.layerService.updateLayerRenderList();
193
+
194
+ _this2.layerService.renderLayers();
195
+ };
196
+
197
+ img.src = mapTexture;
198
+ } else {
199
+ this.texture = createTexture2D({
200
+ width: 0,
201
+ height: 0
202
+ });
203
+ }
204
+ }
205
+ }, {
206
+ key: "getConfigSchema",
207
+ value: function getConfigSchema() {
208
+ return {
209
+ properties: {
210
+ opacity: {
211
+ type: 'number',
212
+ minimum: 0,
213
+ maximum: 1
214
+ }
215
+ }
216
+ };
217
+ }
218
+ }, {
219
+ key: "registerBuiltinAttributes",
220
+ value: function registerBuiltinAttributes() {
221
+ this.styleAttributeService.registerStyleAttribute({
222
+ name: 'uv',
223
+ type: AttributeType.Attribute,
224
+ descriptor: {
225
+ name: 'a_Uv',
226
+ buffer: {
227
+ usage: gl.DYNAMIC_DRAW,
228
+ data: [],
229
+ type: gl.FLOAT
230
+ },
231
+ size: 2,
232
+ update: function update(feature, featureIdx, vertex, attributeIdx) {
233
+ return [vertex[3], vertex[4]];
234
+ }
235
+ }
236
+ });
237
+ }
238
+ }]);
239
+
240
+ return PlaneModel;
241
+ }(BaseModel);
242
+
243
+ export { PlaneModel as default };
244
+ //# sourceMappingURL=plane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Geometry/models/plane.ts"],"names":["AttributeType","gl","getMask","BaseModel","initPlane","width","height","widthSegments","heightSegments","lng","lat","widthHalf","heightHalf","gridX","Math","floor","gridY","gridX1","gridY1","segmentWidth","segmentHeight","indices","positions","iy","y","ix","x","push","a","b","c","d","PlaneModel","layer","getLayerConfig","center","vertices","size","opacity","mapTexture","texture","destroy","updateTexture","u_opacity","u_mapFlag","u_texture","mask","maskInside","createTexture2D","rendererService","buildLayerModel","moduleName","vertexShader","planeVert","fragmentShader","planeFrag","triangulation","planeGeometryTriangulation","primitive","TRIANGLES","depth","enable","blend","getBlend","stencil","initModels","img","Image","crossOrigin","onload","data","wrapS","CLAMP_TO_EDGE","wrapT","layerService","updateLayerRenderList","renderLayers","src","properties","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","update","feature","featureIdx","vertex","attributeIdx"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, isMini } from '@antv/l7-utils';\n// import { mat4, vec3 } from 'gl-matrix';\nimport BaseModel from '../../core/BaseModel';\nimport { IGeometryLayerStyleOptions } from '../../core/interface';\nimport planeFrag from '../shaders/plane_frag.glsl';\nimport planeVert from '../shaders/plane_vert.glsl';\n\nfunction initPlane(\n width = 1,\n height = 1,\n widthSegments = 1,\n heightSegments = 1,\n lng = 120,\n lat = 30,\n) {\n // https://github.com/mrdoob/three.js/blob/dev/src/geometries/PlaneGeometry.js\n const widthHalf = width / 2;\n const heightHalf = height / 2;\n\n const gridX = Math.floor(widthSegments);\n const gridY = Math.floor(heightSegments);\n\n const gridX1 = gridX + 1;\n const gridY1 = gridY + 1;\n\n const segmentWidth = width / gridX;\n const segmentHeight = height / gridY;\n\n const indices = [];\n const positions = [];\n\n for (let iy = 0; iy < gridY1; iy++) {\n const y = iy * segmentHeight - heightHalf;\n\n for (let ix = 0; ix < gridX1; ix++) {\n const x = ix * segmentWidth - widthHalf;\n\n positions.push(x + lng, -y + lat, 0);\n\n positions.push(ix / gridX);\n positions.push(1 - iy / gridY);\n }\n }\n\n for (let iy = 0; iy < gridY; iy++) {\n for (let ix = 0; ix < gridX; ix++) {\n const a = ix + gridX1 * iy;\n const b = ix + gridX1 * (iy + 1);\n const c = ix + 1 + gridX1 * (iy + 1);\n const d = ix + 1 + gridX1 * iy;\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n\n return { indices, positions };\n}\n\nexport default class PlaneModel extends BaseModel {\n protected texture: ITexture2D;\n protected mapTexture: string | undefined;\n public planeGeometryTriangulation = () => {\n const {\n width = 1,\n height = 1,\n widthSegments = 1,\n heightSegments = 1,\n center = [120, 30],\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const { indices, positions } = initPlane(\n width,\n height,\n widthSegments,\n heightSegments,\n ...center,\n );\n return {\n vertices: positions,\n indices,\n size: 5,\n };\n };\n\n public getUninforms(): IModelUniform {\n const {\n opacity,\n mapTexture,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n if (this.mapTexture !== mapTexture) {\n this.mapTexture = mapTexture;\n this.texture.destroy();\n this.updateTexture(mapTexture);\n }\n return {\n u_opacity: opacity || 1,\n u_mapFlag: mapTexture ? 1 : 0,\n\n u_texture: this.texture,\n // u_ModelMatrix: mat4.translate(mat4.create(), mat4.create(), [1, 0, 0])\n // u_ModelMatrix: mat4.rotateZ(mat4.create(), mat4.create(), 10)\n // u_ModelMatrix: mat4.rotateZ(mat4.create(), mat4.create(), 10)\n // u_ModelMatrix: this.rotateZ()\n };\n }\n\n // public rotateZ(): mat4 {\n // const res = mat4.create()\n // const roZero = mat4.translate(mat4.create(), mat4.create(), [-120, 0, -30])\n // const rotate = mat4.rotateZ(mat4.create(), mat4.create(), 10)\n // const roOrigin = mat4.translate(mat4.create(), mat4.create(), [120, 0, 30])\n // mat4.multiply(res, res, roZero)\n // mat4.multiply(res, res, rotate)\n // mat4.multiply(res, res, roOrigin)\n // return res\n // }\n\n public clearModels(): void {\n this.texture.destroy();\n }\n\n public initModels() {\n const {\n mask = false,\n maskInside = true,\n mapTexture,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n this.mapTexture = mapTexture;\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n this.updateTexture(mapTexture);\n\n return [\n this.layer.buildLayerModel({\n moduleName: 'geometry_plane',\n vertexShader: planeVert,\n fragmentShader: planeFrag,\n triangulation: this.planeGeometryTriangulation,\n primitive: gl.TRIANGLES,\n // primitive: gl.POINTS,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n public buildModels() {\n return this.initModels();\n }\n\n public updateTexture(mapTexture: string | undefined): void {\n const { createTexture2D } = this.rendererService;\n\n if (mapTexture) {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n img.src = mapTexture;\n } else {\n this.texture = createTexture2D({\n width: 0,\n height: 0,\n });\n }\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"],"file":"plane.js"}
@@ -0,0 +1,19 @@
1
+ import BaseLayer from '../core/BaseLayer';
2
+ import { ICanvasLayerStyleOptions } from '../core/interface';
3
+ import { CanvasModelType } from './models/index';
4
+ export default class CanvasLayer extends BaseLayer<ICanvasLayerStyleOptions> {
5
+ type: string;
6
+ buildModels(): void;
7
+ rebuildModels(): void;
8
+ protected getConfigSchema(): {
9
+ properties: {
10
+ opacity: {
11
+ type: string;
12
+ minimum: number;
13
+ maximum: number;
14
+ };
15
+ };
16
+ };
17
+ protected getDefaultConfig(): {};
18
+ protected getModelType(): CanvasModelType;
19
+ }
@@ -0,0 +1,82 @@
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 BaseLayer from '../core/BaseLayer';
14
+ import CanvasModels from './models/index';
15
+
16
+ var CanvasLayer = function (_BaseLayer) {
17
+ _inherits(CanvasLayer, _BaseLayer);
18
+
19
+ var _super = _createSuper(CanvasLayer);
20
+
21
+ function CanvasLayer() {
22
+ var _this;
23
+
24
+ _classCallCheck(this, CanvasLayer);
25
+
26
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
27
+ args[_key] = arguments[_key];
28
+ }
29
+
30
+ _this = _super.call.apply(_super, [this].concat(args));
31
+
32
+ _defineProperty(_assertThisInitialized(_this), "type", 'CanvasLayer');
33
+
34
+ return _this;
35
+ }
36
+
37
+ _createClass(CanvasLayer, [{
38
+ key: "buildModels",
39
+ value: function buildModels() {
40
+ var modelType = this.getModelType();
41
+ this.layerModel = new CanvasModels[modelType](this);
42
+ this.models = this.layerModel.initModels();
43
+ }
44
+ }, {
45
+ key: "rebuildModels",
46
+ value: function rebuildModels() {
47
+ this.models = this.layerModel.buildModels();
48
+ }
49
+ }, {
50
+ key: "getConfigSchema",
51
+ value: function getConfigSchema() {
52
+ return {
53
+ properties: {
54
+ opacity: {
55
+ type: 'number',
56
+ minimum: 0,
57
+ maximum: 1
58
+ }
59
+ }
60
+ };
61
+ }
62
+ }, {
63
+ key: "getDefaultConfig",
64
+ value: function getDefaultConfig() {
65
+ var type = this.getModelType();
66
+ var defaultConfig = {
67
+ canvas: {}
68
+ };
69
+ return defaultConfig[type];
70
+ }
71
+ }, {
72
+ key: "getModelType",
73
+ value: function getModelType() {
74
+ return 'canvas';
75
+ }
76
+ }]);
77
+
78
+ return CanvasLayer;
79
+ }(BaseLayer);
80
+
81
+ export { CanvasLayer as default };
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/canvas/index.ts"],"names":["BaseLayer","CanvasModels","CanvasLayer","modelType","getModelType","layerModel","models","initModels","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","canvas"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,YAAP,MAA8C,gBAA9C;;IACqBC,W;;;;;;;;;;;;;;;;2DACG,a;;;;;;;WACtB,uBAAqB;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIJ,YAAY,CAACE,SAAD,CAAhB,CAA4B,IAA5B,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKD,UAAL,CAAgBG,WAAhB,EAAd;AACD;;;WACD,2BAA4B;AAC1B,aAAO;AACLC,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKP,YAAL,EAAb;AACA,UAAMU,aAAa,GAAG;AACpBC,QAAAA,MAAM,EAAE;AADY,OAAtB;AAGA,aAAOD,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAA0C;AACxC,aAAO,QAAP;AACD;;;;EA/BsCX,S;;SAApBE,W","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { ICanvasLayerStyleOptions } from '../core/interface';\nimport CanvasModels, { CanvasModelType } from './models/index';\nexport default class CanvasLayer extends BaseLayer<ICanvasLayerStyleOptions> {\n public type: string = 'CanvasLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new CanvasModels[modelType](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n canvas: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): CanvasModelType {\n return 'canvas';\n }\n}\n"],"file":"index.js"}
@@ -0,0 +1,18 @@
1
+ import BaseModel from '../../core/BaseModel';
2
+ import { CanvasUpdateType } from '../../core/interface';
3
+ export default class CanvaModel extends BaseModel {
4
+ protected updateMode: CanvasUpdateType;
5
+ protected canvas: HTMLCanvasElement;
6
+ protected ctx: CanvasRenderingContext2D;
7
+ protected prevSize: [number, number];
8
+ renderUpdate: () => void;
9
+ unBindListener: () => void;
10
+ bindListener: () => void;
11
+ clearModels(): void;
12
+ initModels(): never[];
13
+ initCanvas(): void;
14
+ clearCanvas: () => void;
15
+ renderCanvas: () => void;
16
+ buildModels(): never[];
17
+ protected registerBuiltinAttributes(): void;
18
+ }