@antv/l7-layers 2.15.1 → 2.15.3
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.js +9 -31
- package/es/Geometry/models/billboard.js +51 -89
- package/es/Geometry/models/plane.js +81 -143
- package/es/Geometry/models/sprite.js +60 -118
- package/es/canvas/index.js +10 -33
- package/es/canvas/models/canvas.js +41 -97
- package/es/citybuliding/building.js +8 -27
- package/es/citybuliding/models/build.js +57 -82
- package/es/core/BaseLayer.js +320 -484
- package/es/core/BaseModel.js +97 -126
- package/es/core/LayerPickService.js +21 -32
- package/es/core/TextureService.js +0 -13
- package/es/core/interface.js +17 -24
- package/es/core/shape/Path.js +13 -20
- package/es/core/shape/extrude.js +10 -31
- package/es/core/triangulation.js +54 -114
- package/es/earth/index.js +9 -33
- package/es/earth/models/atmosphere.js +30 -54
- package/es/earth/models/base.js +47 -85
- package/es/earth/models/bloomsphere.js +30 -54
- package/es/earth/utils.js +9 -13
- package/es/heatmap/index.js +10 -40
- package/es/heatmap/models/grid.js +28 -52
- package/es/heatmap/models/grid3d.js +28 -52
- package/es/heatmap/models/heatmap.js +91 -146
- package/es/heatmap/models/hexagon.js +28 -52
- package/es/heatmap/triangulation.js +0 -4
- package/es/image/index.js +9 -28
- package/es/image/models/image.js +66 -100
- package/es/index.js +9 -17
- package/es/line/index.js +9 -34
- package/es/line/models/arc.js +66 -118
- package/es/line/models/arc_3d.js +60 -108
- package/es/line/models/earthArc_3d.js +63 -111
- package/es/line/models/great_circle.js +56 -100
- package/es/line/models/half.js +46 -77
- package/es/line/models/line.js +94 -148
- package/es/line/models/linearline.js +45 -80
- package/es/line/models/simpleLine.js +41 -74
- package/es/line/models/wall.js +52 -92
- package/es/mask/index.js +9 -28
- package/es/mask/models/fill.js +29 -54
- package/es/plugins/DataMappingPlugin.js +80 -117
- package/es/plugins/DataSourcePlugin.js +45 -68
- package/es/plugins/FeatureScalePlugin.js +67 -122
- package/es/plugins/LayerAnimateStylePlugin.js +0 -5
- package/es/plugins/LayerMaskPlugin.js +3 -11
- package/es/plugins/LayerModelPlugin.js +67 -104
- package/es/plugins/LayerStylePlugin.js +3 -9
- package/es/plugins/LightingPlugin.js +12 -18
- package/es/plugins/MultiPassRendererPlugin.js +11 -16
- package/es/plugins/PixelPickingPlugin.js +12 -21
- package/es/plugins/RegisterStyleAttributePlugin.js +5 -12
- package/es/plugins/ShaderUniformPlugin.js +13 -27
- package/es/plugins/UpdateModelPlugin.js +0 -5
- package/es/plugins/UpdateStyleAttributePlugin.js +5 -11
- package/es/point/index.js +26 -77
- package/es/point/models/earthExtrude.js +61 -102
- package/es/point/models/earthFill.js +57 -87
- package/es/point/models/extrude.js +60 -101
- package/es/point/models/fill.js +70 -100
- package/es/point/models/fillmage.js +63 -107
- package/es/point/models/image.js +48 -88
- package/es/point/models/index.js +2 -2
- package/es/point/models/normal.js +30 -54
- package/es/point/models/radar.js +40 -64
- package/es/point/models/simplePoint.js +41 -69
- package/es/point/models/text.d.ts +2 -0
- package/es/point/models/text.js +214 -295
- package/es/point/shape/extrude.js +4 -13
- package/es/polygon/index.js +11 -40
- package/es/polygon/models/extrude.js +48 -92
- package/es/polygon/models/fill.js +54 -88
- package/es/polygon/models/index.js +3 -2
- package/es/polygon/models/ocean.js +42 -76
- package/es/polygon/models/water.js +37 -71
- package/es/raster/buffers/triangulation.js +2 -4
- package/es/raster/index.js +9 -32
- package/es/raster/models/raster.js +80 -116
- package/es/raster/models/rasterRgb.js +84 -127
- package/es/raster/models/rasterTerrainRgb.js +56 -84
- package/es/tile/interaction/getRasterData.js +14 -20
- package/es/tile/interaction/utils.js +7 -9
- package/es/tile/manager/base.js +63 -96
- package/es/tile/service/TileLayerService.js +30 -52
- package/es/tile/service/TilePickService.js +26 -40
- package/es/tile/service/TileSourceService.js +3 -7
- package/es/tile/tileFactory/DebugTile.js +28 -45
- package/es/tile/tileFactory/ImageTile.js +20 -38
- package/es/tile/tileFactory/MaskTile.js +22 -43
- package/es/tile/tileFactory/RasterRGBTile.js +22 -42
- package/es/tile/tileFactory/RasterTerrainRGBTile.js +20 -38
- package/es/tile/tileFactory/RasterTile.js +30 -53
- package/es/tile/tileFactory/Tile.js +63 -97
- package/es/tile/tileFactory/VectorTile.js +41 -68
- package/es/tile/tileFactory/index.js +0 -11
- package/es/tile/tileFactory/layers/TileDebugLayer.js +6 -27
- package/es/tile/tileFactory/util.js +0 -3
- package/es/tile/tileLayer/BaseLayer.js +105 -146
- package/es/tile/utils.js +1 -1
- package/es/utils/blend.js +0 -2
- package/es/utils/collision-index.js +9 -16
- package/es/utils/dataMappingStyle.js +8 -18
- package/es/utils/extrude_polyline.js +101 -149
- package/es/utils/grid-index.js +2 -27
- package/es/utils/identityScale.js +0 -8
- package/es/utils/layerData.js +30 -44
- package/es/utils/multiPassRender.js +11 -13
- package/es/utils/polylineNormal.js +31 -37
- package/es/utils/simpleLine.js +2 -16
- package/es/utils/stencil.js +2 -3
- package/es/utils/symbol-layout.js +27 -53
- package/es/wind/index.js +9 -29
- package/es/wind/models/utils.js +26 -51
- package/es/wind/models/wind.js +101 -147
- package/es/wind/models/windRender.js +53 -66
- package/lib/Geometry/index.js +9 -38
- package/lib/Geometry/models/billboard.js +51 -97
- package/lib/Geometry/models/index.js +0 -5
- package/lib/Geometry/models/plane.js +79 -151
- package/lib/Geometry/models/sprite.js +60 -127
- package/lib/canvas/index.js +10 -40
- package/lib/canvas/models/canvas.js +41 -101
- package/lib/canvas/models/index.js +0 -3
- package/lib/citybuliding/building.js +8 -35
- package/lib/citybuliding/models/build.js +57 -92
- package/lib/core/BaseLayer.js +320 -478
- package/lib/core/BaseModel.js +97 -139
- package/lib/core/LayerPickService.js +21 -37
- package/lib/core/TextureService.js +0 -16
- package/lib/core/interface.js +21 -31
- package/lib/core/schema.js +0 -1
- package/lib/core/shape/Path.js +14 -31
- package/lib/core/shape/extrude.js +10 -54
- package/lib/core/triangulation.js +53 -153
- package/lib/earth/index.js +9 -43
- package/lib/earth/models/atmosphere.js +30 -63
- package/lib/earth/models/base.js +47 -90
- package/lib/earth/models/bloomsphere.js +30 -63
- package/lib/earth/utils.js +7 -31
- package/lib/heatmap/index.js +10 -48
- package/lib/heatmap/models/grid.js +28 -60
- package/lib/heatmap/models/grid3d.js +28 -60
- package/lib/heatmap/models/heatmap.js +91 -162
- package/lib/heatmap/models/hexagon.js +28 -60
- package/lib/heatmap/models/index.js +0 -6
- package/lib/heatmap/triangulation.js +0 -5
- package/lib/image/index.js +9 -36
- package/lib/image/models/image.js +66 -109
- package/lib/image/models/index.js +0 -3
- package/lib/index.js +7 -61
- package/lib/line/index.js +9 -40
- package/lib/line/models/arc.js +64 -128
- package/lib/line/models/arc_3d.js +58 -119
- package/lib/line/models/earthArc_3d.js +61 -122
- package/lib/line/models/great_circle.js +56 -111
- package/lib/line/models/half.js +46 -87
- package/lib/line/models/index.js +0 -11
- package/lib/line/models/line.js +92 -156
- package/lib/line/models/linearline.js +45 -92
- package/lib/line/models/simpleLine.js +41 -84
- package/lib/line/models/wall.js +52 -103
- package/lib/mask/index.js +9 -36
- package/lib/mask/models/fill.js +29 -63
- package/lib/mask/models/index.js +0 -3
- package/lib/plugins/DataMappingPlugin.js +80 -128
- package/lib/plugins/DataSourcePlugin.js +45 -76
- package/lib/plugins/FeatureScalePlugin.js +67 -138
- package/lib/plugins/LayerAnimateStylePlugin.js +0 -10
- package/lib/plugins/LayerMaskPlugin.js +4 -17
- package/lib/plugins/LayerModelPlugin.js +68 -113
- package/lib/plugins/LayerStylePlugin.js +4 -14
- package/lib/plugins/LightingPlugin.js +12 -25
- package/lib/plugins/MultiPassRendererPlugin.js +11 -22
- package/lib/plugins/PixelPickingPlugin.js +12 -27
- package/lib/plugins/RegisterStyleAttributePlugin.js +5 -19
- package/lib/plugins/ShaderUniformPlugin.js +13 -34
- package/lib/plugins/UpdateModelPlugin.js +1 -10
- package/lib/plugins/UpdateStyleAttributePlugin.js +5 -16
- package/lib/point/index.js +26 -83
- package/lib/point/models/earthExtrude.js +61 -113
- package/lib/point/models/earthFill.js +57 -117
- package/lib/point/models/extrude.js +60 -111
- package/lib/point/models/fill.js +68 -109
- package/lib/point/models/fillmage.js +61 -115
- package/lib/point/models/image.js +48 -98
- package/lib/point/models/index.js +1 -12
- package/lib/point/models/normal.js +30 -64
- package/lib/point/models/radar.js +40 -74
- package/lib/point/models/simplePoint.js +41 -79
- package/lib/point/models/text.js +214 -303
- package/lib/point/shape/extrude.js +4 -20
- package/lib/polygon/index.js +11 -48
- package/lib/polygon/models/extrude.js +48 -103
- package/lib/polygon/models/fill.js +54 -98
- package/lib/polygon/models/index.js +2 -14
- package/lib/polygon/models/ocean.js +42 -88
- package/lib/polygon/models/water.js +37 -82
- package/lib/raster/buffers/triangulation.js +3 -7
- package/lib/raster/index.js +9 -40
- package/lib/raster/models/index.js +0 -5
- package/lib/raster/models/raster.js +80 -125
- package/lib/raster/models/rasterRgb.js +84 -139
- package/lib/raster/models/rasterTerrainRgb.js +56 -93
- package/lib/tile/interaction/getRasterData.js +14 -25
- package/lib/tile/interaction/utils.js +7 -19
- package/lib/tile/manager/base.js +63 -104
- package/lib/tile/service/TileLayerService.js +30 -57
- package/lib/tile/service/TilePickService.js +26 -48
- package/lib/tile/service/TileSourceService.js +2 -16
- package/lib/tile/style/utils.js +0 -3
- package/lib/tile/tileFactory/DebugTile.js +28 -53
- package/lib/tile/tileFactory/ImageTile.js +20 -46
- package/lib/tile/tileFactory/MaskTile.js +22 -51
- package/lib/tile/tileFactory/RasterRGBTile.js +22 -50
- package/lib/tile/tileFactory/RasterTerrainRGBTile.js +20 -46
- package/lib/tile/tileFactory/RasterTile.js +30 -63
- package/lib/tile/tileFactory/Tile.js +63 -102
- package/lib/tile/tileFactory/VectorTile.js +41 -76
- package/lib/tile/tileFactory/index.js +0 -25
- package/lib/tile/tileFactory/layers/TileDebugLayer.js +6 -32
- package/lib/tile/tileFactory/util.js +0 -9
- package/lib/tile/tileLayer/BaseLayer.js +105 -153
- package/lib/tile/utils.js +1 -5
- package/lib/utils/blend.js +0 -5
- package/lib/utils/collision-index.js +9 -25
- package/lib/utils/dataMappingStyle.js +8 -19
- package/lib/utils/extrude_polyline.js +101 -181
- package/lib/utils/grid-index.js +2 -28
- package/lib/utils/identityScale.js +0 -9
- package/lib/utils/layerData.js +30 -49
- package/lib/utils/multiPassRender.js +11 -16
- package/lib/utils/polylineNormal.js +31 -66
- package/lib/utils/simpleLine.js +2 -21
- package/lib/utils/stencil.js +0 -4
- package/lib/utils/symbol-layout.js +27 -55
- package/lib/wind/index.js +9 -37
- package/lib/wind/models/index.js +0 -3
- package/lib/wind/models/utils.js +26 -62
- package/lib/wind/models/wind.js +101 -157
- package/lib/wind/models/windRender.js +53 -71
- package/lib/wind/models/windShader.js +0 -1
- package/package.json +7 -7
|
@@ -2,28 +2,23 @@ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
|
2
2
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
3
3
|
import { TYPES } from '@antv/l7-core';
|
|
4
4
|
import { generateCatRamp, generateColorRamp, generateCustomRamp, generateLinearRamp, generateQuantizeRamp } from '@antv/l7-utils';
|
|
5
|
-
|
|
6
5
|
var TextureService = /*#__PURE__*/function () {
|
|
7
6
|
function TextureService(layer) {
|
|
8
7
|
_classCallCheck(this, TextureService);
|
|
9
|
-
|
|
10
8
|
this.layer = layer;
|
|
11
9
|
var container = this.layer.getContainer();
|
|
12
10
|
this.rendererService = container.get(TYPES.IRendererService);
|
|
13
11
|
}
|
|
14
|
-
|
|
15
12
|
_createClass(TextureService, [{
|
|
16
13
|
key: "getColorTexture",
|
|
17
14
|
value: function getColorTexture(colorRamp, domain) {
|
|
18
15
|
// TODO 支持传入图片
|
|
19
16
|
var currentkey = this.getTextureKey(colorRamp, domain);
|
|
20
|
-
|
|
21
17
|
if (this.key === currentkey) {
|
|
22
18
|
return this.colorTexture;
|
|
23
19
|
} else {
|
|
24
20
|
this.createColorTexture(colorRamp, domain);
|
|
25
21
|
}
|
|
26
|
-
|
|
27
22
|
this.key = currentkey;
|
|
28
23
|
return this.colorTexture;
|
|
29
24
|
}
|
|
@@ -51,7 +46,6 @@ var TextureService = /*#__PURE__*/function () {
|
|
|
51
46
|
key: "destroy",
|
|
52
47
|
value: function destroy() {
|
|
53
48
|
var _this$colorTexture;
|
|
54
|
-
|
|
55
49
|
(_this$colorTexture = this.colorTexture) === null || _this$colorTexture === void 0 ? void 0 : _this$colorTexture.destroy();
|
|
56
50
|
}
|
|
57
51
|
}, {
|
|
@@ -60,16 +54,12 @@ var TextureService = /*#__PURE__*/function () {
|
|
|
60
54
|
switch (colorRamp.type) {
|
|
61
55
|
case 'cat':
|
|
62
56
|
return generateCatRamp(colorRamp);
|
|
63
|
-
|
|
64
57
|
case 'quantize':
|
|
65
58
|
return generateQuantizeRamp(colorRamp);
|
|
66
|
-
|
|
67
59
|
case 'custom':
|
|
68
60
|
return generateCustomRamp(colorRamp, domain);
|
|
69
|
-
|
|
70
61
|
case 'linear':
|
|
71
62
|
return generateLinearRamp(colorRamp, domain);
|
|
72
|
-
|
|
73
63
|
default:
|
|
74
64
|
return generateColorRamp(colorRamp);
|
|
75
65
|
}
|
|
@@ -78,12 +68,9 @@ var TextureService = /*#__PURE__*/function () {
|
|
|
78
68
|
key: "getTextureKey",
|
|
79
69
|
value: function getTextureKey(colorRamp, domain) {
|
|
80
70
|
var _colorRamp$positions;
|
|
81
|
-
|
|
82
71
|
return "".concat(colorRamp.colors.join('_'), "_").concat(colorRamp === null || colorRamp === void 0 ? void 0 : (_colorRamp$positions = colorRamp.positions) === null || _colorRamp$positions === void 0 ? void 0 : _colorRamp$positions.join('_'), "_").concat(colorRamp.type, "_").concat(domain === null || domain === void 0 ? void 0 : domain.join('_'));
|
|
83
72
|
}
|
|
84
73
|
}]);
|
|
85
|
-
|
|
86
74
|
return TextureService;
|
|
87
75
|
}();
|
|
88
|
-
|
|
89
76
|
export { TextureService as default };
|
package/es/core/interface.js
CHANGED
|
@@ -1,37 +1,30 @@
|
|
|
1
|
-
export var lineStyleType
|
|
2
|
-
|
|
3
|
-
(function (lineStyleType) {
|
|
1
|
+
export var lineStyleType = /*#__PURE__*/function (lineStyleType) {
|
|
4
2
|
lineStyleType[lineStyleType["solid"] = 0] = "solid";
|
|
5
3
|
lineStyleType[lineStyleType["dash"] = 1] = "dash";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export var LinearDir
|
|
9
|
-
|
|
10
|
-
(function (LinearDir) {
|
|
4
|
+
return lineStyleType;
|
|
5
|
+
}({});
|
|
6
|
+
export var LinearDir = /*#__PURE__*/function (LinearDir) {
|
|
11
7
|
LinearDir["VERTICAL"] = "vertical";
|
|
12
8
|
LinearDir["HORIZONTAL"] = "horizontal";
|
|
13
|
-
|
|
9
|
+
return LinearDir;
|
|
10
|
+
}({});
|
|
11
|
+
export var TextureBlend = /*#__PURE__*/function (TextureBlend) {
|
|
12
|
+
TextureBlend["NORMAL"] = "normal";
|
|
13
|
+
TextureBlend["REPLACE"] = "replace";
|
|
14
|
+
return TextureBlend;
|
|
15
|
+
}({});
|
|
14
16
|
|
|
15
|
-
export var TextureBlend;
|
|
16
17
|
/**
|
|
17
18
|
* 基础图层类型定义
|
|
18
19
|
*/
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
TextureBlend["NORMAL"] = "normal";
|
|
22
|
-
TextureBlend["REPLACE"] = "replace";
|
|
23
|
-
})(TextureBlend || (TextureBlend = {}));
|
|
24
|
-
|
|
25
|
-
export var SizeUnitType;
|
|
26
|
-
|
|
27
|
-
(function (SizeUnitType) {
|
|
21
|
+
export var SizeUnitType = /*#__PURE__*/function (SizeUnitType) {
|
|
28
22
|
SizeUnitType[SizeUnitType["pixel"] = 0] = "pixel";
|
|
29
23
|
SizeUnitType[SizeUnitType["meter"] = 1] = "meter";
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
export var CanvasUpdateType
|
|
33
|
-
|
|
34
|
-
(function (CanvasUpdateType) {
|
|
24
|
+
return SizeUnitType;
|
|
25
|
+
}({});
|
|
26
|
+
export var CanvasUpdateType = /*#__PURE__*/function (CanvasUpdateType) {
|
|
35
27
|
CanvasUpdateType["ALWAYS"] = "always";
|
|
36
28
|
CanvasUpdateType["DRAGEND"] = "dragend";
|
|
37
|
-
|
|
29
|
+
return CanvasUpdateType;
|
|
30
|
+
}({});
|
package/es/core/shape/Path.js
CHANGED
|
@@ -1,47 +1,40 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
|
|
3
2
|
var _geometryShape;
|
|
4
|
-
|
|
5
|
-
export var ShapeType3D;
|
|
6
|
-
|
|
7
|
-
(function (ShapeType3D) {
|
|
3
|
+
export var ShapeType3D = /*#__PURE__*/function (ShapeType3D) {
|
|
8
4
|
ShapeType3D["CYLINDER"] = "cylinder";
|
|
9
5
|
ShapeType3D["SQUARECOLUMN"] = "squareColumn";
|
|
10
6
|
ShapeType3D["TRIANGLECOLUMN"] = "triangleColumn";
|
|
11
7
|
ShapeType3D["HEXAGONCOLUMN"] = "hexagonColumn";
|
|
12
8
|
ShapeType3D["PENTAGONCOLUMN"] = "pentagonColumn";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export var ShapeType2D
|
|
16
|
-
/**
|
|
17
|
-
* 生成规则多边形顶点个数
|
|
18
|
-
* @param pointCount 顶点个数 3 => 三角形
|
|
19
|
-
* @param start 顶点起始角度 调整图形的方向
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
(function (ShapeType2D) {
|
|
9
|
+
return ShapeType3D;
|
|
10
|
+
}({});
|
|
11
|
+
export var ShapeType2D = /*#__PURE__*/function (ShapeType2D) {
|
|
23
12
|
ShapeType2D["CIRCLE"] = "circle";
|
|
24
13
|
ShapeType2D["SQUARE"] = "square";
|
|
25
14
|
ShapeType2D["TRIANGLE"] = "triangle";
|
|
26
15
|
ShapeType2D["HEXAGON"] = "hexagon";
|
|
27
16
|
ShapeType2D["PENTAGON"] = "pentagon";
|
|
28
|
-
|
|
17
|
+
return ShapeType2D;
|
|
18
|
+
}({});
|
|
29
19
|
|
|
20
|
+
/**
|
|
21
|
+
* 生成规则多边形顶点个数
|
|
22
|
+
* @param pointCount 顶点个数 3 => 三角形
|
|
23
|
+
* @param start 顶点起始角度 调整图形的方向
|
|
24
|
+
*/
|
|
30
25
|
export function polygonPath(pointCount) {
|
|
31
26
|
var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
32
27
|
var step = Math.PI * 2 / pointCount;
|
|
33
28
|
var line = [];
|
|
34
|
-
|
|
35
29
|
for (var i = 0; i < pointCount; i++) {
|
|
36
30
|
line.push(step * i + start * Math.PI / 12);
|
|
37
31
|
}
|
|
38
|
-
|
|
39
32
|
var path = line.map(function (t) {
|
|
40
33
|
var x = Math.sin(t + Math.PI / 4);
|
|
41
34
|
var y = Math.cos(t + Math.PI / 4);
|
|
42
35
|
return [x, y, 0];
|
|
43
|
-
});
|
|
44
|
-
|
|
36
|
+
});
|
|
37
|
+
// path.push(path[0]);
|
|
45
38
|
return path;
|
|
46
39
|
}
|
|
47
40
|
export function circle() {
|
package/es/core/shape/extrude.js
CHANGED
|
@@ -2,7 +2,6 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
|
2
2
|
import { lngLatToMeters } from '@antv/l7-utils';
|
|
3
3
|
import earcut from 'earcut';
|
|
4
4
|
import { vec3 } from 'gl-matrix';
|
|
5
|
-
|
|
6
5
|
/**
|
|
7
6
|
* 拉伸多边形顶点,返回拉伸后的顶点信息
|
|
8
7
|
* @param paths 路径数据组
|
|
@@ -11,18 +10,16 @@ import { vec3 } from 'gl-matrix';
|
|
|
11
10
|
export default function extrudePolygon(path) {
|
|
12
11
|
var p1 = path[0][0];
|
|
13
12
|
var p2 = path[0][path[0].length - 1];
|
|
14
|
-
|
|
15
13
|
if (p1[0] === p2[0] && p1[1] === p2[1]) {
|
|
16
14
|
path[0] = path[0].slice(0, path[0].length - 1);
|
|
17
15
|
}
|
|
18
|
-
|
|
19
16
|
var n = path[0].length;
|
|
20
17
|
var flattengeo = earcut.flatten(path);
|
|
21
18
|
var vertices = flattengeo.vertices,
|
|
22
|
-
|
|
19
|
+
dimensions = flattengeo.dimensions;
|
|
23
20
|
var positions = [];
|
|
24
|
-
var indexArray = [];
|
|
25
|
-
|
|
21
|
+
var indexArray = [];
|
|
22
|
+
// 设置顶部z值
|
|
26
23
|
for (var j = 0; j < vertices.length / dimensions; j++) {
|
|
27
24
|
if (dimensions === 2) {
|
|
28
25
|
positions.push(vertices[j * 2], vertices[j * 2 + 1], 1);
|
|
@@ -30,29 +27,23 @@ export default function extrudePolygon(path) {
|
|
|
30
27
|
positions.push(vertices[j * 3], vertices[j * 3 + 1], 1);
|
|
31
28
|
}
|
|
32
29
|
}
|
|
33
|
-
|
|
34
30
|
var triangles = earcut(flattengeo.vertices, flattengeo.holes, flattengeo.dimensions);
|
|
35
31
|
indexArray.push.apply(indexArray, _toConsumableArray(triangles));
|
|
36
|
-
|
|
37
|
-
var _loop = function _loop(i) {
|
|
32
|
+
var _loop = function _loop() {
|
|
38
33
|
var prePoint = flattengeo.vertices.slice(i * dimensions, (i + 1) * dimensions);
|
|
39
34
|
var nextPoint = flattengeo.vertices.slice((i + 1) * dimensions, (i + 2) * dimensions);
|
|
40
|
-
|
|
41
35
|
if (nextPoint.length === 0) {
|
|
42
36
|
nextPoint = flattengeo.vertices.slice(0, dimensions);
|
|
43
37
|
}
|
|
44
|
-
|
|
45
38
|
var indexOffset = positions.length / 3;
|
|
46
39
|
positions.push(prePoint[0], prePoint[1], 1, nextPoint[0], nextPoint[1], 1, prePoint[0], prePoint[1], 0, nextPoint[0], nextPoint[1], 0);
|
|
47
40
|
indexArray.push.apply(indexArray, _toConsumableArray([0, 2, 1, 2, 3, 1].map(function (v) {
|
|
48
41
|
return v + indexOffset;
|
|
49
42
|
})));
|
|
50
43
|
};
|
|
51
|
-
|
|
52
44
|
for (var i = 0; i < n; i++) {
|
|
53
|
-
_loop(
|
|
45
|
+
_loop();
|
|
54
46
|
}
|
|
55
|
-
|
|
56
47
|
return {
|
|
57
48
|
positions: positions,
|
|
58
49
|
index: indexArray
|
|
@@ -70,40 +61,33 @@ export function extrude_PolygonNormal(path) {
|
|
|
70
61
|
var needFlat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
71
62
|
var p1 = path[0][0];
|
|
72
63
|
var p2 = path[0][path[0].length - 1];
|
|
73
|
-
|
|
74
64
|
if (p1[0] === p2[0] && p1[1] === p2[1]) {
|
|
75
65
|
path[0] = path[0].slice(0, path[0].length - 1);
|
|
76
66
|
}
|
|
77
|
-
|
|
78
67
|
var n = path[0].length;
|
|
79
68
|
var flattengeo = earcut.flatten(path);
|
|
80
69
|
var vertices = flattengeo.vertices,
|
|
81
|
-
|
|
70
|
+
dimensions = flattengeo.dimensions;
|
|
82
71
|
var positions = [];
|
|
83
72
|
var indexArray = [];
|
|
84
|
-
var normals = [];
|
|
85
|
-
|
|
73
|
+
var normals = [];
|
|
74
|
+
// 设置顶部z值 position uv
|
|
86
75
|
for (var j = 0; j < vertices.length / dimensions; j++) {
|
|
87
76
|
if (dimensions === 2) {
|
|
88
77
|
positions.push(vertices[j * 2], vertices[j * 2 + 1], 1, -1, -1);
|
|
89
78
|
} else {
|
|
90
79
|
positions.push(vertices[j * 3], vertices[j * 3 + 1], 1, -1, -1);
|
|
91
80
|
}
|
|
92
|
-
|
|
93
81
|
normals.push(0, 0, 1);
|
|
94
82
|
}
|
|
95
|
-
|
|
96
83
|
var triangles = earcut(flattengeo.vertices, flattengeo.holes, flattengeo.dimensions);
|
|
97
84
|
indexArray.push.apply(indexArray, _toConsumableArray(triangles));
|
|
98
|
-
|
|
99
|
-
var _loop2 = function _loop2(i) {
|
|
85
|
+
var _loop2 = function _loop2() {
|
|
100
86
|
var prePoint = flattengeo.vertices.slice(i * dimensions, (i + 1) * dimensions);
|
|
101
87
|
var nextPoint = flattengeo.vertices.slice((i + 1) * dimensions, (i + 2) * dimensions);
|
|
102
|
-
|
|
103
88
|
if (nextPoint.length === 0) {
|
|
104
89
|
nextPoint = flattengeo.vertices.slice(0, dimensions);
|
|
105
90
|
}
|
|
106
|
-
|
|
107
91
|
var indexOffset = positions.length / 5;
|
|
108
92
|
positions.push(prePoint[0], prePoint[1], 1, 0, 0, nextPoint[0], nextPoint[1], 1, 0.1, 0, prePoint[0], prePoint[1], 0, 0, 0.8, nextPoint[0], nextPoint[1], 0, 0.1, 0.8);
|
|
109
93
|
var normal = computeVertexNormals([nextPoint[0], nextPoint[1], 1], [prePoint[0], prePoint[1], 0], [prePoint[0], prePoint[1], 1], needFlat);
|
|
@@ -112,30 +96,25 @@ export function extrude_PolygonNormal(path) {
|
|
|
112
96
|
return v + indexOffset;
|
|
113
97
|
})));
|
|
114
98
|
};
|
|
115
|
-
|
|
116
99
|
for (var i = 0; i < n; i++) {
|
|
117
|
-
_loop2(
|
|
100
|
+
_loop2();
|
|
118
101
|
}
|
|
119
|
-
|
|
120
102
|
return {
|
|
121
103
|
positions: positions,
|
|
122
104
|
index: indexArray,
|
|
123
105
|
normals: normals
|
|
124
106
|
};
|
|
125
107
|
}
|
|
126
|
-
|
|
127
108
|
function computeVertexNormals(p1, p2, p3) {
|
|
128
109
|
var needFlat = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
129
110
|
var cb = vec3.create();
|
|
130
111
|
var ab = vec3.create();
|
|
131
112
|
var normal = vec3.create();
|
|
132
|
-
|
|
133
113
|
if (needFlat) {
|
|
134
114
|
p1 = lngLatToMeters(p1);
|
|
135
115
|
p2 = lngLatToMeters(p2);
|
|
136
116
|
p3 = lngLatToMeters(p3);
|
|
137
117
|
}
|
|
138
|
-
|
|
139
118
|
var pA = vec3.fromValues.apply(vec3, _toConsumableArray(p1));
|
|
140
119
|
var pB = vec3.fromValues.apply(vec3, _toConsumableArray(p2));
|
|
141
120
|
var pC = vec3.fromValues.apply(vec3, _toConsumableArray(p3));
|