@antv/l7-layers 2.6.17 → 2.6.18
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/point/models/fill.js +1 -1
- package/es/point/shape/extrude.d.ts +1 -1
- package/es/point/shape/extrude.js.map +1 -1
- package/lib/point/models/fill.js +1 -1
- package/lib/point/shape/extrude.js.map +1 -1
- package/package.json +5 -5
- package/es/point/shape/Path.d.ts +0 -40
- package/es/point/shape/Path.js +0 -57
- package/es/point/shape/Path.js.map +0 -1
- package/lib/point/shape/Path.js +0 -82
- package/lib/point/shape/Path.js.map +0 -1
package/es/point/models/fill.js
CHANGED
|
@@ -14,7 +14,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
14
14
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
15
15
|
import BaseModel from '../../core/BaseModel';
|
|
16
16
|
import { GlobelPointFillTriangulation, PointFillTriangulation } from '../../core/triangulation';
|
|
17
|
-
var pointFillFrag = "#define Animate 0.0\n\nuniform float u_globel;\nuniform float u_additive;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\nuniform float u_time;\nuniform vec4 u_aimate: [ 0, 2., 1.0, 0.2 ];\n\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\n\n\nvoid main() {\n int shape = int(floor(v_data.w + 0.5));\n\n \n vec4 textrueStroke = vec4(\n styleMappingMat[1][0],\n styleMappingMat[1][1],\n styleMappingMat[1][2],\n styleMappingMat[1][3]\n );\n\n float opacity = styleMappingMat[0][0];\n float stroke_opacity = styleMappingMat[0][1];\n float strokeWidth = styleMappingMat[0][2];\n vec4 strokeColor = textrueStroke == vec4(0) ? v_color : textrueStroke;\n\n lowp float antialiasblur = v_data.z;\n float r = v_radius / (v_radius + strokeWidth);\n\n float outer_df;\n float inner_df;\n // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica'\n if (shape == 0) {\n outer_df = sdCircle(v_data.xy, 1.0);\n inner_df = sdCircle(v_data.xy, r);\n } else if (shape == 1) {\n outer_df = sdEquilateralTriangle(1.1 * v_data.xy);\n inner_df = sdEquilateralTriangle(1.1 / r * v_data.xy);\n } else if (shape == 2) {\n outer_df = sdBox(v_data.xy, vec2(1.));\n inner_df = sdBox(v_data.xy, vec2(r));\n } else if (shape == 3) {\n outer_df = sdPentagon(v_data.xy, 0.8);\n inner_df = sdPentagon(v_data.xy, r * 0.8);\n } else if (shape == 4) {\n outer_df = sdHexagon(v_data.xy, 0.8);\n inner_df = sdHexagon(v_data.xy, r * 0.8);\n } else if (shape == 5) {\n outer_df = sdOctogon(v_data.xy, 1.0);\n inner_df = sdOctogon(v_data.xy, r);\n } else if (shape == 6) {\n outer_df = sdHexagram(v_data.xy, 0.52);\n inner_df = sdHexagram(v_data.xy, r * 0.52);\n } else if (shape == 7) {\n outer_df = sdRhombus(v_data.xy, vec2(1.0));\n inner_df = sdRhombus(v_data.xy, vec2(r));\n } else if (shape == 8) {\n outer_df = sdVesica(v_data.xy, 1.1, 0.8);\n inner_df = sdVesica(v_data.xy, r * 1.1, r * 0.8);\n }\n\n if(u_globel > 0.0) {\n // TODO: \u5730\u7403\u6A21\u5F0F\u4E0B\u907F\u514D\u591A\u4F59\u7247\u5143\u7ED8\u5236\uFF0C\u540C\u65F6\u4E5F\u80FD\u907F\u514D\u6709\u7528\u7247\u5143\u5728\u900F\u660E\u4E14\u91CD\u53E0\u7684\u60C5\u51B5\u4E0B\u65E0\u6CD5\u5199\u5165\n // \u4ED8\u51FA\u7684\u4EE3\u4EF7\u662F\u8FB9\u7F18\u4F1A\u6709\u4E00\u4E9B\u952F\u9F7F\n if(outer_df > antialiasblur + 0.018) discard;\n }\n float opacity_t = smoothstep(0.0, antialiasblur, outer_df); \n\n float color_t = strokeWidth < 0.01 ? 0.0 : smoothstep(\n antialiasblur,\n 0.0,\n inner_df\n );\n float PI = 3.14159;\n float N_RINGS = 3.0;\n float FREQ = 1.0;\n\n gl_FragColor = mix(vec4(v_color.rgb, v_color.a * opacity), strokeColor * stroke_opacity, color_t);\n\n if(u_aimate.x == Animate) {\n float d = length(v_data.xy);\n float intensity = clamp(cos(d * PI), 0.0, 1.0) * clamp(cos(2.0 * PI * (d * 2.0 * u_aimate.z - u_aimate.y * u_time)), 0.0, 1.0);\n \n // TODO: \u6839\u636E\u53E0\u52A0\u6A21\u5F0F\u9009\u62E9\u6548\u679C\n if(u_additive > 0.0) {\n gl_FragColor *= intensity;\n } else {\n gl_FragColor = vec4(gl_FragColor.xyz, intensity);\n }\n \n // TODO: \u4F18\u5316\u5728\u6C34\u6CE2\u7EB9\u60C5\u51B5\u4E0B\u7684\u62FE\u53D6\uFF08a == 0 \u65F6\u65E0\u6CD5\u62FE\u53D6\uFF09\n if(d < 0.7) {\n gl_FragColor.a = max(gl_FragColor.a, 0.001);\n }\n\n
|
|
17
|
+
var pointFillFrag = "#define Animate 0.0\n\nuniform float u_globel;\nuniform float u_additive;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\nuniform float u_time;\nuniform vec4 u_aimate: [ 0, 2., 1.0, 0.2 ];\n\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\n\n\nvoid main() {\n int shape = int(floor(v_data.w + 0.5));\n\n \n vec4 textrueStroke = vec4(\n styleMappingMat[1][0],\n styleMappingMat[1][1],\n styleMappingMat[1][2],\n styleMappingMat[1][3]\n );\n\n float opacity = styleMappingMat[0][0];\n float stroke_opacity = styleMappingMat[0][1];\n float strokeWidth = styleMappingMat[0][2];\n vec4 strokeColor = textrueStroke == vec4(0) ? v_color : textrueStroke;\n\n lowp float antialiasblur = v_data.z;\n float r = v_radius / (v_radius + strokeWidth);\n\n float outer_df;\n float inner_df;\n // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica'\n if (shape == 0) {\n outer_df = sdCircle(v_data.xy, 1.0);\n inner_df = sdCircle(v_data.xy, r);\n } else if (shape == 1) {\n outer_df = sdEquilateralTriangle(1.1 * v_data.xy);\n inner_df = sdEquilateralTriangle(1.1 / r * v_data.xy);\n } else if (shape == 2) {\n outer_df = sdBox(v_data.xy, vec2(1.));\n inner_df = sdBox(v_data.xy, vec2(r));\n } else if (shape == 3) {\n outer_df = sdPentagon(v_data.xy, 0.8);\n inner_df = sdPentagon(v_data.xy, r * 0.8);\n } else if (shape == 4) {\n outer_df = sdHexagon(v_data.xy, 0.8);\n inner_df = sdHexagon(v_data.xy, r * 0.8);\n } else if (shape == 5) {\n outer_df = sdOctogon(v_data.xy, 1.0);\n inner_df = sdOctogon(v_data.xy, r);\n } else if (shape == 6) {\n outer_df = sdHexagram(v_data.xy, 0.52);\n inner_df = sdHexagram(v_data.xy, r * 0.52);\n } else if (shape == 7) {\n outer_df = sdRhombus(v_data.xy, vec2(1.0));\n inner_df = sdRhombus(v_data.xy, vec2(r));\n } else if (shape == 8) {\n outer_df = sdVesica(v_data.xy, 1.1, 0.8);\n inner_df = sdVesica(v_data.xy, r * 1.1, r * 0.8);\n }\n\n if(u_globel > 0.0) {\n // TODO: \u5730\u7403\u6A21\u5F0F\u4E0B\u907F\u514D\u591A\u4F59\u7247\u5143\u7ED8\u5236\uFF0C\u540C\u65F6\u4E5F\u80FD\u907F\u514D\u6709\u7528\u7247\u5143\u5728\u900F\u660E\u4E14\u91CD\u53E0\u7684\u60C5\u51B5\u4E0B\u65E0\u6CD5\u5199\u5165\n // \u4ED8\u51FA\u7684\u4EE3\u4EF7\u662F\u8FB9\u7F18\u4F1A\u6709\u4E00\u4E9B\u952F\u9F7F\n if(outer_df > antialiasblur + 0.018) discard;\n }\n float opacity_t = smoothstep(0.0, antialiasblur, outer_df); \n\n float color_t = strokeWidth < 0.01 ? 0.0 : smoothstep(\n antialiasblur,\n 0.0,\n inner_df\n );\n float PI = 3.14159;\n float N_RINGS = 3.0;\n float FREQ = 1.0;\n\n gl_FragColor = mix(vec4(v_color.rgb, v_color.a * opacity), strokeColor * stroke_opacity, color_t);\n\n if(u_aimate.x == Animate) {\n float d = length(v_data.xy);\n float intensity = clamp(cos(d * PI), 0.0, 1.0) * clamp(cos(2.0 * PI * (d * 2.0 * u_aimate.z - u_aimate.y * u_time)), 0.0, 1.0);\n \n // TODO: \u6839\u636E\u53E0\u52A0\u6A21\u5F0F\u9009\u62E9\u6548\u679C\n if(u_additive > 0.0) {\n gl_FragColor *= intensity;\n } else {\n gl_FragColor = vec4(gl_FragColor.xyz, intensity);\n }\n \n // TODO: \u4F18\u5316\u5728\u6C34\u6CE2\u7EB9\u60C5\u51B5\u4E0B\u7684\u62FE\u53D6\uFF08a == 0 \u65F6\u65E0\u6CD5\u62FE\u53D6\uFF09\n if(d < 0.7) {\n gl_FragColor.a = max(gl_FragColor.a, 0.001);\n }\n\n if(u_additive > 0.0) {\n gl_FragColor = filterColorAnimate(gl_FragColor);\n } else {\n gl_FragColor = filterColor(gl_FragColor);\n }\n\n } else {\n gl_FragColor = filterColor(gl_FragColor);\n }\n\n gl_FragColor *= opacity_t;\n}\n";
|
|
18
18
|
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute float a_Shape;\n\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\nuniform float u_globel;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\n\nuniform float u_opacity : 1;\nuniform float u_stroke_opacity : 1;\nuniform float u_stroke_width : 2;\nuniform vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0];\nuniform vec2 u_offsets;\n\nuniform float u_blur : 0.0;\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n#pragma include \"styleMappingCalStrokeOpacity\"\n#pragma include \"styleMappingCalStrokeWidth\"\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\n\nvoid main() {\n vec3 extrude = a_Extrude;\n float shape_type = a_Shape;\n float newSize = setPickingSize(a_Size);\n\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n\n vec2 strokeOpacityAndOffset = calStrokeOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][1] = strokeOpacityAndOffset.r;\n textureOffset = strokeOpacityAndOffset.g;\n\n vec2 strokeWidthAndOffset = calStrokeWidthAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][2] = strokeWidthAndOffset.r;\n textureOffset = strokeWidthAndOffset.g;\n\n vec4 textrueStroke = vec4(-1.0, -1.0, -1.0, -1.0);\n if(hasStroke()) {\n vec2 valueRPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][0] = pos2value(valueRPos, columnWidth, rowHeight); // R\n textureOffset += 1.0;\n\n vec2 valueGPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][1] = pos2value(valueGPos, columnWidth, rowHeight); // G\n textureOffset += 1.0;\n\n vec2 valueBPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][2] = pos2value(valueBPos, columnWidth, rowHeight); // B\n textureOffset += 1.0;\n\n vec2 valueAPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][3] = pos2value(valueAPos, columnWidth, rowHeight); // A\n textureOffset += 1.0;\n } else {\n if(u_stroke_color == vec4(0.0)) {\n styleMappingMat[1][0] = v_color.r;\n styleMappingMat[1][1] = v_color.g;\n styleMappingMat[1][2] = v_color.b;\n styleMappingMat[1][3] = v_color.a;\n } else {\n styleMappingMat[1][0] = u_stroke_color.r;\n styleMappingMat[1][1] = u_stroke_color.g;\n styleMappingMat[1][2] = u_stroke_color.b;\n styleMappingMat[1][3] = u_stroke_color.a;\n }\n }\n\n vec2 textrueOffsets = vec2(0.0, 0.0);\n if(hasOffsets()) {\n vec2 valueXPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.r = pos2value(valueXPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n\n vec2 valueYPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.g = pos2value(valueYPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n } else {\n textrueOffsets = u_offsets;\n }\n\n // cal style mapping\n\n // unpack color(vec2)\n v_color = a_Color;\n\n // radius(16-bit)\n v_radius = newSize;\n\n // TODO: billboard\n // anti-alias\n // float antialiased_blur = -max(u_blur, antialiasblur);\n float antialiasblur = -max(1.0 / u_DevicePixelRatio / (newSize + u_stroke_width), u_blur);\n\n // construct point coords\n // TODP: /abs(extrude.x) \u662F\u4E3A\u4E86\u517C\u5BB9\u5730\u7403\u6A21\u5F0F\n v_data = vec4(extrude.x/abs(extrude.x), extrude.y/abs(extrude.y), antialiasblur,shape_type);\n\n // vec2 offset = project_pixel(extrude * (newSize + u_stroke_width) + u_offsets);\n vec2 offset = project_pixel(extrude.xy * (newSize + u_stroke_width) + textrueOffsets);\n vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * vec4(project_pos.xy + offset, 0.0, 1.0);\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0));\n }\n\n if(u_globel > 0.0) {\n gl_Position = u_ViewProjectionMatrix * vec4(a_Position + extrude * newSize * 0.1, 1.0);\n }\n \n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n\n setPickingColor(a_PickingColor);\n}\n";
|
|
19
19
|
import { mat4, vec3 } from 'gl-matrix';
|
|
20
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/point/shape/extrude.ts"],"names":["earcut","extrudePolygon","path","p1","p2","length","slice","n","flattengeo","flatten","positions","indexArray","normals","j","vertices","push","triangles","holes","dimensions","i","prePoint","nextPoint","indexOffset","map","v","index","fillPolygon","points"],"mappings":"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","sourcesContent":["import earcut from 'earcut';\nimport { IPath } from '
|
|
1
|
+
{"version":3,"sources":["../../../src/point/shape/extrude.ts"],"names":["earcut","extrudePolygon","path","p1","p2","length","slice","n","flattengeo","flatten","positions","indexArray","normals","j","vertices","push","triangles","holes","dimensions","i","prePoint","nextPoint","indexOffset","map","v","index","fillPolygon","points"],"mappings":"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","sourcesContent":["import earcut from 'earcut';\nimport { IPath } from '../../core/shape/Path';\nexport interface IExtrudeGeomety {\n positions: number[];\n index: number[];\n}\n/**\n * 拉伸多边形顶点,返回拉伸后的顶点信息\n * @param paths 路径数据组\n * @param extrude 是否拉伸\n */\nexport default function extrudePolygon(path: IPath[]): IExtrudeGeomety {\n const p1 = path[0][0];\n const p2 = path[0][path[0].length - 1];\n if (p1[0] === p2[0] && p1[1] === p2[1]) {\n path[0] = path[0].slice(0, path[0].length - 1);\n }\n const n = path[0].length;\n const flattengeo = earcut.flatten(path);\n const positions = [];\n const indexArray = [];\n const normals = [];\n // 设置顶部z值\n for (let j = 0; j < flattengeo.vertices.length / 3; j++) {\n flattengeo.vertices[j * 3 + 2] = 1;\n normals.push(0, 0, 1);\n }\n positions.push(...flattengeo.vertices);\n const triangles = earcut(\n flattengeo.vertices,\n flattengeo.holes,\n flattengeo.dimensions,\n );\n indexArray.push(...triangles);\n for (let i = 0; i < n; i++) {\n const prePoint = flattengeo.vertices.slice(i * 3, i * 3 + 3);\n let nextPoint = flattengeo.vertices.slice(i * 3 + 3, i * 3 + 6);\n if (nextPoint.length === 0) {\n nextPoint = flattengeo.vertices.slice(0, 3);\n }\n const indexOffset = positions.length / 3;\n positions.push(\n prePoint[0],\n prePoint[1],\n 1,\n nextPoint[0],\n nextPoint[1],\n 1,\n prePoint[0],\n prePoint[1],\n 0,\n nextPoint[0],\n nextPoint[1],\n 0,\n );\n indexArray.push(...[1, 2, 0, 3, 2, 1].map((v) => v + indexOffset));\n }\n return {\n positions,\n index: indexArray,\n };\n}\nexport function fillPolygon(points: IPath[]) {\n const flattengeo = earcut.flatten(points);\n const triangles = earcut(\n flattengeo.vertices,\n flattengeo.holes,\n flattengeo.dimensions,\n );\n return {\n positions: flattengeo.vertices,\n index: triangles,\n };\n}\n"],"file":"extrude.js"}
|
package/lib/point/models/fill.js
CHANGED
|
@@ -35,7 +35,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
35
35
|
|
|
36
36
|
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; } }
|
|
37
37
|
|
|
38
|
-
var pointFillFrag = "#define Animate 0.0\n\nuniform float u_globel;\nuniform float u_additive;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\nuniform float u_time;\nuniform vec4 u_aimate: [ 0, 2., 1.0, 0.2 ];\n\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\n\n\nvoid main() {\n int shape = int(floor(v_data.w + 0.5));\n\n \n vec4 textrueStroke = vec4(\n styleMappingMat[1][0],\n styleMappingMat[1][1],\n styleMappingMat[1][2],\n styleMappingMat[1][3]\n );\n\n float opacity = styleMappingMat[0][0];\n float stroke_opacity = styleMappingMat[0][1];\n float strokeWidth = styleMappingMat[0][2];\n vec4 strokeColor = textrueStroke == vec4(0) ? v_color : textrueStroke;\n\n lowp float antialiasblur = v_data.z;\n float r = v_radius / (v_radius + strokeWidth);\n\n float outer_df;\n float inner_df;\n // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica'\n if (shape == 0) {\n outer_df = sdCircle(v_data.xy, 1.0);\n inner_df = sdCircle(v_data.xy, r);\n } else if (shape == 1) {\n outer_df = sdEquilateralTriangle(1.1 * v_data.xy);\n inner_df = sdEquilateralTriangle(1.1 / r * v_data.xy);\n } else if (shape == 2) {\n outer_df = sdBox(v_data.xy, vec2(1.));\n inner_df = sdBox(v_data.xy, vec2(r));\n } else if (shape == 3) {\n outer_df = sdPentagon(v_data.xy, 0.8);\n inner_df = sdPentagon(v_data.xy, r * 0.8);\n } else if (shape == 4) {\n outer_df = sdHexagon(v_data.xy, 0.8);\n inner_df = sdHexagon(v_data.xy, r * 0.8);\n } else if (shape == 5) {\n outer_df = sdOctogon(v_data.xy, 1.0);\n inner_df = sdOctogon(v_data.xy, r);\n } else if (shape == 6) {\n outer_df = sdHexagram(v_data.xy, 0.52);\n inner_df = sdHexagram(v_data.xy, r * 0.52);\n } else if (shape == 7) {\n outer_df = sdRhombus(v_data.xy, vec2(1.0));\n inner_df = sdRhombus(v_data.xy, vec2(r));\n } else if (shape == 8) {\n outer_df = sdVesica(v_data.xy, 1.1, 0.8);\n inner_df = sdVesica(v_data.xy, r * 1.1, r * 0.8);\n }\n\n if(u_globel > 0.0) {\n // TODO: \u5730\u7403\u6A21\u5F0F\u4E0B\u907F\u514D\u591A\u4F59\u7247\u5143\u7ED8\u5236\uFF0C\u540C\u65F6\u4E5F\u80FD\u907F\u514D\u6709\u7528\u7247\u5143\u5728\u900F\u660E\u4E14\u91CD\u53E0\u7684\u60C5\u51B5\u4E0B\u65E0\u6CD5\u5199\u5165\n // \u4ED8\u51FA\u7684\u4EE3\u4EF7\u662F\u8FB9\u7F18\u4F1A\u6709\u4E00\u4E9B\u952F\u9F7F\n if(outer_df > antialiasblur + 0.018) discard;\n }\n float opacity_t = smoothstep(0.0, antialiasblur, outer_df); \n\n float color_t = strokeWidth < 0.01 ? 0.0 : smoothstep(\n antialiasblur,\n 0.0,\n inner_df\n );\n float PI = 3.14159;\n float N_RINGS = 3.0;\n float FREQ = 1.0;\n\n gl_FragColor = mix(vec4(v_color.rgb, v_color.a * opacity), strokeColor * stroke_opacity, color_t);\n\n if(u_aimate.x == Animate) {\n float d = length(v_data.xy);\n float intensity = clamp(cos(d * PI), 0.0, 1.0) * clamp(cos(2.0 * PI * (d * 2.0 * u_aimate.z - u_aimate.y * u_time)), 0.0, 1.0);\n \n // TODO: \u6839\u636E\u53E0\u52A0\u6A21\u5F0F\u9009\u62E9\u6548\u679C\n if(u_additive > 0.0) {\n gl_FragColor *= intensity;\n } else {\n gl_FragColor = vec4(gl_FragColor.xyz, intensity);\n }\n \n // TODO: \u4F18\u5316\u5728\u6C34\u6CE2\u7EB9\u60C5\u51B5\u4E0B\u7684\u62FE\u53D6\uFF08a == 0 \u65F6\u65E0\u6CD5\u62FE\u53D6\uFF09\n if(d < 0.7) {\n gl_FragColor.a = max(gl_FragColor.a, 0.001);\n }\n\n
|
|
38
|
+
var pointFillFrag = "#define Animate 0.0\n\nuniform float u_globel;\nuniform float u_additive;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\nuniform float u_time;\nuniform vec4 u_aimate: [ 0, 2., 1.0, 0.2 ];\n\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\n\n\nvoid main() {\n int shape = int(floor(v_data.w + 0.5));\n\n \n vec4 textrueStroke = vec4(\n styleMappingMat[1][0],\n styleMappingMat[1][1],\n styleMappingMat[1][2],\n styleMappingMat[1][3]\n );\n\n float opacity = styleMappingMat[0][0];\n float stroke_opacity = styleMappingMat[0][1];\n float strokeWidth = styleMappingMat[0][2];\n vec4 strokeColor = textrueStroke == vec4(0) ? v_color : textrueStroke;\n\n lowp float antialiasblur = v_data.z;\n float r = v_radius / (v_radius + strokeWidth);\n\n float outer_df;\n float inner_df;\n // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica'\n if (shape == 0) {\n outer_df = sdCircle(v_data.xy, 1.0);\n inner_df = sdCircle(v_data.xy, r);\n } else if (shape == 1) {\n outer_df = sdEquilateralTriangle(1.1 * v_data.xy);\n inner_df = sdEquilateralTriangle(1.1 / r * v_data.xy);\n } else if (shape == 2) {\n outer_df = sdBox(v_data.xy, vec2(1.));\n inner_df = sdBox(v_data.xy, vec2(r));\n } else if (shape == 3) {\n outer_df = sdPentagon(v_data.xy, 0.8);\n inner_df = sdPentagon(v_data.xy, r * 0.8);\n } else if (shape == 4) {\n outer_df = sdHexagon(v_data.xy, 0.8);\n inner_df = sdHexagon(v_data.xy, r * 0.8);\n } else if (shape == 5) {\n outer_df = sdOctogon(v_data.xy, 1.0);\n inner_df = sdOctogon(v_data.xy, r);\n } else if (shape == 6) {\n outer_df = sdHexagram(v_data.xy, 0.52);\n inner_df = sdHexagram(v_data.xy, r * 0.52);\n } else if (shape == 7) {\n outer_df = sdRhombus(v_data.xy, vec2(1.0));\n inner_df = sdRhombus(v_data.xy, vec2(r));\n } else if (shape == 8) {\n outer_df = sdVesica(v_data.xy, 1.1, 0.8);\n inner_df = sdVesica(v_data.xy, r * 1.1, r * 0.8);\n }\n\n if(u_globel > 0.0) {\n // TODO: \u5730\u7403\u6A21\u5F0F\u4E0B\u907F\u514D\u591A\u4F59\u7247\u5143\u7ED8\u5236\uFF0C\u540C\u65F6\u4E5F\u80FD\u907F\u514D\u6709\u7528\u7247\u5143\u5728\u900F\u660E\u4E14\u91CD\u53E0\u7684\u60C5\u51B5\u4E0B\u65E0\u6CD5\u5199\u5165\n // \u4ED8\u51FA\u7684\u4EE3\u4EF7\u662F\u8FB9\u7F18\u4F1A\u6709\u4E00\u4E9B\u952F\u9F7F\n if(outer_df > antialiasblur + 0.018) discard;\n }\n float opacity_t = smoothstep(0.0, antialiasblur, outer_df); \n\n float color_t = strokeWidth < 0.01 ? 0.0 : smoothstep(\n antialiasblur,\n 0.0,\n inner_df\n );\n float PI = 3.14159;\n float N_RINGS = 3.0;\n float FREQ = 1.0;\n\n gl_FragColor = mix(vec4(v_color.rgb, v_color.a * opacity), strokeColor * stroke_opacity, color_t);\n\n if(u_aimate.x == Animate) {\n float d = length(v_data.xy);\n float intensity = clamp(cos(d * PI), 0.0, 1.0) * clamp(cos(2.0 * PI * (d * 2.0 * u_aimate.z - u_aimate.y * u_time)), 0.0, 1.0);\n \n // TODO: \u6839\u636E\u53E0\u52A0\u6A21\u5F0F\u9009\u62E9\u6548\u679C\n if(u_additive > 0.0) {\n gl_FragColor *= intensity;\n } else {\n gl_FragColor = vec4(gl_FragColor.xyz, intensity);\n }\n \n // TODO: \u4F18\u5316\u5728\u6C34\u6CE2\u7EB9\u60C5\u51B5\u4E0B\u7684\u62FE\u53D6\uFF08a == 0 \u65F6\u65E0\u6CD5\u62FE\u53D6\uFF09\n if(d < 0.7) {\n gl_FragColor.a = max(gl_FragColor.a, 0.001);\n }\n\n if(u_additive > 0.0) {\n gl_FragColor = filterColorAnimate(gl_FragColor);\n } else {\n gl_FragColor = filterColor(gl_FragColor);\n }\n\n } else {\n gl_FragColor = filterColor(gl_FragColor);\n }\n\n gl_FragColor *= opacity_t;\n}\n";
|
|
39
39
|
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute float a_Shape;\n\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\nuniform float u_globel;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\n\nuniform float u_opacity : 1;\nuniform float u_stroke_opacity : 1;\nuniform float u_stroke_width : 2;\nuniform vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0];\nuniform vec2 u_offsets;\n\nuniform float u_blur : 0.0;\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n#pragma include \"styleMappingCalStrokeOpacity\"\n#pragma include \"styleMappingCalStrokeWidth\"\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\n\nvoid main() {\n vec3 extrude = a_Extrude;\n float shape_type = a_Shape;\n float newSize = setPickingSize(a_Size);\n\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n\n vec2 strokeOpacityAndOffset = calStrokeOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][1] = strokeOpacityAndOffset.r;\n textureOffset = strokeOpacityAndOffset.g;\n\n vec2 strokeWidthAndOffset = calStrokeWidthAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][2] = strokeWidthAndOffset.r;\n textureOffset = strokeWidthAndOffset.g;\n\n vec4 textrueStroke = vec4(-1.0, -1.0, -1.0, -1.0);\n if(hasStroke()) {\n vec2 valueRPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][0] = pos2value(valueRPos, columnWidth, rowHeight); // R\n textureOffset += 1.0;\n\n vec2 valueGPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][1] = pos2value(valueGPos, columnWidth, rowHeight); // G\n textureOffset += 1.0;\n\n vec2 valueBPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][2] = pos2value(valueBPos, columnWidth, rowHeight); // B\n textureOffset += 1.0;\n\n vec2 valueAPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][3] = pos2value(valueAPos, columnWidth, rowHeight); // A\n textureOffset += 1.0;\n } else {\n if(u_stroke_color == vec4(0.0)) {\n styleMappingMat[1][0] = v_color.r;\n styleMappingMat[1][1] = v_color.g;\n styleMappingMat[1][2] = v_color.b;\n styleMappingMat[1][3] = v_color.a;\n } else {\n styleMappingMat[1][0] = u_stroke_color.r;\n styleMappingMat[1][1] = u_stroke_color.g;\n styleMappingMat[1][2] = u_stroke_color.b;\n styleMappingMat[1][3] = u_stroke_color.a;\n }\n }\n\n vec2 textrueOffsets = vec2(0.0, 0.0);\n if(hasOffsets()) {\n vec2 valueXPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.r = pos2value(valueXPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n\n vec2 valueYPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.g = pos2value(valueYPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n } else {\n textrueOffsets = u_offsets;\n }\n\n // cal style mapping\n\n // unpack color(vec2)\n v_color = a_Color;\n\n // radius(16-bit)\n v_radius = newSize;\n\n // TODO: billboard\n // anti-alias\n // float antialiased_blur = -max(u_blur, antialiasblur);\n float antialiasblur = -max(1.0 / u_DevicePixelRatio / (newSize + u_stroke_width), u_blur);\n\n // construct point coords\n // TODP: /abs(extrude.x) \u662F\u4E3A\u4E86\u517C\u5BB9\u5730\u7403\u6A21\u5F0F\n v_data = vec4(extrude.x/abs(extrude.x), extrude.y/abs(extrude.y), antialiasblur,shape_type);\n\n // vec2 offset = project_pixel(extrude * (newSize + u_stroke_width) + u_offsets);\n vec2 offset = project_pixel(extrude.xy * (newSize + u_stroke_width) + textrueOffsets);\n vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * vec4(project_pos.xy + offset, 0.0, 1.0);\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0));\n }\n\n if(u_globel > 0.0) {\n gl_Position = u_ViewProjectionMatrix * vec4(a_Position + extrude * newSize * 0.1, 1.0);\n }\n \n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n\n setPickingColor(a_PickingColor);\n}\n";
|
|
40
40
|
|
|
41
41
|
var FillModel = function (_BaseModel) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/point/shape/extrude.ts"],"names":["extrudePolygon","path","p1","p2","length","slice","n","flattengeo","earcut","flatten","positions","indexArray","normals","j","vertices","push","triangles","holes","dimensions","i","prePoint","nextPoint","indexOffset","map","v","index","fillPolygon","points"],"mappings":";;;;;;;;;;;;AAAA;;AAWe,SAASA,cAAT,CAAwBC,IAAxB,EAAwD;AACrE,MAAMC,EAAE,GAAGD,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAX;AACA,MAAME,EAAE,GAAGF,IAAI,CAAC,CAAD,CAAJ,CAAQA,IAAI,CAAC,CAAD,CAAJ,CAAQG,MAAR,GAAiB,CAAzB,CAAX;;AACA,MAAIF,EAAE,CAAC,CAAD,CAAF,KAAUC,EAAE,CAAC,CAAD,CAAZ,IAAmBD,EAAE,CAAC,CAAD,CAAF,KAAUC,EAAE,CAAC,CAAD,CAAnC,EAAwC;AACtCF,IAAAA,IAAI,CAAC,CAAD,CAAJ,GAAUA,IAAI,CAAC,CAAD,CAAJ,CAAQI,KAAR,CAAc,CAAd,EAAiBJ,IAAI,CAAC,CAAD,CAAJ,CAAQG,MAAR,GAAiB,CAAlC,CAAV;AACD;;AACD,MAAME,CAAC,GAAGL,IAAI,CAAC,CAAD,CAAJ,CAAQG,MAAlB;;AACA,MAAMG,UAAU,GAAGC,gBAAOC,OAAP,CAAeR,IAAf,CAAnB;;AACA,MAAMS,SAAS,GAAG,EAAlB;AACA,MAAMC,UAAU,GAAG,EAAnB;AACA,MAAMC,OAAO,GAAG,EAAhB;;AAEA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,UAAU,CAACO,QAAX,CAAoBV,MAApB,GAA6B,CAAjD,EAAoDS,CAAC,EAArD,EAAyD;AACvDN,IAAAA,UAAU,CAACO,QAAX,CAAoBD,CAAC,GAAG,CAAJ,GAAQ,CAA5B,IAAiC,CAAjC;AACAD,IAAAA,OAAO,CAACG,IAAR,CAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB;AACD;;AACDL,EAAAA,SAAS,CAACK,IAAV,OAAAL,SAAS,mCAASH,UAAU,CAACO,QAApB,EAAT;AACA,MAAME,SAAS,GAAG,qBAChBT,UAAU,CAACO,QADK,EAEhBP,UAAU,CAACU,KAFK,EAGhBV,UAAU,CAACW,UAHK,CAAlB;AAKAP,EAAAA,UAAU,CAACI,IAAX,OAAAJ,UAAU,mCAASK,SAAT,EAAV;;AAtBqE,6BAuB5DG,CAvB4D;AAwBnE,QAAMC,QAAQ,GAAGb,UAAU,CAACO,QAAX,CAAoBT,KAApB,CAA0Bc,CAAC,GAAG,CAA9B,EAAiCA,CAAC,GAAG,CAAJ,GAAQ,CAAzC,CAAjB;AACA,QAAIE,SAAS,GAAGd,UAAU,CAACO,QAAX,CAAoBT,KAApB,CAA0Bc,CAAC,GAAG,CAAJ,GAAQ,CAAlC,EAAqCA,CAAC,GAAG,CAAJ,GAAQ,CAA7C,CAAhB;;AACA,QAAIE,SAAS,CAACjB,MAAV,KAAqB,CAAzB,EAA4B;AAC1BiB,MAAAA,SAAS,GAAGd,UAAU,CAACO,QAAX,CAAoBT,KAApB,CAA0B,CAA1B,EAA6B,CAA7B,CAAZ;AACD;;AACD,QAAMiB,WAAW,GAAGZ,SAAS,CAACN,MAAV,GAAmB,CAAvC;AACAM,IAAAA,SAAS,CAACK,IAAV,CACEK,QAAQ,CAAC,CAAD,CADV,EAEEA,QAAQ,CAAC,CAAD,CAFV,EAGE,CAHF,EAIEC,SAAS,CAAC,CAAD,CAJX,EAKEA,SAAS,CAAC,CAAD,CALX,EAME,CANF,EAOED,QAAQ,CAAC,CAAD,CAPV,EAQEA,QAAQ,CAAC,CAAD,CARV,EASE,CATF,EAUEC,SAAS,CAAC,CAAD,CAVX,EAWEA,SAAS,CAAC,CAAD,CAXX,EAYE,CAZF;AAcAV,IAAAA,UAAU,CAACI,IAAX,OAAAJ,UAAU,mCAAS,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmBY,GAAnB,CAAuB,UAACC,CAAD;AAAA,aAAOA,CAAC,GAAGF,WAAX;AAAA,KAAvB,CAAT,EAAV;AA5CmE;;AAuBrE,OAAK,IAAIH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGb,CAApB,EAAuBa,CAAC,EAAxB,EAA4B;AAAA,UAAnBA,CAAmB;AAsB3B;;AACD,SAAO;AACLT,IAAAA,SAAS,EAATA,SADK;AAELe,IAAAA,KAAK,EAAEd;AAFF,GAAP;AAID;;AACM,SAASe,WAAT,CAAqBC,MAArB,EAAsC;AAC3C,MAAMpB,UAAU,GAAGC,gBAAOC,OAAP,CAAekB,MAAf,CAAnB;;AACA,MAAMX,SAAS,GAAG,qBAChBT,UAAU,CAACO,QADK,EAEhBP,UAAU,CAACU,KAFK,EAGhBV,UAAU,CAACW,UAHK,CAAlB;AAKA,SAAO;AACLR,IAAAA,SAAS,EAAEH,UAAU,CAACO,QADjB;AAELW,IAAAA,KAAK,EAAET;AAFF,GAAP;AAID","sourcesContent":["import earcut from 'earcut';\nimport { IPath } from '
|
|
1
|
+
{"version":3,"sources":["../../../src/point/shape/extrude.ts"],"names":["extrudePolygon","path","p1","p2","length","slice","n","flattengeo","earcut","flatten","positions","indexArray","normals","j","vertices","push","triangles","holes","dimensions","i","prePoint","nextPoint","indexOffset","map","v","index","fillPolygon","points"],"mappings":"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","sourcesContent":["import earcut from 'earcut';\nimport { IPath } from '../../core/shape/Path';\nexport interface IExtrudeGeomety {\n positions: number[];\n index: number[];\n}\n/**\n * 拉伸多边形顶点,返回拉伸后的顶点信息\n * @param paths 路径数据组\n * @param extrude 是否拉伸\n */\nexport default function extrudePolygon(path: IPath[]): IExtrudeGeomety {\n const p1 = path[0][0];\n const p2 = path[0][path[0].length - 1];\n if (p1[0] === p2[0] && p1[1] === p2[1]) {\n path[0] = path[0].slice(0, path[0].length - 1);\n }\n const n = path[0].length;\n const flattengeo = earcut.flatten(path);\n const positions = [];\n const indexArray = [];\n const normals = [];\n // 设置顶部z值\n for (let j = 0; j < flattengeo.vertices.length / 3; j++) {\n flattengeo.vertices[j * 3 + 2] = 1;\n normals.push(0, 0, 1);\n }\n positions.push(...flattengeo.vertices);\n const triangles = earcut(\n flattengeo.vertices,\n flattengeo.holes,\n flattengeo.dimensions,\n );\n indexArray.push(...triangles);\n for (let i = 0; i < n; i++) {\n const prePoint = flattengeo.vertices.slice(i * 3, i * 3 + 3);\n let nextPoint = flattengeo.vertices.slice(i * 3 + 3, i * 3 + 6);\n if (nextPoint.length === 0) {\n nextPoint = flattengeo.vertices.slice(0, 3);\n }\n const indexOffset = positions.length / 3;\n positions.push(\n prePoint[0],\n prePoint[1],\n 1,\n nextPoint[0],\n nextPoint[1],\n 1,\n prePoint[0],\n prePoint[1],\n 0,\n nextPoint[0],\n nextPoint[1],\n 0,\n );\n indexArray.push(...[1, 2, 0, 3, 2, 1].map((v) => v + indexOffset));\n }\n return {\n positions,\n index: indexArray,\n };\n}\nexport function fillPolygon(points: IPath[]) {\n const flattengeo = earcut.flatten(points);\n const triangles = earcut(\n flattengeo.vertices,\n flattengeo.holes,\n flattengeo.dimensions,\n );\n return {\n positions: flattengeo.vertices,\n index: triangles,\n };\n}\n"],"file":"extrude.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antv/l7-layers",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.18",
|
|
4
4
|
"description": "L7's collection of built-in layers",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"license": "ISC",
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@antv/geo-coord": "^1.0.8",
|
|
27
|
-
"@antv/l7-core": "^2.6.
|
|
28
|
-
"@antv/l7-source": "^2.6.
|
|
29
|
-
"@antv/l7-utils": "^2.6.
|
|
27
|
+
"@antv/l7-core": "^2.6.18",
|
|
28
|
+
"@antv/l7-source": "^2.6.18",
|
|
29
|
+
"@antv/l7-utils": "^2.6.18",
|
|
30
30
|
"@babel/runtime": "^7.7.7",
|
|
31
31
|
"@mapbox/martini": "^0.2.0",
|
|
32
32
|
"@turf/meta": "^6.0.2",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@types/gl-matrix": "^2.4.5",
|
|
53
53
|
"@types/lodash": "^4.14.138"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "9267c1da64f93f7acb956bea3b59a2f2eb93f767",
|
|
56
56
|
"publishConfig": {
|
|
57
57
|
"access": "public"
|
|
58
58
|
}
|
package/es/point/shape/Path.d.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
declare type IPosition = [number, number, number];
|
|
2
|
-
export declare type IPath = IPosition[];
|
|
3
|
-
export declare enum ShapeType3D {
|
|
4
|
-
CYLINDER = "cylinder",
|
|
5
|
-
SQUARECOLUMN = "squareColumn",
|
|
6
|
-
TRIANGLECOLUMN = "triangleColumn",
|
|
7
|
-
HEXAGONCOLUMN = "hexagonColumn",
|
|
8
|
-
PENTAGONCOLUMN = "pentagonColumn"
|
|
9
|
-
}
|
|
10
|
-
export declare enum ShapeType2D {
|
|
11
|
-
CIRCLE = "circle",
|
|
12
|
-
SQUARE = "square",
|
|
13
|
-
TRIANGLE = "triangle",
|
|
14
|
-
HEXAGON = "hexagon",
|
|
15
|
-
PENTAGON = "pentagon"
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* 生成规则多边形顶点个数
|
|
19
|
-
* @param pointCount 顶点个数 3 => 三角形
|
|
20
|
-
* @param start 顶点起始角度 调整图形的方向
|
|
21
|
-
*/
|
|
22
|
-
export declare function polygonPath(pointCount: number, start?: number): IPath;
|
|
23
|
-
export declare function circle(): IPath;
|
|
24
|
-
export declare function square(): IPath;
|
|
25
|
-
export declare function triangle(): IPath;
|
|
26
|
-
export declare function hexagon(): IPath;
|
|
27
|
-
export declare function pentagon(): IPath;
|
|
28
|
-
export declare const geometryShape: {
|
|
29
|
-
circle: typeof circle;
|
|
30
|
-
hexagon: typeof hexagon;
|
|
31
|
-
triangle: typeof triangle;
|
|
32
|
-
square: typeof square;
|
|
33
|
-
pentagon: typeof pentagon;
|
|
34
|
-
cylinder: typeof circle;
|
|
35
|
-
hexagonColumn: typeof hexagon;
|
|
36
|
-
triangleColumn: typeof triangle;
|
|
37
|
-
squareColumn: typeof square;
|
|
38
|
-
pentagonColumn: typeof pentagon;
|
|
39
|
-
};
|
|
40
|
-
export {};
|
package/es/point/shape/Path.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
|
|
3
|
-
var _geometryShape;
|
|
4
|
-
|
|
5
|
-
export var ShapeType3D;
|
|
6
|
-
|
|
7
|
-
(function (ShapeType3D) {
|
|
8
|
-
ShapeType3D["CYLINDER"] = "cylinder";
|
|
9
|
-
ShapeType3D["SQUARECOLUMN"] = "squareColumn";
|
|
10
|
-
ShapeType3D["TRIANGLECOLUMN"] = "triangleColumn";
|
|
11
|
-
ShapeType3D["HEXAGONCOLUMN"] = "hexagonColumn";
|
|
12
|
-
ShapeType3D["PENTAGONCOLUMN"] = "pentagonColumn";
|
|
13
|
-
})(ShapeType3D || (ShapeType3D = {}));
|
|
14
|
-
|
|
15
|
-
export var ShapeType2D;
|
|
16
|
-
|
|
17
|
-
(function (ShapeType2D) {
|
|
18
|
-
ShapeType2D["CIRCLE"] = "circle";
|
|
19
|
-
ShapeType2D["SQUARE"] = "square";
|
|
20
|
-
ShapeType2D["TRIANGLE"] = "triangle";
|
|
21
|
-
ShapeType2D["HEXAGON"] = "hexagon";
|
|
22
|
-
ShapeType2D["PENTAGON"] = "pentagon";
|
|
23
|
-
})(ShapeType2D || (ShapeType2D = {}));
|
|
24
|
-
|
|
25
|
-
export function polygonPath(pointCount) {
|
|
26
|
-
var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
27
|
-
var step = Math.PI * 2 / pointCount;
|
|
28
|
-
var line = [];
|
|
29
|
-
|
|
30
|
-
for (var i = 0; i < pointCount; i++) {
|
|
31
|
-
line.push(step * i + start * Math.PI / 12);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
var path = line.map(function (t) {
|
|
35
|
-
var x = Math.sin(t + Math.PI / 4);
|
|
36
|
-
var y = Math.cos(t + Math.PI / 4);
|
|
37
|
-
return [x, y, 0];
|
|
38
|
-
});
|
|
39
|
-
return path;
|
|
40
|
-
}
|
|
41
|
-
export function circle() {
|
|
42
|
-
return polygonPath(30);
|
|
43
|
-
}
|
|
44
|
-
export function square() {
|
|
45
|
-
return polygonPath(4);
|
|
46
|
-
}
|
|
47
|
-
export function triangle() {
|
|
48
|
-
return polygonPath(3);
|
|
49
|
-
}
|
|
50
|
-
export function hexagon() {
|
|
51
|
-
return polygonPath(6);
|
|
52
|
-
}
|
|
53
|
-
export function pentagon() {
|
|
54
|
-
return polygonPath(5);
|
|
55
|
-
}
|
|
56
|
-
export var geometryShape = (_geometryShape = {}, _defineProperty(_geometryShape, ShapeType2D.CIRCLE, circle), _defineProperty(_geometryShape, ShapeType2D.HEXAGON, hexagon), _defineProperty(_geometryShape, ShapeType2D.TRIANGLE, triangle), _defineProperty(_geometryShape, ShapeType2D.SQUARE, square), _defineProperty(_geometryShape, ShapeType2D.PENTAGON, pentagon), _defineProperty(_geometryShape, ShapeType3D.CYLINDER, circle), _defineProperty(_geometryShape, ShapeType3D.HEXAGONCOLUMN, hexagon), _defineProperty(_geometryShape, ShapeType3D.TRIANGLECOLUMN, triangle), _defineProperty(_geometryShape, ShapeType3D.SQUARECOLUMN, square), _defineProperty(_geometryShape, ShapeType3D.PENTAGONCOLUMN, pentagon), _geometryShape);
|
|
57
|
-
//# sourceMappingURL=Path.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/point/shape/Path.ts"],"names":["ShapeType3D","ShapeType2D","polygonPath","pointCount","start","step","Math","PI","line","i","push","path","map","t","x","sin","y","cos","circle","square","triangle","hexagon","pentagon","geometryShape","CIRCLE","HEXAGON","TRIANGLE","SQUARE","PENTAGON","CYLINDER","HEXAGONCOLUMN","TRIANGLECOLUMN","SQUARECOLUMN","PENTAGONCOLUMN"],"mappings":";;;;AAEA,WAAYA,WAAZ;;WAAYA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,KAAAA,W;;AAOZ,WAAYC,WAAZ;;WAAYA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,KAAAA,W;;AAaZ,OAAO,SAASC,WAAT,CAAqBC,UAArB,EAAmE;AAAA,MAA1BC,KAA0B,uEAAV,CAAU;AACxE,MAAMC,IAAI,GAAIC,IAAI,CAACC,EAAL,GAAU,CAAX,GAAgBJ,UAA7B;AACA,MAAMK,IAAI,GAAG,EAAb;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,UAApB,EAAgCM,CAAC,EAAjC,EAAqC;AACnCD,IAAAA,IAAI,CAACE,IAAL,CAAUL,IAAI,GAAGI,CAAP,GAAYL,KAAK,GAAGE,IAAI,CAACC,EAAd,GAAoB,EAAzC;AACD;;AACD,MAAMI,IAAW,GAAGH,IAAI,CAACI,GAAL,CAAS,UAACC,CAAD,EAAO;AAClC,QAAMC,CAAC,GAAGR,IAAI,CAACS,GAAL,CAASF,CAAC,GAAGP,IAAI,CAACC,EAAL,GAAU,CAAvB,CAAV;AACA,QAAMS,CAAC,GAAGV,IAAI,CAACW,GAAL,CAASJ,CAAC,GAAGP,IAAI,CAACC,EAAL,GAAU,CAAvB,CAAV;AACA,WAAO,CAACO,CAAD,EAAIE,CAAJ,EAAO,CAAP,CAAP;AACD,GAJmB,CAApB;AAMA,SAAOL,IAAP;AACD;AAED,OAAO,SAASO,MAAT,GAAyB;AAC9B,SAAOhB,WAAW,CAAC,EAAD,CAAlB;AACD;AACD,OAAO,SAASiB,MAAT,GAAyB;AAC9B,SAAOjB,WAAW,CAAC,CAAD,CAAlB;AACD;AACD,OAAO,SAASkB,QAAT,GAA2B;AAChC,SAAOlB,WAAW,CAAC,CAAD,CAAlB;AACD;AACD,OAAO,SAASmB,OAAT,GAA0B;AAC/B,SAAOnB,WAAW,CAAC,CAAD,CAAlB;AACD;AACD,OAAO,SAASoB,QAAT,GAA2B;AAChC,SAAOpB,WAAW,CAAC,CAAD,CAAlB;AACD;AAED,OAAO,IAAMqB,aAAa,yDACvBtB,WAAW,CAACuB,MADW,EACFN,MADE,mCAEvBjB,WAAW,CAACwB,OAFW,EAEDJ,OAFC,mCAGvBpB,WAAW,CAACyB,QAHW,EAGAN,QAHA,mCAIvBnB,WAAW,CAAC0B,MAJW,EAIFR,MAJE,mCAKvBlB,WAAW,CAAC2B,QALW,EAKAN,QALA,mCAMvBtB,WAAW,CAAC6B,QANW,EAMAX,MANA,mCAOvBlB,WAAW,CAAC8B,aAPW,EAOKT,OAPL,mCAQvBrB,WAAW,CAAC+B,cARW,EAQMX,QARN,mCASvBpB,WAAW,CAACgC,YATW,EASIb,MATJ,mCAUvBnB,WAAW,CAACiC,cAVW,EAUMX,QAVN,kBAAnB","sourcesContent":["type IPosition = [number, number, number];\nexport type IPath = IPosition[];\nexport enum ShapeType3D {\n CYLINDER = 'cylinder',\n SQUARECOLUMN = 'squareColumn',\n TRIANGLECOLUMN = 'triangleColumn',\n HEXAGONCOLUMN = 'hexagonColumn',\n PENTAGONCOLUMN = 'pentagonColumn',\n}\nexport enum ShapeType2D {\n CIRCLE = 'circle',\n SQUARE = 'square',\n TRIANGLE = 'triangle',\n HEXAGON = 'hexagon',\n PENTAGON = 'pentagon',\n}\n\n/**\n * 生成规则多边形顶点个数\n * @param pointCount 顶点个数 3 => 三角形\n * @param start 顶点起始角度 调整图形的方向\n */\nexport function polygonPath(pointCount: number, start: number = 0): IPath {\n const step = (Math.PI * 2) / pointCount;\n const line = [];\n for (let i = 0; i < pointCount; i++) {\n line.push(step * i + (start * Math.PI) / 12);\n }\n const path: IPath = line.map((t) => {\n const x = Math.sin(t + Math.PI / 4);\n const y = Math.cos(t + Math.PI / 4);\n return [x, y, 0];\n });\n // path.push(path[0]);\n return path;\n}\n\nexport function circle(): IPath {\n return polygonPath(30);\n}\nexport function square(): IPath {\n return polygonPath(4);\n}\nexport function triangle(): IPath {\n return polygonPath(3);\n}\nexport function hexagon(): IPath {\n return polygonPath(6);\n}\nexport function pentagon(): IPath {\n return polygonPath(5);\n}\n\nexport const geometryShape = {\n [ShapeType2D.CIRCLE]: circle,\n [ShapeType2D.HEXAGON]: hexagon,\n [ShapeType2D.TRIANGLE]: triangle,\n [ShapeType2D.SQUARE]: square,\n [ShapeType2D.PENTAGON]: pentagon,\n [ShapeType3D.CYLINDER]: circle,\n [ShapeType3D.HEXAGONCOLUMN]: hexagon,\n [ShapeType3D.TRIANGLECOLUMN]: triangle,\n [ShapeType3D.SQUARECOLUMN]: square,\n [ShapeType3D.PENTAGONCOLUMN]: pentagon,\n};\n"],"file":"Path.js"}
|
package/lib/point/shape/Path.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.ShapeType3D = exports.ShapeType2D = void 0;
|
|
9
|
-
exports.circle = circle;
|
|
10
|
-
exports.geometryShape = void 0;
|
|
11
|
-
exports.hexagon = hexagon;
|
|
12
|
-
exports.pentagon = pentagon;
|
|
13
|
-
exports.polygonPath = polygonPath;
|
|
14
|
-
exports.square = square;
|
|
15
|
-
exports.triangle = triangle;
|
|
16
|
-
|
|
17
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
|
-
|
|
19
|
-
var _geometryShape;
|
|
20
|
-
|
|
21
|
-
var ShapeType3D;
|
|
22
|
-
exports.ShapeType3D = ShapeType3D;
|
|
23
|
-
|
|
24
|
-
(function (ShapeType3D) {
|
|
25
|
-
ShapeType3D["CYLINDER"] = "cylinder";
|
|
26
|
-
ShapeType3D["SQUARECOLUMN"] = "squareColumn";
|
|
27
|
-
ShapeType3D["TRIANGLECOLUMN"] = "triangleColumn";
|
|
28
|
-
ShapeType3D["HEXAGONCOLUMN"] = "hexagonColumn";
|
|
29
|
-
ShapeType3D["PENTAGONCOLUMN"] = "pentagonColumn";
|
|
30
|
-
})(ShapeType3D || (exports.ShapeType3D = ShapeType3D = {}));
|
|
31
|
-
|
|
32
|
-
var ShapeType2D;
|
|
33
|
-
exports.ShapeType2D = ShapeType2D;
|
|
34
|
-
|
|
35
|
-
(function (ShapeType2D) {
|
|
36
|
-
ShapeType2D["CIRCLE"] = "circle";
|
|
37
|
-
ShapeType2D["SQUARE"] = "square";
|
|
38
|
-
ShapeType2D["TRIANGLE"] = "triangle";
|
|
39
|
-
ShapeType2D["HEXAGON"] = "hexagon";
|
|
40
|
-
ShapeType2D["PENTAGON"] = "pentagon";
|
|
41
|
-
})(ShapeType2D || (exports.ShapeType2D = ShapeType2D = {}));
|
|
42
|
-
|
|
43
|
-
function polygonPath(pointCount) {
|
|
44
|
-
var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
45
|
-
var step = Math.PI * 2 / pointCount;
|
|
46
|
-
var line = [];
|
|
47
|
-
|
|
48
|
-
for (var i = 0; i < pointCount; i++) {
|
|
49
|
-
line.push(step * i + start * Math.PI / 12);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
var path = line.map(function (t) {
|
|
53
|
-
var x = Math.sin(t + Math.PI / 4);
|
|
54
|
-
var y = Math.cos(t + Math.PI / 4);
|
|
55
|
-
return [x, y, 0];
|
|
56
|
-
});
|
|
57
|
-
return path;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function circle() {
|
|
61
|
-
return polygonPath(30);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
function square() {
|
|
65
|
-
return polygonPath(4);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
function triangle() {
|
|
69
|
-
return polygonPath(3);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
function hexagon() {
|
|
73
|
-
return polygonPath(6);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function pentagon() {
|
|
77
|
-
return polygonPath(5);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
var geometryShape = (_geometryShape = {}, (0, _defineProperty2.default)(_geometryShape, ShapeType2D.CIRCLE, circle), (0, _defineProperty2.default)(_geometryShape, ShapeType2D.HEXAGON, hexagon), (0, _defineProperty2.default)(_geometryShape, ShapeType2D.TRIANGLE, triangle), (0, _defineProperty2.default)(_geometryShape, ShapeType2D.SQUARE, square), (0, _defineProperty2.default)(_geometryShape, ShapeType2D.PENTAGON, pentagon), (0, _defineProperty2.default)(_geometryShape, ShapeType3D.CYLINDER, circle), (0, _defineProperty2.default)(_geometryShape, ShapeType3D.HEXAGONCOLUMN, hexagon), (0, _defineProperty2.default)(_geometryShape, ShapeType3D.TRIANGLECOLUMN, triangle), (0, _defineProperty2.default)(_geometryShape, ShapeType3D.SQUARECOLUMN, square), (0, _defineProperty2.default)(_geometryShape, ShapeType3D.PENTAGONCOLUMN, pentagon), _geometryShape);
|
|
81
|
-
exports.geometryShape = geometryShape;
|
|
82
|
-
//# sourceMappingURL=Path.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/point/shape/Path.ts"],"names":["ShapeType3D","ShapeType2D","polygonPath","pointCount","start","step","Math","PI","line","i","push","path","map","t","x","sin","y","cos","circle","square","triangle","hexagon","pentagon","geometryShape","CIRCLE","HEXAGON","TRIANGLE","SQUARE","PENTAGON","CYLINDER","HEXAGONCOLUMN","TRIANGLECOLUMN","SQUARECOLUMN","PENTAGONCOLUMN"],"mappings":";;;;;;;;;;;;;;;;;;;;IAEYA,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W;;IAOAC,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W;;AAaL,SAASC,WAAT,CAAqBC,UAArB,EAAmE;AAAA,MAA1BC,KAA0B,uEAAV,CAAU;AACxE,MAAMC,IAAI,GAAIC,IAAI,CAACC,EAAL,GAAU,CAAX,GAAgBJ,UAA7B;AACA,MAAMK,IAAI,GAAG,EAAb;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,UAApB,EAAgCM,CAAC,EAAjC,EAAqC;AACnCD,IAAAA,IAAI,CAACE,IAAL,CAAUL,IAAI,GAAGI,CAAP,GAAYL,KAAK,GAAGE,IAAI,CAACC,EAAd,GAAoB,EAAzC;AACD;;AACD,MAAMI,IAAW,GAAGH,IAAI,CAACI,GAAL,CAAS,UAACC,CAAD,EAAO;AAClC,QAAMC,CAAC,GAAGR,IAAI,CAACS,GAAL,CAASF,CAAC,GAAGP,IAAI,CAACC,EAAL,GAAU,CAAvB,CAAV;AACA,QAAMS,CAAC,GAAGV,IAAI,CAACW,GAAL,CAASJ,CAAC,GAAGP,IAAI,CAACC,EAAL,GAAU,CAAvB,CAAV;AACA,WAAO,CAACO,CAAD,EAAIE,CAAJ,EAAO,CAAP,CAAP;AACD,GAJmB,CAApB;AAMA,SAAOL,IAAP;AACD;;AAEM,SAASO,MAAT,GAAyB;AAC9B,SAAOhB,WAAW,CAAC,EAAD,CAAlB;AACD;;AACM,SAASiB,MAAT,GAAyB;AAC9B,SAAOjB,WAAW,CAAC,CAAD,CAAlB;AACD;;AACM,SAASkB,QAAT,GAA2B;AAChC,SAAOlB,WAAW,CAAC,CAAD,CAAlB;AACD;;AACM,SAASmB,OAAT,GAA0B;AAC/B,SAAOnB,WAAW,CAAC,CAAD,CAAlB;AACD;;AACM,SAASoB,QAAT,GAA2B;AAChC,SAAOpB,WAAW,CAAC,CAAD,CAAlB;AACD;;AAEM,IAAMqB,aAAa,uEACvBtB,WAAW,CAACuB,MADW,EACFN,MADE,iDAEvBjB,WAAW,CAACwB,OAFW,EAEDJ,OAFC,iDAGvBpB,WAAW,CAACyB,QAHW,EAGAN,QAHA,iDAIvBnB,WAAW,CAAC0B,MAJW,EAIFR,MAJE,iDAKvBlB,WAAW,CAAC2B,QALW,EAKAN,QALA,iDAMvBtB,WAAW,CAAC6B,QANW,EAMAX,MANA,iDAOvBlB,WAAW,CAAC8B,aAPW,EAOKT,OAPL,iDAQvBrB,WAAW,CAAC+B,cARW,EAQMX,QARN,iDASvBpB,WAAW,CAACgC,YATW,EASIb,MATJ,iDAUvBnB,WAAW,CAACiC,cAVW,EAUMX,QAVN,kBAAnB","sourcesContent":["type IPosition = [number, number, number];\nexport type IPath = IPosition[];\nexport enum ShapeType3D {\n CYLINDER = 'cylinder',\n SQUARECOLUMN = 'squareColumn',\n TRIANGLECOLUMN = 'triangleColumn',\n HEXAGONCOLUMN = 'hexagonColumn',\n PENTAGONCOLUMN = 'pentagonColumn',\n}\nexport enum ShapeType2D {\n CIRCLE = 'circle',\n SQUARE = 'square',\n TRIANGLE = 'triangle',\n HEXAGON = 'hexagon',\n PENTAGON = 'pentagon',\n}\n\n/**\n * 生成规则多边形顶点个数\n * @param pointCount 顶点个数 3 => 三角形\n * @param start 顶点起始角度 调整图形的方向\n */\nexport function polygonPath(pointCount: number, start: number = 0): IPath {\n const step = (Math.PI * 2) / pointCount;\n const line = [];\n for (let i = 0; i < pointCount; i++) {\n line.push(step * i + (start * Math.PI) / 12);\n }\n const path: IPath = line.map((t) => {\n const x = Math.sin(t + Math.PI / 4);\n const y = Math.cos(t + Math.PI / 4);\n return [x, y, 0];\n });\n // path.push(path[0]);\n return path;\n}\n\nexport function circle(): IPath {\n return polygonPath(30);\n}\nexport function square(): IPath {\n return polygonPath(4);\n}\nexport function triangle(): IPath {\n return polygonPath(3);\n}\nexport function hexagon(): IPath {\n return polygonPath(6);\n}\nexport function pentagon(): IPath {\n return polygonPath(5);\n}\n\nexport const geometryShape = {\n [ShapeType2D.CIRCLE]: circle,\n [ShapeType2D.HEXAGON]: hexagon,\n [ShapeType2D.TRIANGLE]: triangle,\n [ShapeType2D.SQUARE]: square,\n [ShapeType2D.PENTAGON]: pentagon,\n [ShapeType3D.CYLINDER]: circle,\n [ShapeType3D.HEXAGONCOLUMN]: hexagon,\n [ShapeType3D.TRIANGLECOLUMN]: triangle,\n [ShapeType3D.SQUARECOLUMN]: square,\n [ShapeType3D.PENTAGONCOLUMN]: pentagon,\n};\n"],"file":"Path.js"}
|