@antv/l7-layers 2.8.34 → 2.8.37
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.
- package/es/Geometry/index.d.ts +1 -1
- package/es/Geometry/index.js +4 -1
- package/es/Geometry/index.js.map +1 -1
- package/es/Geometry/models/billboard.d.ts +26 -0
- package/es/Geometry/models/billboard.js +213 -0
- package/es/Geometry/models/billboard.js.map +1 -0
- package/es/Geometry/models/index.d.ts +1 -1
- package/es/Geometry/models/index.js +3 -1
- package/es/Geometry/models/index.js.map +1 -1
- package/es/Geometry/models/sprite.js +2 -2
- package/es/core/BaseLayer.d.ts +2 -2
- package/es/core/BaseLayer.js.map +1 -1
- package/es/core/LayerGroup.d.ts +2 -1
- package/es/core/LayerGroup.js +5 -0
- package/es/core/LayerGroup.js.map +1 -1
- package/es/core/interface.d.ts +29 -2
- package/es/core/interface.js.map +1 -1
- package/es/image/models/image.js.map +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js +2 -2
- package/es/index.js.map +1 -1
- package/es/line/models/arc.js +4 -4
- package/es/line/models/arc.js.map +1 -1
- package/es/line/models/arc_3d.js +4 -5
- package/es/line/models/arc_3d.js.map +1 -1
- package/es/line/models/arcmini.js +5 -5
- package/es/line/models/arcmini.js.map +1 -1
- package/es/line/models/great_circle.js +3 -3
- package/es/line/models/great_circle.js.map +1 -1
- package/es/line/models/line.js +3 -3
- package/es/line/models/line.js.map +1 -1
- package/es/line/models/linearline.js +3 -3
- package/es/line/models/linearline.js.map +1 -1
- package/es/line/models/simpleLine.js +8 -8
- package/es/line/models/simpleLine.js.map +1 -1
- package/es/line/models/wall.js +5 -5
- package/es/line/models/wall.js.map +1 -1
- package/es/mask/index.d.ts +1 -4
- package/es/mask/index.js.map +1 -1
- package/es/mask/models/fill.js.map +1 -1
- package/es/plugins/DataMappingPlugin.d.ts +1 -0
- package/es/plugins/DataMappingPlugin.js +17 -9
- package/es/plugins/DataMappingPlugin.js.map +1 -1
- package/es/plugins/FeatureScalePlugin.d.ts +1 -2
- package/es/plugins/FeatureScalePlugin.js +42 -33
- package/es/plugins/FeatureScalePlugin.js.map +1 -1
- package/es/plugins/ShaderUniformPlugin.d.ts +1 -0
- package/es/plugins/ShaderUniformPlugin.js +12 -0
- package/es/plugins/ShaderUniformPlugin.js.map +1 -1
- package/es/point/models/extrude.js +3 -4
- package/es/point/models/extrude.js.map +1 -1
- package/es/point/models/fill.js +3 -4
- package/es/point/models/fill.js.map +1 -1
- package/es/point/models/fillmage.d.ts +1 -1
- package/es/point/models/fillmage.js +6 -21
- package/es/point/models/fillmage.js.map +1 -1
- package/es/point/models/icon-font.js +1 -1
- package/es/point/models/image.js +4 -4
- package/es/point/models/image.js.map +1 -1
- package/es/point/models/normal.js +1 -2
- package/es/point/models/normal.js.map +1 -1
- package/es/point/models/radar.js +5 -18
- package/es/point/models/radar.js.map +1 -1
- package/es/point/models/simplePoint.js +5 -6
- package/es/point/models/simplePoint.js.map +1 -1
- package/es/point/models/text.js +4 -4
- package/es/point/models/text.js.map +1 -1
- package/es/polygon/models/extrude.js +3 -4
- package/es/polygon/models/extrude.js.map +1 -1
- package/es/polygon/models/fill.d.ts +1 -0
- package/es/polygon/models/fill.js +37 -12
- package/es/polygon/models/fill.js.map +1 -1
- package/es/polygon/models/ocean.js +3 -4
- package/es/polygon/models/ocean.js.map +1 -1
- package/es/polygon/models/water.js +3 -4
- package/es/polygon/models/water.js.map +1 -1
- package/es/raster/index.d.ts +3 -3
- package/es/raster/index.js +16 -6
- package/es/raster/index.js.map +1 -1
- package/es/raster/models/index.d.ts +1 -1
- package/es/raster/models/index.js +3 -1
- package/es/raster/models/index.js.map +1 -1
- package/es/raster/models/raste-tile.d.ts +23 -0
- package/es/raster/models/raste-tile.js +285 -0
- package/es/raster/models/raste-tile.js.map +1 -0
- package/es/raster/models/raster.js +2 -0
- package/es/raster/models/raster.js.map +1 -1
- package/es/wind/index.d.ts +1 -17
- package/es/wind/index.js.map +1 -1
- package/es/wind/models/utils.d.ts +12 -12
- package/es/wind/models/utils.js +6 -5
- package/es/wind/models/utils.js.map +1 -1
- package/es/wind/models/wind.js.map +1 -1
- package/es/wind/models/windRender.js.map +1 -1
- package/lib/Geometry/index.js +4 -1
- package/lib/Geometry/index.js.map +1 -1
- package/lib/Geometry/models/billboard.js +227 -0
- package/lib/Geometry/models/billboard.js.map +1 -0
- package/lib/Geometry/models/index.js +4 -1
- package/lib/Geometry/models/index.js.map +1 -1
- package/lib/Geometry/models/sprite.js +2 -2
- package/lib/core/BaseLayer.js.map +1 -1
- package/lib/core/LayerGroup.js +5 -0
- package/lib/core/LayerGroup.js.map +1 -1
- package/lib/core/interface.js.map +1 -1
- package/lib/image/models/image.js.map +1 -1
- package/lib/index.js +29 -8
- package/lib/index.js.map +1 -1
- package/lib/line/models/arc.js +4 -5
- package/lib/line/models/arc.js.map +1 -1
- package/lib/line/models/arc_3d.js +4 -6
- package/lib/line/models/arc_3d.js.map +1 -1
- package/lib/line/models/arcmini.js +5 -6
- package/lib/line/models/arcmini.js.map +1 -1
- package/lib/line/models/great_circle.js +3 -4
- package/lib/line/models/great_circle.js.map +1 -1
- package/lib/line/models/line.js +3 -4
- package/lib/line/models/line.js.map +1 -1
- package/lib/line/models/linearline.js +3 -4
- package/lib/line/models/linearline.js.map +1 -1
- package/lib/line/models/simpleLine.js +8 -9
- package/lib/line/models/simpleLine.js.map +1 -1
- package/lib/line/models/wall.js +5 -6
- package/lib/line/models/wall.js.map +1 -1
- package/lib/mask/index.js.map +1 -1
- package/lib/mask/models/fill.js.map +1 -1
- package/lib/plugins/DataMappingPlugin.js +17 -9
- package/lib/plugins/DataMappingPlugin.js.map +1 -1
- package/lib/plugins/FeatureScalePlugin.js +43 -33
- package/lib/plugins/FeatureScalePlugin.js.map +1 -1
- package/lib/plugins/ShaderUniformPlugin.js +12 -0
- package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
- package/lib/point/models/extrude.js +3 -5
- package/lib/point/models/extrude.js.map +1 -1
- package/lib/point/models/fill.js +3 -5
- package/lib/point/models/fill.js.map +1 -1
- package/lib/point/models/fillmage.js +7 -23
- package/lib/point/models/fillmage.js.map +1 -1
- package/lib/point/models/icon-font.js +1 -1
- package/lib/point/models/image.js +4 -5
- package/lib/point/models/image.js.map +1 -1
- package/lib/point/models/normal.js +1 -3
- package/lib/point/models/normal.js.map +1 -1
- package/lib/point/models/radar.js +5 -19
- package/lib/point/models/radar.js.map +1 -1
- package/lib/point/models/simplePoint.js +5 -7
- package/lib/point/models/simplePoint.js.map +1 -1
- package/lib/point/models/text.js +4 -5
- package/lib/point/models/text.js.map +1 -1
- package/lib/polygon/models/extrude.js +3 -5
- package/lib/polygon/models/extrude.js.map +1 -1
- package/lib/polygon/models/fill.js +37 -13
- package/lib/polygon/models/fill.js.map +1 -1
- package/lib/polygon/models/ocean.js +3 -5
- package/lib/polygon/models/ocean.js.map +1 -1
- package/lib/polygon/models/water.js +3 -5
- package/lib/polygon/models/water.js.map +1 -1
- package/lib/raster/index.js +16 -6
- package/lib/raster/index.js.map +1 -1
- package/lib/raster/models/index.js +4 -1
- package/lib/raster/models/index.js.map +1 -1
- package/lib/raster/models/raste-tile.js +294 -0
- package/lib/raster/models/raste-tile.js.map +1 -0
- package/lib/raster/models/raster.js +2 -0
- package/lib/raster/models/raster.js.map +1 -1
- package/lib/wind/index.js.map +1 -1
- package/lib/wind/models/utils.js +6 -5
- package/lib/wind/models/utils.js.map +1 -1
- package/lib/wind/models/wind.js.map +1 -1
- package/lib/wind/models/windRender.js.map +1 -1
- package/package.json +7 -6
- package/es/imagetile/index.d.ts +0 -22
- package/es/imagetile/index.js +0 -82
- package/es/imagetile/index.js.map +0 -1
- package/es/imagetile/models/imagetile.d.ts +0 -12
- package/es/imagetile/models/imagetile.js +0 -133
- package/es/imagetile/models/imagetile.js.map +0 -1
- package/es/imagetile/models/index.d.ts +0 -5
- package/es/imagetile/models/index.js +0 -6
- package/es/imagetile/models/index.js.map +0 -1
- package/es/imagetile/utils/ImageTile.d.ts +0 -20
- package/es/imagetile/utils/ImageTile.js +0 -92
- package/es/imagetile/utils/ImageTile.js.map +0 -1
- package/es/imagetile/utils/Tile.d.ts +0 -27
- package/es/imagetile/utils/Tile.js +0 -313
- package/es/imagetile/utils/Tile.js.map +0 -1
- package/es/imagetile/utils/lruCache.d.ts +0 -20
- package/es/imagetile/utils/lruCache.js +0 -105
- package/es/imagetile/utils/lruCache.js.map +0 -1
- package/es/imagetile/utils/tileCache.d.ts +0 -8
- package/es/imagetile/utils/tileCache.js +0 -50
- package/es/imagetile/utils/tileCache.js.map +0 -1
- package/lib/imagetile/index.js +0 -95
- package/lib/imagetile/index.js.map +0 -1
- package/lib/imagetile/models/imagetile.js +0 -146
- package/lib/imagetile/models/imagetile.js.map +0 -1
- package/lib/imagetile/models/index.js +0 -17
- package/lib/imagetile/models/index.js.map +0 -1
- package/lib/imagetile/utils/ImageTile.js +0 -101
- package/lib/imagetile/utils/ImageTile.js.map +0 -1
- package/lib/imagetile/utils/Tile.js +0 -316
- package/lib/imagetile/utils/Tile.js.map +0 -1
- package/lib/imagetile/utils/lruCache.js +0 -109
- package/lib/imagetile/utils/lruCache.js.map +0 -1
- package/lib/imagetile/utils/tileCache.js +0 -58
- package/lib/imagetile/utils/tileCache.js.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IModelUniform } from '@antv/l7-core';
|
|
2
|
+
import { TilesetManager } from '@antv/l7-utils';
|
|
3
|
+
import BaseModel from '../../core/BaseModel';
|
|
4
|
+
export default class RasterTileModel extends BaseModel {
|
|
5
|
+
initedTileset: boolean;
|
|
6
|
+
tilesetManager: TilesetManager | undefined;
|
|
7
|
+
showGrid: boolean;
|
|
8
|
+
private subGridLayer;
|
|
9
|
+
private subTextLayer;
|
|
10
|
+
private lastViewStates;
|
|
11
|
+
private timer;
|
|
12
|
+
getUninforms(): IModelUniform;
|
|
13
|
+
initModels(): never[];
|
|
14
|
+
buildModels(): never[];
|
|
15
|
+
clearModels(): void;
|
|
16
|
+
renderSubGridLayer(): void;
|
|
17
|
+
protected registerBuiltinAttributes(): void;
|
|
18
|
+
private bindTilesetEvent;
|
|
19
|
+
private creatSubLayer;
|
|
20
|
+
private renderSubLayers;
|
|
21
|
+
private destroySubLayer;
|
|
22
|
+
private getCurrentView;
|
|
23
|
+
}
|
|
@@ -0,0 +1,285 @@
|
|
|
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 { createLayerContainer } from '@antv/l7-core';
|
|
14
|
+
import BaseModel from '../../core/BaseModel';
|
|
15
|
+
import ImageLayer from '../../image';
|
|
16
|
+
import LineLayer from '../../line';
|
|
17
|
+
import PointLayer from '../../point';
|
|
18
|
+
|
|
19
|
+
var RasterTileModel = function (_BaseModel) {
|
|
20
|
+
_inherits(RasterTileModel, _BaseModel);
|
|
21
|
+
|
|
22
|
+
var _super = _createSuper(RasterTileModel);
|
|
23
|
+
|
|
24
|
+
function RasterTileModel() {
|
|
25
|
+
var _this;
|
|
26
|
+
|
|
27
|
+
_classCallCheck(this, RasterTileModel);
|
|
28
|
+
|
|
29
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
30
|
+
args[_key] = arguments[_key];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
34
|
+
|
|
35
|
+
_defineProperty(_assertThisInitialized(_this), "initedTileset", false);
|
|
36
|
+
|
|
37
|
+
_defineProperty(_assertThisInitialized(_this), "tilesetManager", void 0);
|
|
38
|
+
|
|
39
|
+
_defineProperty(_assertThisInitialized(_this), "showGrid", false);
|
|
40
|
+
|
|
41
|
+
_defineProperty(_assertThisInitialized(_this), "subGridLayer", void 0);
|
|
42
|
+
|
|
43
|
+
_defineProperty(_assertThisInitialized(_this), "subTextLayer", void 0);
|
|
44
|
+
|
|
45
|
+
_defineProperty(_assertThisInitialized(_this), "lastViewStates", void 0);
|
|
46
|
+
|
|
47
|
+
_defineProperty(_assertThisInitialized(_this), "timer", void 0);
|
|
48
|
+
|
|
49
|
+
_defineProperty(_assertThisInitialized(_this), "renderSubLayers", function () {
|
|
50
|
+
if (!_this.tilesetManager) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
var rasteTileLayer = _this.layer;
|
|
55
|
+
|
|
56
|
+
_this.tilesetManager.tiles.filter(function (tile) {
|
|
57
|
+
return tile.isLoaded;
|
|
58
|
+
}).map(function (tile) {
|
|
59
|
+
if (!tile.layer) {
|
|
60
|
+
tile.layer = _this.creatSubLayer(tile);
|
|
61
|
+
rasteTileLayer.addChild(tile.layer);
|
|
62
|
+
} else {
|
|
63
|
+
tile.layer.updateLayerConfig({
|
|
64
|
+
visible: tile.isVisible
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return tile.layer;
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
if (_this.showGrid) {
|
|
72
|
+
if (!rasteTileLayer.hasChild(_this.subGridLayer)) {
|
|
73
|
+
rasteTileLayer.addChild(_this.subGridLayer);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (!rasteTileLayer.hasChild(_this.subTextLayer)) {
|
|
77
|
+
rasteTileLayer.addChild(_this.subTextLayer);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
_this.layerService.renderLayers();
|
|
82
|
+
|
|
83
|
+
if (_this.tilesetManager.isLoaded) {
|
|
84
|
+
rasteTileLayer.emit('tiles-loaded', _this.tilesetManager.currentTiles);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
return _this;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
_createClass(RasterTileModel, [{
|
|
92
|
+
key: "getUninforms",
|
|
93
|
+
value: function getUninforms() {
|
|
94
|
+
return {};
|
|
95
|
+
}
|
|
96
|
+
}, {
|
|
97
|
+
key: "initModels",
|
|
98
|
+
value: function initModels() {
|
|
99
|
+
var _this$tilesetManager;
|
|
100
|
+
|
|
101
|
+
var source = this.layer.getSource();
|
|
102
|
+
this.tilesetManager = source.tileset;
|
|
103
|
+
|
|
104
|
+
if (!this.initedTileset) {
|
|
105
|
+
this.bindTilesetEvent();
|
|
106
|
+
this.initedTileset = true;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
var _this$getCurrentView = this.getCurrentView(),
|
|
110
|
+
latLonBounds = _this$getCurrentView.latLonBounds,
|
|
111
|
+
zoom = _this$getCurrentView.zoom;
|
|
112
|
+
|
|
113
|
+
(_this$tilesetManager = this.tilesetManager) === null || _this$tilesetManager === void 0 ? void 0 : _this$tilesetManager.update(zoom, latLonBounds);
|
|
114
|
+
|
|
115
|
+
if (this.showGrid) {
|
|
116
|
+
this.renderSubGridLayer();
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return this.buildModels();
|
|
120
|
+
}
|
|
121
|
+
}, {
|
|
122
|
+
key: "buildModels",
|
|
123
|
+
value: function buildModels() {
|
|
124
|
+
return [];
|
|
125
|
+
}
|
|
126
|
+
}, {
|
|
127
|
+
key: "clearModels",
|
|
128
|
+
value: function clearModels() {}
|
|
129
|
+
}, {
|
|
130
|
+
key: "renderSubGridLayer",
|
|
131
|
+
value: function renderSubGridLayer() {
|
|
132
|
+
if (!this.tilesetManager) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
var features = this.tilesetManager.currentTiles.map(function (tile) {
|
|
137
|
+
return tile.bboxPolygon;
|
|
138
|
+
});
|
|
139
|
+
var data = {
|
|
140
|
+
type: 'FeatureCollection',
|
|
141
|
+
features: features
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
if (this.subGridLayer) {
|
|
145
|
+
this.subGridLayer.setData(data);
|
|
146
|
+
this.subTextLayer.setData(data);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
this.subGridLayer = new LineLayer({
|
|
151
|
+
autoFit: false
|
|
152
|
+
}).source(data).size(1).color('red').shape('simple').style({
|
|
153
|
+
lineType: 'dash',
|
|
154
|
+
dashArray: [1, 2]
|
|
155
|
+
});
|
|
156
|
+
this.subTextLayer = new PointLayer({
|
|
157
|
+
autoFit: false
|
|
158
|
+
}).source(data).size(14).color('red').shape('meta', 'text').style({
|
|
159
|
+
opacity: 1,
|
|
160
|
+
strokeWidth: 1,
|
|
161
|
+
stroke: '#fff'
|
|
162
|
+
});
|
|
163
|
+
this.subGridLayer.setContainer(createLayerContainer(this.layer.sceneContainer), this.layer.sceneContainer);
|
|
164
|
+
this.subTextLayer.setContainer(createLayerContainer(this.layer.sceneContainer), this.layer.sceneContainer);
|
|
165
|
+
this.subGridLayer.init();
|
|
166
|
+
this.subTextLayer.init();
|
|
167
|
+
}
|
|
168
|
+
}, {
|
|
169
|
+
key: "registerBuiltinAttributes",
|
|
170
|
+
value: function registerBuiltinAttributes() {}
|
|
171
|
+
}, {
|
|
172
|
+
key: "bindTilesetEvent",
|
|
173
|
+
value: function bindTilesetEvent() {
|
|
174
|
+
var _this2 = this;
|
|
175
|
+
|
|
176
|
+
if (!this.tilesetManager) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
this.tilesetManager.on('tile-loaded', function (tile) {});
|
|
181
|
+
this.tilesetManager.on('tile-unload', function (tile) {
|
|
182
|
+
_this2.destroySubLayer(tile);
|
|
183
|
+
});
|
|
184
|
+
this.tilesetManager.on('tile-error', function (error, tile) {});
|
|
185
|
+
this.tilesetManager.on('tile-update', this.renderSubLayers);
|
|
186
|
+
this.mapService.on('mapchange', function (e) {
|
|
187
|
+
var _this2$getCurrentView = _this2.getCurrentView(),
|
|
188
|
+
latLonBounds = _this2$getCurrentView.latLonBounds,
|
|
189
|
+
zoom = _this2$getCurrentView.zoom;
|
|
190
|
+
|
|
191
|
+
if (_this2.mapService.version === 'GAODE1.x') {
|
|
192
|
+
var _this2$layer$getLayer = _this2.layer.getLayerConfig(),
|
|
193
|
+
visible = _this2$layer$getLayer.visible;
|
|
194
|
+
|
|
195
|
+
if (zoom < 3 && visible) {
|
|
196
|
+
_this2.layer.updateLayerConfig({
|
|
197
|
+
visible: false
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
_this2.layerService.updateLayerRenderList();
|
|
201
|
+
} else if (zoom >= 3 && !visible) {
|
|
202
|
+
_this2.layer.updateLayerConfig({
|
|
203
|
+
visible: true
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
_this2.layerService.updateLayerRenderList();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
if (_this2.lastViewStates && _this2.lastViewStates.zoom === zoom && _this2.lastViewStates.latLonBounds.toString() === latLonBounds.toString()) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
_this2.lastViewStates = {
|
|
215
|
+
zoom: zoom,
|
|
216
|
+
latLonBounds: latLonBounds
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
if (_this2.timer) {
|
|
220
|
+
clearTimeout(_this2.timer);
|
|
221
|
+
_this2.timer = null;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
_this2.timer = setTimeout(function () {
|
|
225
|
+
var _this2$tilesetManager;
|
|
226
|
+
|
|
227
|
+
(_this2$tilesetManager = _this2.tilesetManager) === null || _this2$tilesetManager === void 0 ? void 0 : _this2$tilesetManager.update(zoom, latLonBounds);
|
|
228
|
+
|
|
229
|
+
if (_this2.showGrid) {
|
|
230
|
+
_this2.renderSubGridLayer();
|
|
231
|
+
}
|
|
232
|
+
}, 250);
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
}, {
|
|
236
|
+
key: "creatSubLayer",
|
|
237
|
+
value: function creatSubLayer(tile) {
|
|
238
|
+
var _ref = this.layer.getLayerConfig(),
|
|
239
|
+
_ref$opacity = _ref.opacity,
|
|
240
|
+
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
241
|
+
_ref$zIndex = _ref.zIndex,
|
|
242
|
+
zIndex = _ref$zIndex === void 0 ? 0 : _ref$zIndex;
|
|
243
|
+
|
|
244
|
+
var layer = new ImageLayer({
|
|
245
|
+
visible: tile.isVisible,
|
|
246
|
+
zIndex: zIndex
|
|
247
|
+
}).source(tile.data, {
|
|
248
|
+
parser: {
|
|
249
|
+
type: 'image',
|
|
250
|
+
extent: tile.bounds
|
|
251
|
+
}
|
|
252
|
+
}).style({
|
|
253
|
+
opacity: opacity
|
|
254
|
+
});
|
|
255
|
+
var container = createLayerContainer(this.layer.sceneContainer);
|
|
256
|
+
layer.setContainer(container, this.layer.sceneContainer);
|
|
257
|
+
layer.init();
|
|
258
|
+
return layer;
|
|
259
|
+
}
|
|
260
|
+
}, {
|
|
261
|
+
key: "destroySubLayer",
|
|
262
|
+
value: function destroySubLayer(tile) {
|
|
263
|
+
if (tile.layer) {
|
|
264
|
+
var layerGroup = this.layer;
|
|
265
|
+
layerGroup.removeChild(tile.layer);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}, {
|
|
269
|
+
key: "getCurrentView",
|
|
270
|
+
value: function getCurrentView() {
|
|
271
|
+
var bounds = this.mapService.getBounds();
|
|
272
|
+
var latLonBounds = [bounds[0][0], bounds[0][1], bounds[1][0], bounds[1][1]];
|
|
273
|
+
var zoom = this.mapService.getZoom();
|
|
274
|
+
return {
|
|
275
|
+
latLonBounds: latLonBounds,
|
|
276
|
+
zoom: zoom
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
}]);
|
|
280
|
+
|
|
281
|
+
return RasterTileModel;
|
|
282
|
+
}(BaseModel);
|
|
283
|
+
|
|
284
|
+
export { RasterTileModel as default };
|
|
285
|
+
//# sourceMappingURL=raste-tile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/raster/models/raste-tile.ts"],"names":["createLayerContainer","BaseModel","ImageLayer","LineLayer","PointLayer","RasterTileModel","tilesetManager","rasteTileLayer","layer","tiles","filter","tile","isLoaded","map","creatSubLayer","addChild","updateLayerConfig","visible","isVisible","showGrid","hasChild","subGridLayer","subTextLayer","layerService","renderLayers","emit","currentTiles","source","getSource","tileset","initedTileset","bindTilesetEvent","getCurrentView","latLonBounds","zoom","update","renderSubGridLayer","buildModels","features","bboxPolygon","data","type","setData","autoFit","size","color","shape","style","lineType","dashArray","opacity","strokeWidth","stroke","setContainer","sceneContainer","init","on","destroySubLayer","error","renderSubLayers","mapService","e","version","getLayerConfig","updateLayerRenderList","lastViewStates","toString","timer","clearTimeout","setTimeout","zIndex","parser","extent","bounds","container","layerGroup","removeChild","getBounds","getZoom"],"mappings":"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","sourcesContent":["import {\n createLayerContainer,\n ILayer,\n ILayerGroup,\n IModelUniform,\n} from '@antv/l7-core';\nimport { Tile, TilesetManager } from '@antv/l7-utils';\nimport { Container } from 'inversify';\nimport BaseModel from '../../core/BaseModel';\nimport { IRasterTileLayerStyleOptions } from '../../core/interface';\nimport ImageLayer from '../../image';\nimport LineLayer from '../../line';\nimport PointLayer from '../../point';\n\nexport default class RasterTileModel extends BaseModel {\n // 瓦片是否加载成功\n public initedTileset = false;\n // 瓦片数据管理器\n public tilesetManager: TilesetManager | undefined;\n // 是否开启瓦片网格子图层,用于调试\n public showGrid = false;\n // 瓦片网格子图层,用于调试\n private subGridLayer: ILayer;\n // 瓦片网格文本子图层,用于调试\n private subTextLayer: ILayer;\n // 上一次视野状态\n private lastViewStates: {\n zoom: number;\n latLonBounds: [number, number, number, number];\n };\n private timer: any;\n\n public getUninforms(): IModelUniform {\n return {};\n }\n\n public initModels() {\n const source = this.layer.getSource();\n this.tilesetManager = source.tileset;\n\n if (!this.initedTileset) {\n this.bindTilesetEvent();\n this.initedTileset = true;\n }\n\n const { latLonBounds, zoom } = this.getCurrentView();\n this.tilesetManager?.update(zoom, latLonBounds);\n\n if (this.showGrid) {\n this.renderSubGridLayer();\n }\n\n return this.buildModels();\n }\n\n public buildModels() {\n return [];\n }\n\n public clearModels() {\n //\n }\n\n // 渲染瓦片网格图层方便调试\n public renderSubGridLayer() {\n if (!this.tilesetManager) {\n return;\n }\n\n const features = this.tilesetManager.currentTiles.map(\n (tile) => tile.bboxPolygon,\n );\n\n const data = { type: 'FeatureCollection', features };\n\n if (this.subGridLayer) {\n this.subGridLayer.setData(data);\n this.subTextLayer.setData(data);\n return;\n }\n\n this.subGridLayer = new LineLayer({ autoFit: false })\n .source(data)\n .size(1)\n .color('red')\n .shape('simple')\n .style({ lineType: 'dash', dashArray: [1, 2] });\n\n this.subTextLayer = new PointLayer({ autoFit: false })\n .source(data)\n .size(14)\n .color('red')\n .shape('meta', 'text')\n .style({\n opacity: 1,\n strokeWidth: 1,\n stroke: '#fff',\n });\n\n this.subGridLayer.setContainer(\n createLayerContainer(this.layer.sceneContainer as Container),\n this.layer.sceneContainer as Container,\n );\n this.subTextLayer.setContainer(\n createLayerContainer(this.layer.sceneContainer as Container),\n this.layer.sceneContainer as Container,\n );\n this.subGridLayer.init();\n this.subTextLayer.init();\n }\n\n protected registerBuiltinAttributes() {\n //\n }\n\n // 监听瓦片管理器\n private bindTilesetEvent() {\n if (!this.tilesetManager) {\n return;\n }\n // 瓦片数据加载成功\n this.tilesetManager.on('tile-loaded', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n });\n\n // 瓦片数据从缓存删除或被执行重新加载\n this.tilesetManager.on('tile-unload', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n this.destroySubLayer(tile);\n });\n\n // 瓦片数据加载失败\n this.tilesetManager.on('tile-error', (error, tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n });\n\n // 瓦片显隐状态更新\n this.tilesetManager.on('tile-update', this.renderSubLayers);\n\n // 地图视野发生改变\n this.mapService.on('mapchange', (e) => {\n const { latLonBounds, zoom } = this.getCurrentView();\n\n if (this.mapService.version === 'GAODE1.x') {\n const { visible } = this.layer.getLayerConfig();\n if (zoom < 3 && visible) {\n this.layer.updateLayerConfig({ visible: false });\n this.layerService.updateLayerRenderList();\n } else if (zoom >= 3 && !visible) {\n this.layer.updateLayerConfig({ visible: true });\n this.layerService.updateLayerRenderList();\n }\n }\n\n if (\n this.lastViewStates &&\n this.lastViewStates.zoom === zoom &&\n this.lastViewStates.latLonBounds.toString() === latLonBounds.toString()\n ) {\n return;\n }\n this.lastViewStates = { zoom, latLonBounds };\n\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n\n this.timer = setTimeout(() => {\n this.tilesetManager?.update(zoom, latLonBounds);\n if (this.showGrid) {\n this.renderSubGridLayer();\n }\n }, 250);\n });\n }\n\n // 创建子图层\n private creatSubLayer(tile: Tile) {\n const {\n opacity = 1,\n zIndex = 0,\n } = this.layer.getLayerConfig() as IRasterTileLayerStyleOptions;\n const layer = new ImageLayer({\n visible: tile.isVisible,\n zIndex,\n })\n .source(tile.data, {\n parser: {\n type: 'image',\n extent: tile.bounds,\n },\n })\n .style({\n opacity,\n });\n const container = createLayerContainer(\n this.layer.sceneContainer as Container,\n );\n layer.setContainer(container, this.layer.sceneContainer as Container);\n layer.init();\n\n return layer;\n }\n\n // 更新子图层\n private renderSubLayers = () => {\n if (!this.tilesetManager) {\n return;\n }\n\n const rasteTileLayer = this.layer as ILayerGroup;\n\n this.tilesetManager.tiles\n .filter((tile) => tile.isLoaded)\n .map((tile) => {\n if (!tile.layer) {\n tile.layer = this.creatSubLayer(tile);\n rasteTileLayer.addChild(tile.layer);\n } else {\n // 显隐藏控制\n tile.layer.updateLayerConfig({\n visible: tile.isVisible,\n });\n }\n return tile.layer;\n });\n\n if (this.showGrid) {\n if (!rasteTileLayer.hasChild(this.subGridLayer)) {\n rasteTileLayer.addChild(this.subGridLayer);\n }\n if (!rasteTileLayer.hasChild(this.subTextLayer)) {\n rasteTileLayer.addChild(this.subTextLayer);\n }\n }\n\n this.layerService.renderLayers();\n\n if (this.tilesetManager.isLoaded) {\n // 将事件抛出,图层上可以使用瓦片\n rasteTileLayer.emit('tiles-loaded', this.tilesetManager.currentTiles);\n }\n };\n\n // 摧毁子图层\n private destroySubLayer(tile: Tile) {\n if (tile.layer) {\n const layerGroup = this.layer as ILayerGroup;\n layerGroup.removeChild(tile.layer);\n }\n }\n\n // 获取当前视野参数\n private getCurrentView() {\n const bounds = this.mapService.getBounds();\n const latLonBounds: [number, number, number, number] = [\n bounds[0][0],\n bounds[0][1],\n bounds[1][0],\n bounds[1][1],\n ];\n const zoom = this.mapService.getZoom();\n\n return { latLonBounds, zoom };\n }\n}\n"],"file":"raste-tile.js"}
|
|
@@ -69,6 +69,8 @@ var RasterModel = function (_BaseModel) {
|
|
|
69
69
|
}, {
|
|
70
70
|
key: "initModels",
|
|
71
71
|
value: function initModels() {
|
|
72
|
+
this.layer.isLayerGroup = false;
|
|
73
|
+
|
|
72
74
|
var _ref2 = this.layer.getLayerConfig(),
|
|
73
75
|
_ref2$mask = _ref2.mask,
|
|
74
76
|
mask = _ref2$mask === void 0 ? false : _ref2$mask,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/raster/models/raster.ts"],"names":["AttributeType","gl","generateColorRamp","getMask","BaseModel","RasterImageTriangulation","RasterModel","layer","getLayerConfig","opacity","clampLow","clampHigh","noDataValue","domain","updateColorTexure","u_opacity","u_texture","texture","u_domain","u_clampLow","u_clampHigh","u_noDataValue","u_colorTexture","colorTexture","mask","maskInside","source","getSource","createTexture2D","rendererService","parserDataItem","data","dataArray","width","height","format","LUMINANCE","type","FLOAT","rampColors","imageData","flipY","buildLayerModel","moduleName","vertexShader","rasterVert","fragmentShader","rasterFrag","triangulation","primitive","TRIANGLES","depth","enable","blend","getBlend","stencil","initModels","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx"],"mappings":";;;;;;;;;;;;AAAA,SACEA,aADF,EAEEC,EAFF,QAOO,eAPP;AAQA,SAASC,iBAAT,EAA4BC,OAA5B,QAAuD,gBAAvD;AACA,OAAOC,SAAP,MAAsB,sBAAtB;AAEA,SAASC,wBAAT,QAAyC,0BAAzC;;;;IAGqBC,W;;;;;;;;;;;;;;;;;;;;;;;;;WAGnB,wBAAsB;AACpB,iBAMI,KAAKC,KAAL,CAAWC,cAAX,EANJ;AAAA,8BACEC,OADF;AAAA,UACEA,OADF,6BACY,CADZ;AAAA,+BAEEC,QAFF;AAAA,UAEEA,QAFF,8BAEa,IAFb;AAAA,gCAGEC,SAHF;AAAA,UAGEA,SAHF,+BAGc,IAHd;AAAA,kCAIEC,WAJF;AAAA,UAIEA,WAJF,iCAIgB,CAAC,OAJjB;AAAA,6BAKEC,MALF;AAAA,UAKEA,MALF,4BAKW,CAAC,CAAD,EAAI,CAAJ,CALX;;AAOA,WAAKC,iBAAL;AACA,aAAO;AACLC,QAAAA,SAAS,EAAEN,OAAO,IAAI,CADjB;AAELO,QAAAA,SAAS,EAAE,KAAKC,OAFX;AAGLC,QAAAA,QAAQ,EAAEL,MAHL;AAILM,QAAAA,UAAU,EAAET,QAJP;AAKLU,QAAAA,WAAW,EAAE,OAAOT,SAAP,KAAqB,WAArB,GAAmCA,SAAnC,GAA+CD,QALvD;AAMLW,QAAAA,aAAa,EAAET,WANV;AAOLU,QAAAA,cAAc,EAAE,KAAKC;AAPhB,OAAP;AASD;;;WAED,sBAAoB;
|
|
1
|
+
{"version":3,"sources":["../../../src/raster/models/raster.ts"],"names":["AttributeType","gl","generateColorRamp","getMask","BaseModel","RasterImageTriangulation","RasterModel","layer","getLayerConfig","opacity","clampLow","clampHigh","noDataValue","domain","updateColorTexure","u_opacity","u_texture","texture","u_domain","u_clampLow","u_clampHigh","u_noDataValue","u_colorTexture","colorTexture","isLayerGroup","mask","maskInside","source","getSource","createTexture2D","rendererService","parserDataItem","data","dataArray","width","height","format","LUMINANCE","type","FLOAT","rampColors","imageData","flipY","buildLayerModel","moduleName","vertexShader","rasterVert","fragmentShader","rasterFrag","triangulation","primitive","TRIANGLES","depth","enable","blend","getBlend","stencil","initModels","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n ITexture2D,\n lazyInject,\n TYPES,\n} from '@antv/l7-core';\nimport { generateColorRamp, getMask, IColorRamp } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IRasterLayerStyleOptions } from '../../core/interface';\nimport { RasterImageTriangulation } from '../../core/triangulation';\nimport rasterFrag from '../shaders/raster_2d_frag.glsl';\nimport rasterVert from '../shaders/raster_2d_vert.glsl';\nexport default class RasterModel extends BaseModel {\n protected texture: ITexture2D;\n protected colorTexture: ITexture2D;\n public getUninforms() {\n const {\n opacity = 1,\n clampLow = true,\n clampHigh = true,\n noDataValue = -9999999,\n domain = [0, 1],\n } = this.layer.getLayerConfig() as IRasterLayerStyleOptions;\n this.updateColorTexure();\n return {\n u_opacity: opacity || 1,\n u_texture: this.texture,\n u_domain: domain,\n u_clampLow: clampLow,\n u_clampHigh: typeof clampHigh !== 'undefined' ? clampHigh : clampLow,\n u_noDataValue: noDataValue,\n u_colorTexture: this.colorTexture,\n };\n }\n\n public initModels() {\n // 指定当前 layer 当作普通的 layer 进行渲染\n this.layer.isLayerGroup = false;\n\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IRasterLayerStyleOptions;\n const source = this.layer.getSource();\n const { createTexture2D } = this.rendererService;\n const parserDataItem = source.data.dataArray[0];\n this.texture = createTexture2D({\n data: parserDataItem.data,\n width: parserDataItem.width,\n height: parserDataItem.height,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n // aniso: 4,\n });\n const {\n rampColors,\n } = this.layer.getLayerConfig() as IRasterLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: imageData.data,\n width: imageData.width,\n height: imageData.height,\n flipY: false,\n });\n return [\n this.layer.buildLayerModel({\n moduleName: 'RasterImageData',\n vertexShader: rasterVert,\n fragmentShader: rasterFrag,\n triangulation: RasterImageTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public buildModels() {\n return this.initModels();\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 updateColorTexure() {\n const { createTexture2D } = this.rendererService;\n const {\n rampColors,\n } = this.layer.getLayerConfig() as IRasterLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: imageData.data,\n width: imageData.width,\n height: imageData.height,\n flipY: false,\n });\n }\n}\n"],"file":"raster.js"}
|
package/es/wind/index.d.ts
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
1
|
import BaseLayer from '../core/BaseLayer';
|
|
2
|
+
import { IWindLayerStyleOptions } from '../core/interface';
|
|
2
3
|
import { WindModelType } from './models';
|
|
3
|
-
interface IWindLayerStyleOptions {
|
|
4
|
-
uMin?: number;
|
|
5
|
-
uMax?: number;
|
|
6
|
-
vMin?: number;
|
|
7
|
-
vMax?: number;
|
|
8
|
-
fadeOpacity?: number;
|
|
9
|
-
speedFactor?: number;
|
|
10
|
-
dropRate?: number;
|
|
11
|
-
dropRateBump?: number;
|
|
12
|
-
opacity?: number;
|
|
13
|
-
numParticles?: number;
|
|
14
|
-
rampColors?: {
|
|
15
|
-
[key: number]: string;
|
|
16
|
-
};
|
|
17
|
-
sizeScale?: number;
|
|
18
|
-
}
|
|
19
4
|
export default class WindLayer extends BaseLayer<IWindLayerStyleOptions> {
|
|
20
5
|
type: string;
|
|
21
6
|
buildModels(): void;
|
|
@@ -33,4 +18,3 @@ export default class WindLayer extends BaseLayer<IWindLayerStyleOptions> {
|
|
|
33
18
|
protected getDefaultConfig(): {};
|
|
34
19
|
protected getModelType(): WindModelType;
|
|
35
20
|
}
|
|
36
|
-
export {};
|
package/es/wind/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/wind/index.ts"],"names":["BaseLayer","WindModels","WindLayer","modelType","getModelType","layerModel","models","initModels","buildModels","render","properties","opacity","type","minimum","maximum","defaultConfig","wind"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;
|
|
1
|
+
{"version":3,"sources":["../../src/wind/index.ts"],"names":["BaseLayer","WindModels","WindLayer","modelType","getModelType","layerModel","models","initModels","buildModels","render","properties","opacity","type","minimum","maximum","defaultConfig","wind"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,UAAP,MAA0C,UAA1C;;IACqBC,S;;;;;;;;;;;;;;;;2DACG,W;;;;;;;WACtB,uBAAqB;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIJ,UAAU,CAACE,SAAD,CAAd,CAA0B,IAA1B,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKD,UAAL,CAAgBG,WAAhB,EAAd;AACD;;;WAED,wBAAsB;AACpB,UAAI,KAAKH,UAAT,EAAqB;AACnB,aAAKA,UAAL,CAAgBI,MAAhB;AACD;;AAED,aAAO,IAAP;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,KAAKR,YAAL,EAAb;AACA,UAAMW,aAAa,GAAG;AACpBC,QAAAA,IAAI,EAAE;AADc,OAAtB;AAGA,aAAOD,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAAwC;AACtC,aAAO,MAAP;AACD;;;;EAvCoCZ,S;;SAAlBE,S","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { IWindLayerStyleOptions } from '../core/interface';\nimport WindModels, { WindModelType } from './models';\nexport default class WindLayer extends BaseLayer<IWindLayerStyleOptions> {\n public type: string = 'WindLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new WindModels[modelType](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n\n public renderModels() {\n if (this.layerModel) {\n this.layerModel.render(); // 独立的渲染流程\n }\n\n return this;\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 wind: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): WindModelType {\n return 'wind';\n }\n}\n"],"file":"index.js"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export declare function createProgram(gl:
|
|
2
|
-
export declare function loadShader(gl: WebGLRenderingContext, type:
|
|
1
|
+
export declare function createProgram(gl: WebGLRenderingContext, vshader: string, fshader: string): WebGLProgram | null;
|
|
2
|
+
export declare function loadShader(gl: WebGLRenderingContext, type: number, source: string): WebGLShader | null;
|
|
3
3
|
export declare function createTexture(gl: WebGLRenderingContext, filter: any, data: any, width: number, height: number): WebGLTexture | null;
|
|
4
4
|
export declare function createDataTexture(gl: WebGLRenderingContext, filter: any, data: any): WebGLTexture | null;
|
|
5
|
-
export declare function bindTexture(gl:
|
|
6
|
-
export declare function createBuffer(gl:
|
|
7
|
-
export declare function bindAttriBuffer(gl: WebGLRenderingContext, attrName: string, vertices:
|
|
5
|
+
export declare function bindTexture(gl: WebGLRenderingContext, texture: WebGLTexture, unit: number): void;
|
|
6
|
+
export declare function createBuffer(gl: WebGLRenderingContext, data: Float32Array): WebGLBuffer | null;
|
|
7
|
+
export declare function bindAttriBuffer(gl: WebGLRenderingContext, attrName: string, vertices: number, count: number, program: WebGLProgram): {
|
|
8
8
|
buffer: WebGLBuffer | null;
|
|
9
9
|
attr: number;
|
|
10
|
-
count:
|
|
10
|
+
count: number;
|
|
11
11
|
};
|
|
12
12
|
export declare function bindAttriIndicesBuffer(gl: WebGLRenderingContext, indices: Uint8Array): WebGLBuffer;
|
|
13
|
-
export declare function bindUnifrom(gl:
|
|
14
|
-
export declare function setUnifrom(gl:
|
|
15
|
-
export declare function initFramebuffer(gl:
|
|
16
|
-
FRAMEBUFFER:
|
|
17
|
-
OFFER_SCREEN_WIDTH:
|
|
18
|
-
OFFER_SCREEN_HEIGHT:
|
|
13
|
+
export declare function bindUnifrom(gl: WebGLRenderingContext, unifromName: string, data: number | Float32List, program: WebGLProgram, vec: string): WebGLUniformLocation | null;
|
|
14
|
+
export declare function setUnifrom(gl: WebGLRenderingContext, location: WebGLUniformLocation, data: number | Float32List, vec: string): void;
|
|
15
|
+
export declare function initFramebuffer(gl: WebGLRenderingContext): {
|
|
16
|
+
FRAMEBUFFER: WebGLFramebuffer | null;
|
|
17
|
+
OFFER_SCREEN_WIDTH: number;
|
|
18
|
+
OFFER_SCREEN_HEIGHT: number;
|
|
19
19
|
};
|
package/es/wind/models/utils.js
CHANGED
|
@@ -121,20 +121,22 @@ export function bindAttriIndicesBuffer(gl, indices) {
|
|
|
121
121
|
|
|
122
122
|
if (!buffer) {
|
|
123
123
|
console.warn('failed create vertex buffer');
|
|
124
|
+
} else {
|
|
125
|
+
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
|
|
126
|
+
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW);
|
|
124
127
|
}
|
|
125
128
|
|
|
126
|
-
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
|
|
127
|
-
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW);
|
|
128
129
|
return buffer;
|
|
129
130
|
}
|
|
130
131
|
export function bindUnifrom(gl, unifromName, data, program, vec) {
|
|
131
132
|
var uniform = gl.getUniformLocation(program, unifromName);
|
|
132
133
|
|
|
133
|
-
if (uniform < 0) {
|
|
134
|
+
if (uniform === null || uniform < 0) {
|
|
134
135
|
console.warn('无法获取 uniform 变量的存储位置');
|
|
136
|
+
} else {
|
|
137
|
+
setUnifrom(gl, uniform, data, vec);
|
|
135
138
|
}
|
|
136
139
|
|
|
137
|
-
setUnifrom(gl, uniform, data, vec);
|
|
138
140
|
return uniform;
|
|
139
141
|
}
|
|
140
142
|
export function setUnifrom(gl, location, data, vec) {
|
|
@@ -179,7 +181,6 @@ export function initFramebuffer(gl) {
|
|
|
179
181
|
gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, OFFER_SCREEN_WIDTH, OFFER_SCREEN_HEIGHT);
|
|
180
182
|
gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, depthbuffer);
|
|
181
183
|
var texture = gl.createTexture();
|
|
182
|
-
var textureSize = 1024;
|
|
183
184
|
FRAMEBUFFER.texture = texture;
|
|
184
185
|
FRAMEBUFFER.width = OFFER_SCREEN_WIDTH;
|
|
185
186
|
FRAMEBUFFER.height = OFFER_SCREEN_HEIGHT;
|
|
@@ -1 +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"}
|
|
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","NEAREST","framebufferTexture2D","COLOR_ATTACHMENT0"],"mappings":"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","sourcesContent":["export function createProgram(\n gl: WebGLRenderingContext,\n vshader: string,\n fshader: string,\n) {\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) as WebGLActiveInfo;\n // @ts-ignore\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) as WebGLActiveInfo;\n // @ts-ignore\n program[uniform.name] = gl.getUniformLocation(program, uniform.name);\n }\n\n // @ts-ignore\n program.vertexShader = vertexShader;\n // @ts-ignore\n program.fragmentShader = fragmentShader;\n\n return program;\n}\n\nexport function loadShader(\n gl: WebGLRenderingContext,\n type: number,\n source: string,\n) {\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(\n gl: WebGLRenderingContext,\n texture: WebGLTexture,\n unit: number,\n) {\n gl.activeTexture(gl.TEXTURE0 + unit);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n}\n\nexport function createBuffer(gl: WebGLRenderingContext, data: Float32Array) {\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: number,\n count: number,\n program: WebGLProgram,\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 } else {\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW);\n }\n\n return buffer as WebGLBuffer;\n}\n\nexport function bindUnifrom(\n gl: WebGLRenderingContext,\n unifromName: string,\n data: number | Float32List,\n program: WebGLProgram,\n vec: string,\n) {\n const uniform = gl.getUniformLocation(program, unifromName);\n if (uniform === null || uniform < 0) {\n console.warn('无法获取 uniform 变量的存储位置');\n } else {\n setUnifrom(gl, uniform, data, vec);\n }\n return uniform;\n}\n\nexport function setUnifrom(\n gl: WebGLRenderingContext,\n location: WebGLUniformLocation,\n data: number | Float32List,\n vec: string,\n) {\n switch (vec) {\n case 'float':\n gl.uniform1f(location, data as number);\n break;\n case 'vec2':\n gl.uniform2fv(location, data as Float32List);\n break;\n case 'vec3':\n gl.uniform3fv(location, data as Float32List);\n break;\n case 'vec4':\n gl.uniform4fv(location, data as Float32List);\n break;\n case 'bool':\n gl.uniform1i(location, data as number); // 1 - true 0 - false\n break;\n case 'sampler2d':\n break;\n case 'mat4':\n gl.uniformMatrix4fv(location, false, data as Float32List);\n break;\n }\n}\n\nexport function initFramebuffer(gl: WebGLRenderingContext) {\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 // @ts-ignore\n FRAMEBUFFER.texture = texture;\n // @ts-ignore\n FRAMEBUFFER.width = OFFER_SCREEN_WIDTH;\n // @ts-ignore\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"}
|