@vtx/cs-map 1.0.146 → 1.0.147
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/README.md +202 -202
- package/lib/_util/EventEmitter.js.map +1 -1
- package/lib/_util/Provider.js.map +1 -1
- package/lib/_util/StyleCache.js.map +1 -1
- package/lib/_util/cesium.js +10 -10
- package/lib/_util/cesium.js.map +1 -1
- package/lib/_util/filterSpecialCharacters.js +6 -6
- package/lib/_util/filterSpecialCharacters.js.map +1 -1
- package/lib/_util/generateRandomPosition.js +5 -5
- package/lib/_util/generateRandomPosition.js.map +1 -1
- package/lib/_util/getBBoxFromGeojson.js +11 -11
- package/lib/_util/getBBoxFromGeojson.js.map +1 -1
- package/lib/_util/getComponentProps.js.map +1 -1
- package/lib/_util/getCookie.js +4 -4
- package/lib/_util/getCookie.js.map +1 -1
- package/lib/_util/getDefaultMapInfo.js.map +1 -1
- package/lib/_util/getSystemInfo.js.map +1 -1
- package/lib/_util/getToken.js.map +1 -1
- package/lib/_util/getUrlParam.js.map +1 -1
- package/lib/_util/heightAndZoom.js.map +1 -1
- package/lib/_util/http.js +18 -18
- package/lib/_util/http.js.map +1 -1
- package/lib/_util/isFunction.js.map +1 -1
- package/lib/_util/isObject.js.map +1 -1
- package/lib/_util/mapTool.js +34 -34
- package/lib/_util/mapTool.js.map +1 -1
- package/lib/_util/setCookie.js +4 -4
- package/lib/_util/setCookie.js.map +1 -1
- package/lib/_util/transformRgb.js.map +1 -1
- package/lib/_util/useColSize.js.map +1 -1
- package/lib/_util/useInterval.js.map +1 -1
- package/lib/_util/useProps.js.map +1 -1
- package/lib/_util/useSet.js.map +1 -1
- package/lib/building-tiles-layer/BuildingTilesLayer.js.map +1 -1
- package/lib/building-tiles-layer/style/css.js.map +1 -1
- package/lib/building-tiles-layer/style/index.js.map +1 -1
- package/lib/cesium-tiles-layer/demo/index.less +111 -111
- package/lib/cesium-tiles-layer/demo/putian/index.less +27 -27
- package/lib/cesium-tiles-layer/style/css.js.map +1 -1
- package/lib/cesium-tiles-layer/style/index.js.map +1 -1
- package/lib/circle/Circle.js.map +1 -1
- package/lib/circle/index.js.map +1 -1
- package/lib/circle-fly/index.js.map +1 -1
- package/lib/circle-fly/style/css.js.map +1 -1
- package/lib/circle-fly/style/index.js.map +1 -1
- package/lib/cone-glow-layer/BottomCircle.js.map +1 -1
- package/lib/cone-glow-layer/ButtomRotateCircle.js +8 -8
- package/lib/cone-glow-layer/ButtomRotateCircle.js.map +1 -1
- package/lib/cone-glow-layer/ConeGlowLayer.js.map +1 -1
- package/lib/cone-glow-layer/Texture.js.map +1 -1
- package/lib/config.js.map +1 -1
- package/lib/demand-layer/DemandLayer.js.map +1 -1
- package/lib/demand-layer/index.js.map +1 -1
- package/lib/demand-layer/style/css.js.map +1 -1
- package/lib/demand-layer/style/index.js.map +1 -1
- package/lib/dom/Dom.js.map +1 -1
- package/lib/events/index.js.map +1 -1
- package/lib/excavation-analysis/Cut.js +19 -19
- package/lib/excavation-analysis/Cut.js.map +1 -1
- package/lib/excavation-analysis/TilesetCut.js +5 -5
- package/lib/excavation-analysis/TilesetCut.js.map +1 -1
- package/lib/excavation-analysis/hooks/useDrawHandler.js.map +1 -1
- package/lib/excavation-analysis/hooks/useTerrainClipPlan.js.map +1 -1
- package/lib/excavation-analysis/hooks/useTileSetCut.js.map +1 -1
- package/lib/excavation-analysis/index.js.map +1 -1
- package/lib/excavation-analysis/style/css.js.map +1 -1
- package/lib/excavation-analysis/style/index.js.map +1 -1
- package/lib/feature-layer/style/css.js.map +1 -1
- package/lib/feature-layer/style/index.js.map +1 -1
- package/lib/fence-layer/FenceLayer.js.map +1 -1
- package/lib/fence-layer/GradualLightRingMaterialProperty.js +5 -5
- package/lib/fence-layer/GradualLightRingMaterialProperty.js.map +1 -1
- package/lib/fence-layer/index.js.map +1 -1
- package/lib/fence-layer/style/css.js.map +1 -1
- package/lib/fence-layer/style/index.js.map +1 -1
- package/lib/flight-line-layer/FlightLineLayer.js.map +1 -1
- package/lib/flight-line-layer/index.js.map +1 -1
- package/lib/flight-line-layer/style/css.js.map +1 -1
- package/lib/flight-line-layer/style/index.js.map +1 -1
- package/lib/fly-line-layer/FlyLineLayer.js.map +1 -1
- package/lib/fly-line-layer/LineFlowMaterialProperty.js.map +1 -1
- package/lib/fly-line-layer/index.js.map +1 -1
- package/lib/fly-line-layer/style/css.js.map +1 -1
- package/lib/fly-line-layer/style/index.js.map +1 -1
- package/lib/gif-dom-layer/GifDomLayer.js.map +1 -1
- package/lib/gif-dom-layer/index.js.map +1 -1
- package/lib/gif-dom-layer/style/css.js.map +1 -1
- package/lib/gif-dom-layer/style/index.js.map +1 -1
- package/lib/gradation-line-layer/GradationLineLayer.js.map +1 -1
- package/lib/gradation-line-layer/index.js.map +1 -1
- package/lib/gradation-line-layer/style/css.js.map +1 -1
- package/lib/gradation-line-layer/style/index.js.map +1 -1
- package/lib/group-layer/GroupLayer.js.map +1 -1
- package/lib/group-layer/index.js.map +1 -1
- package/lib/group-layer/style/css.js.map +1 -1
- package/lib/group-layer/style/index.js.map +1 -1
- package/lib/heatmap-layer/HeatmapLayer.js.map +1 -1
- package/lib/heatmap-layer/heatmap.js +41 -41
- package/lib/heatmap-layer/heatmap.js.map +1 -1
- package/lib/heatmap-layer/index.js.map +1 -1
- package/lib/heatmap-layer/style/css.js.map +1 -1
- package/lib/heatmap-layer/style/index.js.map +1 -1
- package/lib/highlight-layer/HighlightLayer.js +6 -6
- package/lib/highlight-layer/HighlightLayer.js.map +1 -1
- package/lib/highlight-layer/index.js.map +1 -1
- package/lib/highlight-layer/style/css.js.map +1 -1
- package/lib/highlight-layer/style/index.js.map +1 -1
- package/lib/image-layer/style/css.js.map +1 -1
- package/lib/image-layer/style/index.js.map +1 -1
- package/lib/image-wms-layer/ImageWmsLayer.js.map +1 -1
- package/lib/image-wms-layer/style/css.js.map +1 -1
- package/lib/image-wms-layer/style/index.js.map +1 -1
- package/lib/inundate-analysis/index.js.map +1 -1
- package/lib/inundate-analysis/style/css.js.map +1 -1
- package/lib/inundate-analysis/style/index.js.map +1 -1
- package/lib/label/Label.js.map +1 -1
- package/lib/label/index.js.map +1 -1
- package/lib/legend/index.js.map +1 -1
- package/lib/legend/style/css.js.map +1 -1
- package/lib/legend/style/index.js.map +1 -1
- package/lib/legend/style/index.less +74 -74
- package/lib/line-flow-layer/index.js.map +1 -1
- package/lib/line-flow-layer/style/css.js.map +1 -1
- package/lib/line-flow-layer/style/index.js.map +1 -1
- package/lib/map/InfoTool/index.js +43 -43
- package/lib/map/InfoTool/index.js.map +1 -1
- package/lib/map/InfoTool/index.less +46 -46
- package/lib/map/InfoTool/util.js +23 -23
- package/lib/map/InfoTool/util.js.map +1 -1
- package/lib/map/InfoWindow.js.map +1 -1
- package/lib/map/Layers.js.map +1 -1
- package/lib/map/base/imagery/amap/AmapImageryProvider.js.map +1 -1
- package/lib/map/base/imagery/amap/AmapMercatorTilingScheme.js.map +1 -1
- package/lib/map/base/imagery/baidu/BaiduMercatorProjection.js +77 -77
- package/lib/map/base/imagery/baidu/BaiduMercatorProjection.js.map +1 -1
- package/lib/map/base/imagery/baidu/BaiduMercatorTilingScheme.js +13 -13
- package/lib/map/base/imagery/baidu/BaiduMercatorTilingScheme.js.map +1 -1
- package/lib/map/base/imagery/geoq/GeoQImageryProvider.js.map +1 -1
- package/lib/map/base/imagery/irs/IRSImageryProvider.js.map +1 -1
- package/lib/map/base/imagery/tencent/TencentImageryProvider.js.map +1 -1
- package/lib/map/base/imagery/transform/AmapMercatorTilingScheme.js.map +1 -1
- package/lib/map/base/imagery/transform/CoordTransform.js +42 -42
- package/lib/map/base/imagery/transform/CoordTransform.js.map +1 -1
- package/lib/map/hooks/useGetMapFeatureInfoByText.js.map +1 -1
- package/lib/map/index.js +2 -0
- package/lib/map/index.js.map +1 -1
- package/lib/map/material/AroundPoint.js.map +1 -1
- package/lib/map/material/CircleRippleMaterialProperty.js +5 -5
- package/lib/map/material/CircleRippleMaterialProperty.js.map +1 -1
- package/lib/map/material/ODLineLayer.js.map +1 -1
- package/lib/map/material/PolylineTrailLinkMaterialProperty.js.map +1 -1
- package/lib/map/material/PolylineTrailMaterialProperty.js.map +1 -1
- package/lib/map/material/TilesBuilding.js.map +1 -1
- package/lib/map/material/index.js.map +1 -1
- package/lib/marker/Marker.js.map +1 -1
- package/lib/marker/index.js.map +1 -1
- package/lib/model/Model.js.map +1 -1
- package/lib/model/index.js.map +1 -1
- package/lib/navigation/index.js.map +1 -1
- package/lib/navigation/style/css.js.map +1 -1
- package/lib/navigation/style/index.js.map +1 -1
- package/lib/navigation/style/index.less +176 -176
- package/lib/pipe-tiles-layer/PipeTilesLayer.js.map +1 -1
- package/lib/pipe-tiles-layer/index.js.map +1 -1
- package/lib/pipe-tiles-layer/style/css.js.map +1 -1
- package/lib/pipe-tiles-layer/style/index.js.map +1 -1
- package/lib/point/Point.js.map +1 -1
- package/lib/point/index.js.map +1 -1
- package/lib/polygon/Polygon.js.map +1 -1
- package/lib/polygon/index.js.map +1 -1
- package/lib/polyline/Polyline.js.map +1 -1
- package/lib/renderer/index.js +15 -15
- package/lib/renderer/index.js.map +1 -1
- package/lib/renderer/style/css.js.map +1 -1
- package/lib/renderer/style/index.js.map +1 -1
- package/lib/road-line-layer/index.js.map +1 -1
- package/lib/road-line-layer/style/css.js.map +1 -1
- package/lib/road-line-layer/style/index.js.map +1 -1
- package/lib/scene-roam/index.js.map +1 -1
- package/lib/scene-roam/style/css.js.map +1 -1
- package/lib/scene-roam/style/index.js.map +1 -1
- package/lib/slider-scene/index.js.map +1 -1
- package/lib/slider-scene/style/css.js.map +1 -1
- package/lib/slider-scene/style/index.js.map +1 -1
- package/lib/slider-scene/style/index.less +13 -13
- package/lib/split-screen/index.js.map +1 -1
- package/lib/style/index.less +2 -2
- package/lib/style/themes/compact.less +1 -1
- package/lib/style/themes/dark.less +9 -9
- package/lib/style/themes/default.less +7 -7
- package/lib/style/themes/index.less +1 -1
- package/lib/style/themes/variable.less +5 -5
- package/lib/three-line-layer/style/css.js.map +1 -1
- package/lib/three-line-layer/style/index.js.map +1 -1
- package/lib/three-point-layer/DiffuseCircle.js.map +1 -1
- package/lib/three-point-layer/Grate.js +90 -90
- package/lib/three-point-layer/Grate.js.map +1 -1
- package/lib/three-point-layer/ThreePointLayer.js.map +1 -1
- package/lib/three-point-layer/Well.js +63 -63
- package/lib/three-point-layer/Well.js.map +1 -1
- package/lib/three-point-layer/index.js.map +1 -1
- package/lib/three-point-layer/style/css.js.map +1 -1
- package/lib/three-point-layer/style/index.js.map +1 -1
- package/lib/tools/base-map-switch/index.js.map +1 -1
- package/lib/tools/components/Icon/index.js.map +1 -1
- package/lib/tools/components/Icon/svg.js.map +1 -1
- package/lib/tools/components/Modal/index.js +2 -2
- package/lib/tools/components/Modal/index.js.map +1 -1
- package/lib/tools/components/Modal/index.less +33 -33
- package/lib/tools/components/item-wrap/index.js.map +1 -1
- package/lib/tools/components/tool-Item/index.js.map +1 -1
- package/lib/tools/components/tool-Item/index.less +27 -27
- package/lib/tools/dimension-switch/index.js.map +1 -1
- package/lib/tools/index.js.map +1 -1
- package/lib/tools/layer-control/index.js.map +1 -1
- package/lib/tools/layer-control-popover/LayersCheckService.js.map +1 -1
- package/lib/tools/layer-control-popover/index.js +2 -2
- package/lib/tools/layer-control-popover/index.js.map +1 -1
- package/lib/tools/loading/index.js.map +1 -1
- package/lib/tools/map-search/Select/index.js +5 -5
- package/lib/tools/map-search/Select/index.js.map +1 -1
- package/lib/tools/map-search/Select/style/css.js.map +1 -1
- package/lib/tools/map-search/Select/style/index.js.map +1 -1
- package/lib/tools/map-search/Select/style/index.less +47 -47
- package/lib/tools/style/css.js.map +1 -1
- package/lib/tools/style/index.js.map +1 -1
- package/lib/tools/style/index.less +309 -309
- package/lib/tools/tip/index.js.map +1 -1
- package/lib/tools/tool-box/Measure/Area/index.js.map +1 -1
- package/lib/tools/tool-box/Measure/Distance/index.js.map +1 -1
- package/lib/tools/tool-box/Measure/Height/index.js.map +1 -1
- package/lib/tools/tool-box/Measure/Measure.js +31 -31
- package/lib/tools/tool-box/Measure/Measure.js.map +1 -1
- package/lib/tools/tool-box/Measure/index.js.map +1 -1
- package/lib/tools/tool-box/index.js.map +1 -1
- package/lib/trail-polyline-layer/TrailPolylineLayer.js.map +1 -1
- package/lib/trail-polyline-layer/TrailPolylineMaterial.js.map +1 -1
- package/lib/trail-polyline-layer/style/css.js.map +1 -1
- package/lib/trail-polyline-layer/style/index.js.map +1 -1
- package/lib/use-props/index.js.map +1 -1
- package/lib/wall/WallGeometry.js.map +1 -1
- package/lib/wall/style/css.js.map +1 -1
- package/lib/wall/style/index.js.map +1 -1
- package/lib/water-surface-layer/WaterSurfaceLayer.js.map +1 -1
- package/lib/water-surface-layer/index.js.map +1 -1
- package/lib/water-surface-layer/style/css.js.map +1 -1
- package/lib/water-surface-layer/style/index.js.map +1 -1
- package/lib/weather/Weather.js +28 -28
- package/lib/weather/Weather.js.map +1 -1
- package/lib/weather/index.js.map +1 -1
- package/lib/weather/style/css.js.map +1 -1
- package/lib/weather/style/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cut.js","names":["_cesium","require","_typeof","o","Symbol","iterator","constructor","prototype","_classCallCheck","a","n","TypeError","_defineProperties","e","r","t","length","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","i","_toPrimitive","toPrimitive","call","String","Number","Cut","tileset","opt","console","log","_iscutOutter","iscutOutter","cutRegions","center","boundingSphere","enuMtx4","Transforms","eastNorthUpToFixedFrame","modelMatrix","Matrix4","inverse","canvas","undefined","get","set","val","updateShader","value","addRegion","attr","_ref","positions","id","Date","getTime","Math","random","toFixed","index","findIndex","item","push","removeRegionById","splice","destroy","customShader","_this","fs_textureMapRect","allUniforms","u_inverseModel","type","UniformType","MAT4","clone","u_unionCutRegions","BOOL","fs","forEach","element","uniforms","createUniforms","combine","concat","CustomShader","fragmentShaderText","_this2","ceil","xs","ys","zs","modelPoints","map","p","point","multiplyByPoint","Cartesian3","x","y","z","rect","Cartesian4","min","apply","max","document","createElement","width","height","w","ctx","getContext","fillStyle","fillRect","beginPath","moveTo","lineTo","closePath","fill","VEC4","SAMPLER_2D","TextureUniform","url","toDataURL","minificationFilter","TextureMinificationFilter","LINEAR","magnificationFilter","TextureMagnificationFilter","_default","exports"],"sources":["excavation-analysis/Cut.js"],"sourcesContent":["import {\n Matrix4,\n Transforms,\n Cartesian3,\n UniformType,\n combine,\n CustomShader,\n Cartesian4,\n TextureUniform,\n TextureMinificationFilter,\n TextureMagnificationFilter\n} from 'cesium';\n\n// 三维模型裁剪\nclass Cut {\n constructor(tileset, opt) {\n if (!tileset) {\n console.log(\"缺少模型\");\n return;\n }\n this.tileset = tileset;\n this.opt = opt || {};\n /**\n * @property {Boolean} iscutOutter 是否为外部裁剪,默认为内部裁剪\n */\n this._iscutOutter = this.opt.iscutOutter; // 是否为外部裁剪 默认为内部裁剪\n this.cutRegions = []; // 当前裁剪面数组对象\n /* this.modelMatrix = new Matrix4(); // 世界坐标系--》模型坐标系\n Matrix4.inverseTransformation(this.tileset.root.computedTransform, this.modelMatrix) */\n // 建立模型中心点坐标系\n const center = this.tileset.boundingSphere.center;\n const enuMtx4 = Transforms.eastNorthUpToFixedFrame(center);\n this.modelMatrix = Matrix4.inverse(enuMtx4, new Matrix4());\n this.canvas = undefined;\n }\n\n get iscutOutter() {\n return this._iscutOutter\n }\n\n set iscutOutter(val) {\n this._iscutOutter = val;\n this.updateShader();\n }\n\n /**\n * 添加裁剪面\n * @param {Object} attr 参数\n * @param {Cartesian3[]} attr.positions 压平面坐标\n * @param {Number} attr.id 唯一标识\n */\n addRegion(attr) {\n let { positions, id } = attr || {};\n if (!id) id = (new Date()).getTime() + \"\" + Number(Math.random() * 1000).toFixed(0);\n if (!positions || positions.length < 3) {\n console.log(\"缺少裁剪面坐标\");\n return;\n }\n const index = this.cutRegions.findIndex(item => item.id === id)\n if (index == -1) {\n this.cutRegions.push({\n id: id,\n positions: positions\n })\n } else {\n this.cutRegions[index].positions = positions;\n }\n this.updateShader()\n }\n /**\n * 移除裁剪面\n * @param {String} id\n */\n removeRegionById(id) {\n if (id) { // 表示移除所有的裁剪面\n const index = this.cutRegions.findIndex(item => item.id === id)\n if (index != -1) this.cutRegions.splice(index, 1)\n } else { // 表示移除单个的裁剪面\n this.cutRegions = [];\n }\n this.updateShader();\n }\n\n /**\n * 销毁\n */\n destroy() {\n this.tileset.customShader = undefined;\n }\n\n /**\n * 修改模型着色器\n */\n updateShader() {\n // 定义着色器中裁剪函数\n const fs_textureMapRect = `\n vec4 textureMapRect(vec4 rect, sampler2D map, vec2 xy) {\n // 判断当前图元坐标和多边形关系 如果在多边形内 进行纹素拾取\n if (xy.x >= rect.x && xy.x <= rect.z && xy.y >= rect.y && xy.y <= rect.w) {\n float w = rect.z - rect.x;\n float h = rect.w - rect.y;\n float s = (xy.x - rect.x) / w;\n float t = (xy.y - rect.y) / h;\n vec4 color = texture(map, vec2(s, 1.0 - t));\n return color;\n }\n return vec4(1.0);\n }\n `;\n\n let allUniforms = {\n u_inverseModel: {\n type: UniformType.MAT4,\n value: this.modelMatrix.clone()\n },\n u_unionCutRegions: {\n type: UniformType.BOOL,\n value: this._iscutOutter\n }\n }\n\n // 构建多区域着色器\n let fs = ``;\n this.cutRegions.forEach(element => {\n const uniforms = this.createUniforms(element.positions, element.id)\n allUniforms = combine(allUniforms, uniforms)\n fs += `\n vec4 color_${element.id} = textureMapRect(u_rect_${element.id}, u_map_${element.id}, xy);\n cutColor *= color_${element.id};\n `\n })\n\n fs += `\n if (u_unionCutRegions) {\n material.diffuse *= (vec3(1.0) - cutColor.rgb);\n } else {\n material.diffuse *= cutColor.rgb;\n }\n if (material.diffuse.r <= 0.0001 && material.diffuse.g <= 0.0001 && material.diffuse.b <= 0.0001) {\n discard;\n }\n `;\n\n this.tileset.customShader = new CustomShader({\n uniforms: allUniforms,\n fragmentShaderText: `\n ${fs_textureMapRect}\n void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) {\n vec4 positionMC = u_inverseModel * vec4(fsInput.attributes.positionWC, 1.0);\n vec2 xy = positionMC.xy;\n vec4 cutColor = vec4(1.0);\n ${fs}\n }`\n })\n\n }\n\n /**\n * 根据坐标创建片元着色器\n * @param {Cartesian3[]} positions\n * @param {String} id\n */\n createUniforms(positions, id) {\n if (!positions || positions.length < 3) {\n console.log(\"缺少裁剪面坐标\");\n return;\n }\n id = id || Math.ceil(Math.random() * 100000) + '_' + Math.ceil(Math.random() * 100000)\n // 根据世界坐标范围计算相对模型坐标范围\n const xs = [], ys = [], zs = []\n // 计算模型坐标系下坐标\n const modelPoints = positions.map(p => {\n const point = Matrix4.multiplyByPoint(this.modelMatrix, p, new Cartesian3());\n xs.push(point.x)\n ys.push(point.y)\n zs.push(point.z)\n return point\n })\n // 计算当前裁剪面边界范围(模型坐标系下)\n const rect = new Cartesian4(Math.min.apply(null, xs), Math.min.apply(null, ys), Math.max.apply(null, xs), Math.max.apply(null, ys))\n const canvas = document.createElement('canvas')\n canvas.width = 1024\n canvas.height = 1024\n const width = rect.z - rect.x\n const height = rect.w - rect.y\n const ctx = canvas.getContext('2d')\n ctx.fillStyle = '#fff' // 设置整体背景为白色\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n ctx.beginPath()\n\n ctx.moveTo(canvas.width * (modelPoints[0].x - rect.x) / width, canvas.height * (modelPoints[0].y - rect.y) / height)\n\n for (let i = 1; i < modelPoints.length; i++) {\n ctx.lineTo(canvas.width * (modelPoints[i].x - rect.x) / width, canvas.height * (modelPoints[i].y - rect.y) / height)\n }\n\n ctx.closePath()\n ctx.fillStyle = '#000' // 根据填充的黑色来裁剪模型\n ctx.fill()\n\n this.canvas = canvas;\n\n const uniforms = {}\n uniforms[`u_rect_${id}`] = {\n type: UniformType.VEC4,\n value: rect\n }\n uniforms[`u_map_${id}`] = {\n type: UniformType.SAMPLER_2D,\n value: new TextureUniform({\n url: canvas.toDataURL()\n }),\n minificationFilter: TextureMinificationFilter.LINEAR,\n magnificationFilter: TextureMagnificationFilter.LINEAR\n }\n\n return uniforms\n }\n\n}\n\nexport default Cut;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Cut.js","names":["_cesium","require","_typeof","o","Symbol","iterator","constructor","prototype","_classCallCheck","a","n","TypeError","_defineProperties","e","r","t","length","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","i","_toPrimitive","toPrimitive","call","String","Number","Cut","tileset","opt","console","log","_iscutOutter","iscutOutter","cutRegions","center","boundingSphere","enuMtx4","Transforms","eastNorthUpToFixedFrame","modelMatrix","Matrix4","inverse","canvas","undefined","get","set","val","updateShader","value","addRegion","attr","_ref","positions","id","Date","getTime","Math","random","toFixed","index","findIndex","item","push","removeRegionById","splice","destroy","customShader","_this","fs_textureMapRect","allUniforms","u_inverseModel","type","UniformType","MAT4","clone","u_unionCutRegions","BOOL","fs","forEach","element","uniforms","createUniforms","combine","concat","CustomShader","fragmentShaderText","_this2","ceil","xs","ys","zs","modelPoints","map","p","point","multiplyByPoint","Cartesian3","x","y","z","rect","Cartesian4","min","apply","max","document","createElement","width","height","w","ctx","getContext","fillStyle","fillRect","beginPath","moveTo","lineTo","closePath","fill","VEC4","SAMPLER_2D","TextureUniform","url","toDataURL","minificationFilter","TextureMinificationFilter","LINEAR","magnificationFilter","TextureMagnificationFilter","_default","exports"],"sources":["excavation-analysis/Cut.js"],"sourcesContent":["import {\r\n Matrix4,\r\n Transforms,\r\n Cartesian3,\r\n UniformType,\r\n combine,\r\n CustomShader,\r\n Cartesian4,\r\n TextureUniform,\r\n TextureMinificationFilter,\r\n TextureMagnificationFilter\r\n} from 'cesium';\r\n\r\n// 三维模型裁剪\r\nclass Cut {\r\n constructor(tileset, opt) {\r\n if (!tileset) {\r\n console.log(\"缺少模型\");\r\n return;\r\n }\r\n this.tileset = tileset;\r\n this.opt = opt || {};\r\n /**\r\n * @property {Boolean} iscutOutter 是否为外部裁剪,默认为内部裁剪\r\n */\r\n this._iscutOutter = this.opt.iscutOutter; // 是否为外部裁剪 默认为内部裁剪\r\n this.cutRegions = []; // 当前裁剪面数组对象\r\n /* this.modelMatrix = new Matrix4(); // 世界坐标系--》模型坐标系\r\n Matrix4.inverseTransformation(this.tileset.root.computedTransform, this.modelMatrix) */\r\n // 建立模型中心点坐标系\r\n const center = this.tileset.boundingSphere.center;\r\n const enuMtx4 = Transforms.eastNorthUpToFixedFrame(center);\r\n this.modelMatrix = Matrix4.inverse(enuMtx4, new Matrix4());\r\n this.canvas = undefined;\r\n }\r\n\r\n get iscutOutter() {\r\n return this._iscutOutter\r\n }\r\n\r\n set iscutOutter(val) {\r\n this._iscutOutter = val;\r\n this.updateShader();\r\n }\r\n\r\n /**\r\n * 添加裁剪面\r\n * @param {Object} attr 参数\r\n * @param {Cartesian3[]} attr.positions 压平面坐标\r\n * @param {Number} attr.id 唯一标识\r\n */\r\n addRegion(attr) {\r\n let { positions, id } = attr || {};\r\n if (!id) id = (new Date()).getTime() + \"\" + Number(Math.random() * 1000).toFixed(0);\r\n if (!positions || positions.length < 3) {\r\n console.log(\"缺少裁剪面坐标\");\r\n return;\r\n }\r\n const index = this.cutRegions.findIndex(item => item.id === id)\r\n if (index == -1) {\r\n this.cutRegions.push({\r\n id: id,\r\n positions: positions\r\n })\r\n } else {\r\n this.cutRegions[index].positions = positions;\r\n }\r\n this.updateShader()\r\n }\r\n /**\r\n * 移除裁剪面\r\n * @param {String} id\r\n */\r\n removeRegionById(id) {\r\n if (id) { // 表示移除所有的裁剪面\r\n const index = this.cutRegions.findIndex(item => item.id === id)\r\n if (index != -1) this.cutRegions.splice(index, 1)\r\n } else { // 表示移除单个的裁剪面\r\n this.cutRegions = [];\r\n }\r\n this.updateShader();\r\n }\r\n\r\n /**\r\n * 销毁\r\n */\r\n destroy() {\r\n this.tileset.customShader = undefined;\r\n }\r\n\r\n /**\r\n * 修改模型着色器\r\n */\r\n updateShader() {\r\n // 定义着色器中裁剪函数\r\n const fs_textureMapRect = `\r\n vec4 textureMapRect(vec4 rect, sampler2D map, vec2 xy) {\r\n // 判断当前图元坐标和多边形关系 如果在多边形内 进行纹素拾取\r\n if (xy.x >= rect.x && xy.x <= rect.z && xy.y >= rect.y && xy.y <= rect.w) {\r\n float w = rect.z - rect.x;\r\n float h = rect.w - rect.y;\r\n float s = (xy.x - rect.x) / w;\r\n float t = (xy.y - rect.y) / h;\r\n vec4 color = texture(map, vec2(s, 1.0 - t));\r\n return color;\r\n }\r\n return vec4(1.0);\r\n }\r\n `;\r\n\r\n let allUniforms = {\r\n u_inverseModel: {\r\n type: UniformType.MAT4,\r\n value: this.modelMatrix.clone()\r\n },\r\n u_unionCutRegions: {\r\n type: UniformType.BOOL,\r\n value: this._iscutOutter\r\n }\r\n }\r\n\r\n // 构建多区域着色器\r\n let fs = ``;\r\n this.cutRegions.forEach(element => {\r\n const uniforms = this.createUniforms(element.positions, element.id)\r\n allUniforms = combine(allUniforms, uniforms)\r\n fs += `\r\n vec4 color_${element.id} = textureMapRect(u_rect_${element.id}, u_map_${element.id}, xy);\r\n cutColor *= color_${element.id};\r\n `\r\n })\r\n\r\n fs += `\r\n if (u_unionCutRegions) {\r\n material.diffuse *= (vec3(1.0) - cutColor.rgb);\r\n } else {\r\n material.diffuse *= cutColor.rgb;\r\n }\r\n if (material.diffuse.r <= 0.0001 && material.diffuse.g <= 0.0001 && material.diffuse.b <= 0.0001) {\r\n discard;\r\n }\r\n `;\r\n\r\n this.tileset.customShader = new CustomShader({\r\n uniforms: allUniforms,\r\n fragmentShaderText: `\r\n ${fs_textureMapRect}\r\n void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) {\r\n vec4 positionMC = u_inverseModel * vec4(fsInput.attributes.positionWC, 1.0);\r\n vec2 xy = positionMC.xy;\r\n vec4 cutColor = vec4(1.0);\r\n ${fs}\r\n }`\r\n })\r\n\r\n }\r\n\r\n /**\r\n * 根据坐标创建片元着色器\r\n * @param {Cartesian3[]} positions\r\n * @param {String} id\r\n */\r\n createUniforms(positions, id) {\r\n if (!positions || positions.length < 3) {\r\n console.log(\"缺少裁剪面坐标\");\r\n return;\r\n }\r\n id = id || Math.ceil(Math.random() * 100000) + '_' + Math.ceil(Math.random() * 100000)\r\n // 根据世界坐标范围计算相对模型坐标范围\r\n const xs = [], ys = [], zs = []\r\n // 计算模型坐标系下坐标\r\n const modelPoints = positions.map(p => {\r\n const point = Matrix4.multiplyByPoint(this.modelMatrix, p, new Cartesian3());\r\n xs.push(point.x)\r\n ys.push(point.y)\r\n zs.push(point.z)\r\n return point\r\n })\r\n // 计算当前裁剪面边界范围(模型坐标系下)\r\n const rect = new Cartesian4(Math.min.apply(null, xs), Math.min.apply(null, ys), Math.max.apply(null, xs), Math.max.apply(null, ys))\r\n const canvas = document.createElement('canvas')\r\n canvas.width = 1024\r\n canvas.height = 1024\r\n const width = rect.z - rect.x\r\n const height = rect.w - rect.y\r\n const ctx = canvas.getContext('2d')\r\n ctx.fillStyle = '#fff' // 设置整体背景为白色\r\n ctx.fillRect(0, 0, canvas.width, canvas.height)\r\n ctx.beginPath()\r\n\r\n ctx.moveTo(canvas.width * (modelPoints[0].x - rect.x) / width, canvas.height * (modelPoints[0].y - rect.y) / height)\r\n\r\n for (let i = 1; i < modelPoints.length; i++) {\r\n ctx.lineTo(canvas.width * (modelPoints[i].x - rect.x) / width, canvas.height * (modelPoints[i].y - rect.y) / height)\r\n }\r\n\r\n ctx.closePath()\r\n ctx.fillStyle = '#000' // 根据填充的黑色来裁剪模型\r\n ctx.fill()\r\n\r\n this.canvas = canvas;\r\n\r\n const uniforms = {}\r\n uniforms[`u_rect_${id}`] = {\r\n type: UniformType.VEC4,\r\n value: rect\r\n }\r\n uniforms[`u_map_${id}`] = {\r\n type: UniformType.SAMPLER_2D,\r\n value: new TextureUniform({\r\n url: canvas.toDataURL()\r\n }),\r\n minificationFilter: TextureMinificationFilter.LINEAR,\r\n magnificationFilter: TextureMagnificationFilter.LINEAR\r\n }\r\n\r\n return uniforms\r\n }\r\n\r\n}\r\n\r\nexport default Cut;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,9 +14,9 @@ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o =
|
|
|
14
14
|
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
15
15
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
16
16
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17
|
-
/**
|
|
18
|
-
* @class
|
|
19
|
-
* @description 3dtiles 模型按照(经纬度二维)范围裁剪
|
|
17
|
+
/**
|
|
18
|
+
* @class
|
|
19
|
+
* @description 3dtiles 模型按照(经纬度二维)范围裁剪
|
|
20
20
|
*/
|
|
21
21
|
var Clipping = /*#__PURE__*/function () {
|
|
22
22
|
function Clipping(tileset, opt) {
|
|
@@ -84,8 +84,8 @@ var Clipping = /*#__PURE__*/function () {
|
|
|
84
84
|
this.updateShader(out_v_str, in_v_str);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
/**
|
|
88
|
-
* 销毁
|
|
87
|
+
/**
|
|
88
|
+
* 销毁
|
|
89
89
|
*/
|
|
90
90
|
}, {
|
|
91
91
|
key: "destroy",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TilesetCut.js","names":["_cesium","require","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelper","r","e","t","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","a","u","call","next","_arrayLikeToArray","toString","slice","name","from","test","_classCallCheck","_defineProperties","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","i","_toPrimitive","toPrimitive","String","Number","Clipping","tileset","opt","Error","console","log","polygons","_iterator","_step","polygon","err","excavate","center","boundingSphere","clone","matrix","Transforms","eastNorthUpToFixedFrame","localMatrix","Matrix4","inverse","localPositionsArr","pp","positions","localCoor","cartesiansToLocal","push","initialize","out_v_str","in_v_str","temp_str","m","concat","updateShader","destroy","customShader","undefined","vtx1","vtx2","v_text","flatCustomShader","CustomShader","uniforms","u_tileset_localToWorldMatrix","type","UniformType","MAT4","u_tileset_worldToLocalMatrix","u_flatHeight","FLOAT","flatHeight","vertexShaderText","arr","position","localp","multiplyByPoint","Cartesian3","x","y","_default","exports"],"sources":["excavation-analysis/TilesetCut.js"],"sourcesContent":["import {\n Transforms,\n Matrix4,\n CustomShader,\n UniformType,\n Cartesian3\n} from \"cesium\";\n/**\n * @class\n * @description 3dtiles 模型按照(经纬度二维)范围裁剪\n */\nclass Clipping {\n constructor(tileset, opt) {\n if (!tileset) {\n throw new Error(\"参数错误!\")\n }\n\n console.log(\"polygons:\", opt.polygons);\n if (opt.polygons && opt.polygons instanceof Array && opt.polygons.length > 0) {\n for (let polygon of opt.polygons) {\n if (!(polygon instanceof Array && polygon.length >= 3)) {\n throw new Error(\"参数错误!\")\n }\n }\n } else {\n throw new Error(\"参数错误!\")\n }\n\n this.tileset = tileset;\n if (typeof opt.excavate === \"boolean\") {\n this.excavate = opt.excavate\n } else {\n this.excavate = false;\n }\n this.polygons = opt.polygons;\n\n this.center = tileset.boundingSphere.center.clone();\n this.matrix = Transforms.eastNorthUpToFixedFrame(this.center.clone());\n this.localMatrix = Matrix4.inverse(this.matrix, new Matrix4());\n\n this.localPositionsArr = [];\n for (let pp = 0; pp < this.polygons.length; pp++) {\n let positions = this.polygons[pp];\n let localCoor = this.cartesiansToLocal(positions);\n this.localPositionsArr.push(localCoor);\n }\n\n this.initialize();\n }\n\n\n initialize() {\n let out_v_str = ``;\n let in_v_str = ``;\n let temp_str = ``;\n for (let m = 0; m < this.localPositionsArr.length; m++) {\n\n let polygon = this.localPositionsArr[m];\n out_v_str +=\n `vec2 points_${m}[${polygon.length}];\n bool isPointInPolygon_${m}(vec2 point){\n int nCross = 0; // 交点数\n const int n = ${polygon.length};\n for(int i = 0; i < n; i++){\n vec2 p1 = points_${m}[i];\n vec2 p2 = points_${m}[int(mod(float(i+1),float(n)))];\n if(p1[1] == p2[1]){\n continue;\n }\n if(point[1] < min(p1[1], p2[1])){\n continue;\n }\n if(point[1] >= max(p1[1], p2[1])){\n continue;\n }\n float x = p1[0] + ((point[1] - p1[1]) * (p2[0] - p1[0])) / (p2[1] - p1[1]);\n if(x > point[0]){\n nCross++;\n }\n }\n return int(mod(float(nCross), float(2))) == 1;\n }\\n\n `\n\n for (let n = 0; n < polygon.length; n++) {\n in_v_str += `points_${m}[${n}] = vec2(${polygon[n][0]}, ${polygon[n][1]});\\n`;\n }\n temp_str += `isPointInPolygon_${m}(position2D)||`\n }\n\n temp_str = temp_str.slice(0, -2);\n\n if (this.excavate == false) {\n in_v_str +=\n `\n if(${temp_str}){\n }else{\n vsOutput.positionMC *= 0.0;\n }\n `\n } else if (this.excavate == true) {\n in_v_str +=\n `\n if(${temp_str}){\n vsOutput.positionMC *= 0.0;\n }\n `\n }\n\n this.updateShader(out_v_str, in_v_str);\n }\n\n /**\n * 销毁\n */\n destroy() {\n this.tileset.customShader = undefined;\n }\n\n updateShader(vtx1, vtx2) {\n let v_text = `\n // 所有isPointInPolygon函数\n ${vtx1}\n void vertexMain(VertexInput vsInput, inout czm_modelVertexOutput vsOutput){\n vec3 modelMC = vsInput.attributes.positionMC;\n vec4 model_local_position = vec4(modelMC.x, modelMC.y, modelMC.z, 1.0);\n vec4 tileset_local_position = u_tileset_worldToLocalMatrix * czm_model * model_local_position;\n vec2 position2D = vec2(tileset_local_position.x,tileset_local_position.y);\n // 多个多边形区域\n ${vtx2}\n }`;\n let flatCustomShader = new CustomShader({\n uniforms: {\n u_tileset_localToWorldMatrix: {\n type: UniformType.MAT4,\n value: this.matrix,\n },\n u_tileset_worldToLocalMatrix: {\n type: UniformType.MAT4,\n value: this.localMatrix,\n },\n u_flatHeight: {\n type: UniformType.FLOAT,\n value: this.flatHeight,\n },\n },\n vertexShaderText: v_text,\n });\n this.tileset.customShader = flatCustomShader;\n }\n\n // 世界坐标转数组局部坐标\n cartesiansToLocal(positions) {\n let arr = [];\n for (let i = 0; i < positions.length; i++) {\n let position = positions[i];\n let localp = Matrix4.multiplyByPoint(\n this.localMatrix,\n position.clone(),\n new Cartesian3()\n )\n arr.push([localp.x, localp.y]);\n }\n return arr;\n }\n}\n\nexport default Clipping;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TilesetCut.js","names":["_cesium","require","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelper","r","e","t","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","a","u","call","next","_arrayLikeToArray","toString","slice","name","from","test","_classCallCheck","_defineProperties","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","i","_toPrimitive","toPrimitive","String","Number","Clipping","tileset","opt","Error","console","log","polygons","_iterator","_step","polygon","err","excavate","center","boundingSphere","clone","matrix","Transforms","eastNorthUpToFixedFrame","localMatrix","Matrix4","inverse","localPositionsArr","pp","positions","localCoor","cartesiansToLocal","push","initialize","out_v_str","in_v_str","temp_str","m","concat","updateShader","destroy","customShader","undefined","vtx1","vtx2","v_text","flatCustomShader","CustomShader","uniforms","u_tileset_localToWorldMatrix","type","UniformType","MAT4","u_tileset_worldToLocalMatrix","u_flatHeight","FLOAT","flatHeight","vertexShaderText","arr","position","localp","multiplyByPoint","Cartesian3","x","y","_default","exports"],"sources":["excavation-analysis/TilesetCut.js"],"sourcesContent":["import {\r\n Transforms,\r\n Matrix4,\r\n CustomShader,\r\n UniformType,\r\n Cartesian3\r\n} from \"cesium\";\r\n/**\r\n * @class\r\n * @description 3dtiles 模型按照(经纬度二维)范围裁剪\r\n */\r\nclass Clipping {\r\n constructor(tileset, opt) {\r\n if (!tileset) {\r\n throw new Error(\"参数错误!\")\r\n }\r\n\r\n console.log(\"polygons:\", opt.polygons);\r\n if (opt.polygons && opt.polygons instanceof Array && opt.polygons.length > 0) {\r\n for (let polygon of opt.polygons) {\r\n if (!(polygon instanceof Array && polygon.length >= 3)) {\r\n throw new Error(\"参数错误!\")\r\n }\r\n }\r\n } else {\r\n throw new Error(\"参数错误!\")\r\n }\r\n\r\n this.tileset = tileset;\r\n if (typeof opt.excavate === \"boolean\") {\r\n this.excavate = opt.excavate\r\n } else {\r\n this.excavate = false;\r\n }\r\n this.polygons = opt.polygons;\r\n\r\n this.center = tileset.boundingSphere.center.clone();\r\n this.matrix = Transforms.eastNorthUpToFixedFrame(this.center.clone());\r\n this.localMatrix = Matrix4.inverse(this.matrix, new Matrix4());\r\n\r\n this.localPositionsArr = [];\r\n for (let pp = 0; pp < this.polygons.length; pp++) {\r\n let positions = this.polygons[pp];\r\n let localCoor = this.cartesiansToLocal(positions);\r\n this.localPositionsArr.push(localCoor);\r\n }\r\n\r\n this.initialize();\r\n }\r\n\r\n\r\n initialize() {\r\n let out_v_str = ``;\r\n let in_v_str = ``;\r\n let temp_str = ``;\r\n for (let m = 0; m < this.localPositionsArr.length; m++) {\r\n\r\n let polygon = this.localPositionsArr[m];\r\n out_v_str +=\r\n `vec2 points_${m}[${polygon.length}];\r\n bool isPointInPolygon_${m}(vec2 point){\r\n int nCross = 0; // 交点数\r\n const int n = ${polygon.length};\r\n for(int i = 0; i < n; i++){\r\n vec2 p1 = points_${m}[i];\r\n vec2 p2 = points_${m}[int(mod(float(i+1),float(n)))];\r\n if(p1[1] == p2[1]){\r\n continue;\r\n }\r\n if(point[1] < min(p1[1], p2[1])){\r\n continue;\r\n }\r\n if(point[1] >= max(p1[1], p2[1])){\r\n continue;\r\n }\r\n float x = p1[0] + ((point[1] - p1[1]) * (p2[0] - p1[0])) / (p2[1] - p1[1]);\r\n if(x > point[0]){\r\n nCross++;\r\n }\r\n }\r\n return int(mod(float(nCross), float(2))) == 1;\r\n }\\n\r\n `\r\n\r\n for (let n = 0; n < polygon.length; n++) {\r\n in_v_str += `points_${m}[${n}] = vec2(${polygon[n][0]}, ${polygon[n][1]});\\n`;\r\n }\r\n temp_str += `isPointInPolygon_${m}(position2D)||`\r\n }\r\n\r\n temp_str = temp_str.slice(0, -2);\r\n\r\n if (this.excavate == false) {\r\n in_v_str +=\r\n `\r\n if(${temp_str}){\r\n }else{\r\n vsOutput.positionMC *= 0.0;\r\n }\r\n `\r\n } else if (this.excavate == true) {\r\n in_v_str +=\r\n `\r\n if(${temp_str}){\r\n vsOutput.positionMC *= 0.0;\r\n }\r\n `\r\n }\r\n\r\n this.updateShader(out_v_str, in_v_str);\r\n }\r\n\r\n /**\r\n * 销毁\r\n */\r\n destroy() {\r\n this.tileset.customShader = undefined;\r\n }\r\n\r\n updateShader(vtx1, vtx2) {\r\n let v_text = `\r\n // 所有isPointInPolygon函数\r\n ${vtx1}\r\n void vertexMain(VertexInput vsInput, inout czm_modelVertexOutput vsOutput){\r\n vec3 modelMC = vsInput.attributes.positionMC;\r\n vec4 model_local_position = vec4(modelMC.x, modelMC.y, modelMC.z, 1.0);\r\n vec4 tileset_local_position = u_tileset_worldToLocalMatrix * czm_model * model_local_position;\r\n vec2 position2D = vec2(tileset_local_position.x,tileset_local_position.y);\r\n // 多个多边形区域\r\n ${vtx2}\r\n }`;\r\n let flatCustomShader = new CustomShader({\r\n uniforms: {\r\n u_tileset_localToWorldMatrix: {\r\n type: UniformType.MAT4,\r\n value: this.matrix,\r\n },\r\n u_tileset_worldToLocalMatrix: {\r\n type: UniformType.MAT4,\r\n value: this.localMatrix,\r\n },\r\n u_flatHeight: {\r\n type: UniformType.FLOAT,\r\n value: this.flatHeight,\r\n },\r\n },\r\n vertexShaderText: v_text,\r\n });\r\n this.tileset.customShader = flatCustomShader;\r\n }\r\n\r\n // 世界坐标转数组局部坐标\r\n cartesiansToLocal(positions) {\r\n let arr = [];\r\n for (let i = 0; i < positions.length; i++) {\r\n let position = positions[i];\r\n let localp = Matrix4.multiplyByPoint(\r\n this.localMatrix,\r\n position.clone(),\r\n new Cartesian3()\r\n )\r\n arr.push([localp.x, localp.y]);\r\n }\r\n return arr;\r\n }\r\n}\r\n\r\nexport default Clipping;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDrawHandler.js","names":["_react","require","_cesium","_cesium2","_TilesetCut","_interopRequireDefault","e","__esModule","DrawHandler","props","viewer","type","sceneId","viewerObj","useRef","drawLayer","listnerEvent","drawStart","drawEnd","cutToolRef","current","initDrawHandler","cesiumWidget","screenSpaceEventHandler","removeInputAction","ScreenSpaceEventType","LEFT_DOUBLE_CLICK","CustomDataSource","dataSources","add","activate","draw","drawPolygon","clampToGround","handler","ScreenSpaceEventHandler","scene","canvas","positions","polygon","PolygonHierarchy","polyObj","setInputAction","ev","cartesian","getCartesian3FromXY","position","x","length","push","clone","_createPolygonEntity","createPolygonEntity","entity","LEFT_CLICK","catesian","endPosition","pop","MOUSE_MOVE","destroy","forEach","fuc","RIGHT_CLICK","_drawLayer$current","polygonEntity","Entity","polyline","CallbackProperty","width","material","Color","hierarchy","WHITE","withAlpha","heightReference","HeightReference","CLAMP_TO_GROUND","entities","on","callBack","clear","removeAll","useEffect","console","warn","_default","exports"],"sources":["excavation-analysis/hooks/useDrawHandler.js"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { getCartesian3FromXY } from '../../_util/cesium';\nimport {\n ScreenSpaceEventType,\n CustomDataSource,\n ScreenSpaceEventHandler,\n PolygonHierarchy,\n Entity,\n CallbackProperty,\n Color,\n HeightReference\n} from 'cesium';\nimport TilesetCut from '../TilesetCut';\n\n\nconst DrawHandler = (props) => {\n const { viewer, type, sceneId } = props;\n const viewerObj = useRef()\n const drawLayer = useRef(null)\n const listnerEvent = useRef({\n drawStart: [],\n drawEnd: []\n })\n const cutToolRef = useRef();\n if (viewer) viewerObj.current = viewer\n\n // 初始化绘图控件\n const initDrawHandler = (viewer) => {\n // 取消双击事件-追踪该位置\n viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(ScreenSpaceEventType.LEFT_DOUBLE_CLICK)\n drawLayer.current = new CustomDataSource('measureLayer')\n viewer.dataSources.add(drawLayer.current)\n }\n\n const activate = () => {\n if (type) {\n draw(type)\n }\n }\n\n // 绘制多边形\n const drawPolygon = (clampToGround) => {\n if (!viewer) return\n const handler = new ScreenSpaceEventHandler(viewer.scene.canvas)\n const positions = []\n const polygon = new PolygonHierarchy()\n let polyObj = null\n\n handler.setInputAction((ev) => {\n const cartesian = getCartesian3FromXY(viewer, ev.position)\n if (cartesian && cartesian.x) {\n if (positions.length === 0) {\n polygon.positions.push(cartesian.clone())\n positions.push(cartesian.clone())\n }\n positions.push(cartesian.clone())\n polygon.positions.push(cartesian.clone())\n if(!polyObj) {\n const { entity } = createPolygonEntity(positions, polygon, clampToGround)\n polyObj = entity\n }\n }\n }, ScreenSpaceEventType.LEFT_CLICK)\n\n handler.setInputAction((ev) => {\n const catesian = getCartesian3FromXY(viewer, ev.endPosition)\n if (positions.length >= 2) {\n if (catesian && catesian.x) {\n positions.pop()\n positions.push(catesian)\n polygon.positions.pop()\n polygon.positions.push(catesian)\n }\n }\n }, ScreenSpaceEventType.MOUSE_MOVE)\n\n handler.setInputAction(() => {\n handler.destroy()\n positions.push(positions[0])\n // 执行绘制生命周期函数\n if (listnerEvent.current.drawEnd.length) {\n listnerEvent.current.drawEnd.forEach(fuc => {\n fuc(positions)\n })\n }\n }, ScreenSpaceEventType.RIGHT_CLICK)\n }\n\n // 创建多边形\n const createPolygonEntity = (positions, polygon, clampToGround) => {\n const polygonEntity = new Entity({\n polyline: {\n positions: new CallbackProperty(() => {\n return positions\n }, false),\n width: 3,\n material: new Color(0, 255, 255, 0.5),\n clampToGround: clampToGround\n },\n polygon: {\n hierarchy: new CallbackProperty(() => {\n return polygon\n }, false),\n material: Color.WHITE.withAlpha(0.1),\n heightReference: HeightReference.CLAMP_TO_GROUND\n }\n })\n const entity = drawLayer.current?.entities.add(polygonEntity)\n return {\n polygonEntity,\n entity\n }\n }\n\n const draw = (type) => {\n switch(type) {\n case 'polygon':\n drawPolygon(true)\n break\n }\n }\n\n const on = (type, callBack) => {\n listnerEvent.current[type].push(callBack)\n }\n\n const clear = () => {\n if (drawLayer.current) {\n drawLayer.current.entities.removeAll()\n }\n }\n\n useEffect(() => {\n if (viewer && type) {\n initDrawHandler(viewer, type)\n } else {\n console.warn('请使用 initDrawHandler 函数初始化绘图控件')\n }\n return () => {\n clear()\n }\n }, [])\n\n return { activate, on, clear }\n}\n\nexport default DrawHandler;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useDrawHandler.js","names":["_react","require","_cesium","_cesium2","_TilesetCut","_interopRequireDefault","e","__esModule","DrawHandler","props","viewer","type","sceneId","viewerObj","useRef","drawLayer","listnerEvent","drawStart","drawEnd","cutToolRef","current","initDrawHandler","cesiumWidget","screenSpaceEventHandler","removeInputAction","ScreenSpaceEventType","LEFT_DOUBLE_CLICK","CustomDataSource","dataSources","add","activate","draw","drawPolygon","clampToGround","handler","ScreenSpaceEventHandler","scene","canvas","positions","polygon","PolygonHierarchy","polyObj","setInputAction","ev","cartesian","getCartesian3FromXY","position","x","length","push","clone","_createPolygonEntity","createPolygonEntity","entity","LEFT_CLICK","catesian","endPosition","pop","MOUSE_MOVE","destroy","forEach","fuc","RIGHT_CLICK","_drawLayer$current","polygonEntity","Entity","polyline","CallbackProperty","width","material","Color","hierarchy","WHITE","withAlpha","heightReference","HeightReference","CLAMP_TO_GROUND","entities","on","callBack","clear","removeAll","useEffect","console","warn","_default","exports"],"sources":["excavation-analysis/hooks/useDrawHandler.js"],"sourcesContent":["import { useEffect, useRef } from 'react'\r\nimport { getCartesian3FromXY } from '../../_util/cesium';\r\nimport {\r\n ScreenSpaceEventType,\r\n CustomDataSource,\r\n ScreenSpaceEventHandler,\r\n PolygonHierarchy,\r\n Entity,\r\n CallbackProperty,\r\n Color,\r\n HeightReference\r\n} from 'cesium';\r\nimport TilesetCut from '../TilesetCut';\r\n\r\n\r\nconst DrawHandler = (props) => {\r\n const { viewer, type, sceneId } = props;\r\n const viewerObj = useRef()\r\n const drawLayer = useRef(null)\r\n const listnerEvent = useRef({\r\n drawStart: [],\r\n drawEnd: []\r\n })\r\n const cutToolRef = useRef();\r\n if (viewer) viewerObj.current = viewer\r\n\r\n // 初始化绘图控件\r\n const initDrawHandler = (viewer) => {\r\n // 取消双击事件-追踪该位置\r\n viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(ScreenSpaceEventType.LEFT_DOUBLE_CLICK)\r\n drawLayer.current = new CustomDataSource('measureLayer')\r\n viewer.dataSources.add(drawLayer.current)\r\n }\r\n\r\n const activate = () => {\r\n if (type) {\r\n draw(type)\r\n }\r\n }\r\n\r\n // 绘制多边形\r\n const drawPolygon = (clampToGround) => {\r\n if (!viewer) return\r\n const handler = new ScreenSpaceEventHandler(viewer.scene.canvas)\r\n const positions = []\r\n const polygon = new PolygonHierarchy()\r\n let polyObj = null\r\n\r\n handler.setInputAction((ev) => {\r\n const cartesian = getCartesian3FromXY(viewer, ev.position)\r\n if (cartesian && cartesian.x) {\r\n if (positions.length === 0) {\r\n polygon.positions.push(cartesian.clone())\r\n positions.push(cartesian.clone())\r\n }\r\n positions.push(cartesian.clone())\r\n polygon.positions.push(cartesian.clone())\r\n if(!polyObj) {\r\n const { entity } = createPolygonEntity(positions, polygon, clampToGround)\r\n polyObj = entity\r\n }\r\n }\r\n }, ScreenSpaceEventType.LEFT_CLICK)\r\n\r\n handler.setInputAction((ev) => {\r\n const catesian = getCartesian3FromXY(viewer, ev.endPosition)\r\n if (positions.length >= 2) {\r\n if (catesian && catesian.x) {\r\n positions.pop()\r\n positions.push(catesian)\r\n polygon.positions.pop()\r\n polygon.positions.push(catesian)\r\n }\r\n }\r\n }, ScreenSpaceEventType.MOUSE_MOVE)\r\n\r\n handler.setInputAction(() => {\r\n handler.destroy()\r\n positions.push(positions[0])\r\n // 执行绘制生命周期函数\r\n if (listnerEvent.current.drawEnd.length) {\r\n listnerEvent.current.drawEnd.forEach(fuc => {\r\n fuc(positions)\r\n })\r\n }\r\n }, ScreenSpaceEventType.RIGHT_CLICK)\r\n }\r\n\r\n // 创建多边形\r\n const createPolygonEntity = (positions, polygon, clampToGround) => {\r\n const polygonEntity = new Entity({\r\n polyline: {\r\n positions: new CallbackProperty(() => {\r\n return positions\r\n }, false),\r\n width: 3,\r\n material: new Color(0, 255, 255, 0.5),\r\n clampToGround: clampToGround\r\n },\r\n polygon: {\r\n hierarchy: new CallbackProperty(() => {\r\n return polygon\r\n }, false),\r\n material: Color.WHITE.withAlpha(0.1),\r\n heightReference: HeightReference.CLAMP_TO_GROUND\r\n }\r\n })\r\n const entity = drawLayer.current?.entities.add(polygonEntity)\r\n return {\r\n polygonEntity,\r\n entity\r\n }\r\n }\r\n\r\n const draw = (type) => {\r\n switch(type) {\r\n case 'polygon':\r\n drawPolygon(true)\r\n break\r\n }\r\n }\r\n\r\n const on = (type, callBack) => {\r\n listnerEvent.current[type].push(callBack)\r\n }\r\n\r\n const clear = () => {\r\n if (drawLayer.current) {\r\n drawLayer.current.entities.removeAll()\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (viewer && type) {\r\n initDrawHandler(viewer, type)\r\n } else {\r\n console.warn('请使用 initDrawHandler 函数初始化绘图控件')\r\n }\r\n return () => {\r\n clear()\r\n }\r\n }, [])\r\n\r\n return { activate, on, clear }\r\n}\r\n\r\nexport default DrawHandler;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTerrainClipPlan.js","names":["_react","require","_cesium","useTerrainClipPlan","props","viewer","showResult","useRef","wellWall","bottomSurface","wellData","excavateMinHeight","wallImgStr","bottomImgStr","splitNumber","heightNum","positionsCur","show","isShow","current","scene","globe","clippingPlanes","enabled","switchExcavate","isSHow","material","Material","fromType","updateExcavateDepth","height","primitives","remove","lerpos","lerp_pos","res","i","length","push","Cartesian3","fromRadians","latitude","updateData","start","attrs","wallImg","splitNum","positions","bottomImg","createWell","data","terrainProvider","_layers","createBottomSurface","bottom_pos","handleData","arr","no_height_top","s","longitude","createWellWall","when","sampleTerrainMostDetailed","then","minHeight","getMinHeight","points","p","ellipsoidToLonLat","polygon","PolygonGeometry","polygonHierarchy","PolygonHierarchy","fromDegreesArrayHeights","perPositionHeight","geometry","createGeometry","fabric","type","uniforms","image","appearance","MaterialAppearance","translucent","flat","Primitive","geometryInstances","GeometryInstance","asynchronous","add","no_height_topt","maxHeights","minHeights","altitude","wall","WallGeometry","maximumHeights","minimumHeights","primitive","attributes","color","ColorGeometryInstanceAttribute","fromColor","Color","GREY","id","cartesians","_minPoint","minPoint","cartesian","ellipsoid","cartesian3","x","y","z","cartographic","cartesianToCartographic","CesiumMath","toDegrees","clear","planes","pointsLength","nextIndex","midpoint","catographic","Cartographic","fromCartesian","getHeight","up","normalize","right","subtract","cross","plane","Plane","distance","getPointDistance","ClippingPlane","ClippingPlaneCollection","edgeWidth","edgeColor","WHITE","unionClippingRegions","prepareWell","_viewer$scene$globe$c","removeAll","isDestroyed","destroy","undefined","render","len","height_top","diff","currentCattesian","nextCartorghic","currLonLat","nextLonLat","firstLerp","lerp","lastLerp","_default","exports"],"sources":["excavation-analysis/hooks/useTerrainClipPlan.js"],"sourcesContent":["import { useRef } from 'react';\nimport {\n Cartographic,\n Cartesian3,\n Math as CesiumMath,\n when,\n sampleTerrainMostDetailed,\n PolygonGeometry,\n PolygonHierarchy,\n Material,\n MaterialAppearance,\n Primitive,\n GeometryInstance,\n WallGeometry,\n ColorGeometryInstanceAttribute,\n Color,\n Plane,\n ClippingPlane,\n ClippingPlaneCollection,\n VERSION\n} from 'cesium';\n\nconst useTerrainClipPlan = (props) => {\n const { viewer } = props\n const showResult = useRef(true)\n const wellWall = useRef()\n const bottomSurface = useRef()\n const wellData = useRef()\n const excavateMinHeight = useRef(9999)\n const wallImgStr = useRef()\n const bottomImgStr = useRef()\n const splitNumber = useRef()\n const heightNum = useRef(0)\n const positionsCur = useRef([])\n\n // 设置是否显示\n const show = (isShow) => {\n showResult.current = isShow\n if (viewer.scene.globe.clippingPlanes) viewer.scene.globe.clippingPlanes.enabled = isShow\n switchExcavate(isShow)\n }\n\n const switchExcavate = (isSHow) => {\n if (!bottomSurface.current) return\n if (isSHow) {\n viewer.scene.globe.material = Material.fromType(\"WaJue\")\n if (wellWall.current) wellWall.current.show = isSHow\n bottomSurface.current.show = isSHow\n } else {\n viewer.globe.material = null\n if (wellWall.current) wellWall.current.show = !isSHow\n bottomSurface.current.show = !isSHow\n }\n }\n\n\n const updateExcavateDepth = (height) => {\n if (!wellData.current) return\n\n if (bottomSurface.current) viewer.scene.primitives.remove(bottomSurface.current)\n if (wellWall.current) viewer.scene.primitives.remove(wellWall.current)\n\n const lerpos = wellData.current.lerp_pos\n const res = []\n for (let i = 0; i < lerpos.length; i++){\n res.push(Cartesian3.fromRadians(lerpos[i].latitude, excavateMinHeight.current - height))\n }\n heightNum.current = height\n updateData(positionsCur.current)\n }\n\n // 开挖分析\n const start = (attrs) => {\n const { wallImg, splitNum, height, positions, bottomImg } = attrs\n wallImgStr.current = wallImg\n splitNumber.current = splitNum\n heightNum.current = height\n bottomImgStr.current = bottomImg\n positionsCur.current = positions\n updateData(positionsCur.current)\n }\n\n const createWell = (data) => {\n if (viewer.terrainProvider._layers) {\n createBottomSurface(data.bottom_pos);\n\n const handleData = (arr) => {\n const no_height_top = []\n for (let i = 0; i < arr.length; i++) {\n const s = Cartesian3.fromRadians(arr[i].longitude, arr[i].latitude, arr[i].height)\n no_height_top.push(s)\n }\n createWellWall(data.bottom_pos, no_height_top)\n }\n // 针对低于 1.90.0 版本\n if (when) {\n when(sampleTerrainMostDetailed(viewer.terrainProvider, data.lerp_pos), handleData)\n } else {\n sampleTerrainMostDetailed(viewer.terrainProvider, data.lerp_pos).then(handleData)\n }\n } else {\n createBottomSurface(data.bottom_pos)\n createWellWall(data.bottom_pos, data.no_height_top)\n }\n }\n\n const createBottomSurface = (bottom_pos) => {\n if (bottom_pos.length) {\n const minHeight = getMinHeight(bottom_pos)\n const points = []\n for (let i = 0; i < bottom_pos.length; i++) {\n const p = ellipsoidToLonLat(bottom_pos[i])\n points.push(p.longitude)\n points.push(p.latitude)\n points.push(minHeight)\n }\n if (!points) return\n const polygon = new PolygonGeometry({\n polygonHierarchy: new PolygonHierarchy(\n Cartesian3.fromDegreesArrayHeights(points)\n ),\n perPositionHeight: true\n })\n const geometry = PolygonGeometry.createGeometry(polygon)\n const material = new Material({\n fabric: {\n type: 'Image',\n uniforms: {\n image: bottomImgStr.current\n }\n }\n })\n const appearance = new MaterialAppearance({\n translucent: false,\n flat: true,\n material\n })\n\n if (!geometry) return\n bottomSurface.current = new Primitive({\n geometryInstances: new GeometryInstance({\n geometry\n }),\n appearance,\n asynchronous: false\n })\n viewer.scene.primitives.add(bottomSurface.current)\n }\n }\n\n const createWellWall = (bottom_pos, no_height_topt) => {\n const minHeight = getMinHeight(bottom_pos)\n const maxHeights = []\n const minHeights = []\n for (let i = 0; i < no_height_topt.length; i++) {\n maxHeights.push(ellipsoidToLonLat(no_height_topt[i]).altitude)\n minHeights.push(minHeight)\n }\n const wall = new WallGeometry({\n positions: no_height_topt,\n maximumHeights: maxHeights,\n minimumHeights: minHeights,\n })\n const geometry = WallGeometry.createGeometry(wall)\n\n const material = new Material({\n fabric: {\n type: 'Image',\n uniforms: {\n image: wallImgStr.current\n }\n }\n })\n const appearance = new MaterialAppearance({\n translucent: false,\n flat: true,\n material\n })\n if (geometry) {\n const primitive = new Primitive({\n geometryInstances: new GeometryInstance({\n geometry,\n attributes: {\n color: ColorGeometryInstanceAttribute.fromColor(Color.GREY)\n },\n id: 'PitWall'\n }),\n appearance,\n asynchronous: false\n })\n wellWall.current = primitive\n viewer.scene.primitives.add(primitive)\n }\n }\n\n const getMinHeight = (cartesians) => {\n let minHeight = 5000000\n let minPoint = null\n for (let i = 0; i < cartesians.length; i++) {\n const height = cartesians[i]['z']\n if (height < minHeight) {\n minHeight = height\n minPoint = ellipsoidToLonLat(cartesians[i])\n }\n }\n return minPoint?.altitude\n }\n\n const ellipsoidToLonLat = (cartesian) => {\n const ellipsoid = viewer.scene.globe.ellipsoid\n const cartesian3 = new Cartesian3(cartesian.x, cartesian.y, cartesian.z)\n const cartographic = ellipsoid.cartesianToCartographic(cartesian3)\n const latitude = CesiumMath.toDegrees(cartographic.latitude)\n const longitude = CesiumMath.toDegrees(cartographic.longitude)\n const altitude = cartographic.height\n return {\n longitude,\n latitude,\n altitude\n }\n }\n\n // 更新开挖深度\n const updateData = (points) => {\n clear()\n const planes = []\n const pointsLength = points.length\n // 计算分量差\n // const subtr = Cartesian3.subtract(positions[0], positions[1], new Cartesian3())\n excavateMinHeight.current = 9999\n\n for (let i = 0; i < pointsLength; ++i) {\n const nextIndex = (i + 1) % pointsLength\n // 计算中间值\n const midpoint = Cartesian3.midpoint(points[i], points[nextIndex], new Cartesian3())\n\n const catographic = Cartographic.fromCartesian(points[i])\n const height = viewer.scene.globe.getHeight(catographic) || catographic.height\n height < excavateMinHeight.current && (excavateMinHeight.current = height)\n\n const up = Cartesian3.normalize(midpoint, new Cartesian3())\n let right = Cartesian3.subtract(points[nextIndex], midpoint, new Cartesian3())\n right = Cartesian3.normalize(right, right)\n let cross = Cartesian3.cross(right, up, new Cartesian3())\n cross = Cartesian3.normalize(cross, cross)\n const plane = new Plane(cross, 0.0)\n const distance = Plane.getPointDistance(plane, midpoint)\n planes.push(new ClippingPlane(cross, distance))\n }\n viewer.scene.globe.clippingPlanes = new ClippingPlaneCollection({\n planes,\n edgeWidth: 1,\n edgeColor: Color.WHITE,\n enabled: true,\n unionClippingRegions: false\n })\n\n prepareWell(points)\n if (wellData.current) {\n createWell(wellData.current)\n }\n }\n\n // 清除开挖分析结果\n const clear = () => {\n if (viewer.scene.globe.clippingPlanes) {\n viewer.scene.globe.clippingPlanes.enabled = !1\n viewer.scene.globe.clippingPlanes.removeAll()\n }\n if (viewer.scene.globe.clippingPlanes && !viewer.scene.globe.clippingPlanes?.isDestroyed) {\n viewer.scene.globe.clippingPlanes.destroy()\n }\n viewer.scene.globe.clippingPlanes = undefined\n if (bottomSurface.current) viewer.scene.primitives.remove(bottomSurface.current)\n if (wellWall.current) viewer.scene.primitives.remove(wellWall.current)\n bottomSurface.current = undefined\n wellWall.current = undefined\n viewer.scene.render()\n }\n\n const prepareWell = (points) => {\n const len = points.length\n if (len !== 0) {\n const no_height_top = []\n const height_top = []\n const bottom_pos = []\n const lerp_pos = []\n const diff = excavateMinHeight.current - heightNum.current\n for (let i = 0; i < len; i++) {\n const nextIndex = i === len - 1 ? 0 : i + 1\n const currentCattesian = Cartographic.fromCartesian(points[i])\n const nextCartorghic = Cartographic.fromCartesian(points[nextIndex])\n const currLonLat = [currentCattesian.longitude, currentCattesian.latitude]\n const nextLonLat = [nextCartorghic.longitude, nextCartorghic.latitude]\n\n if (i === 0) {\n lerp_pos.push(new Cartographic(currLonLat[0], currLonLat[1]))\n bottom_pos.push(Cartesian3.fromRadians(currLonLat[0], currLonLat[1], diff))\n no_height_top.push(Cartesian3.fromRadians(currLonLat[0], currLonLat[1], 0))\n height_top.push(Cartesian3.fromRadians(currLonLat[0], currLonLat[1], nextCartorghic.height))\n }\n\n if (!splitNumber.current) return\n\n for (let p = 1; p <= splitNumber.current; p++) {\n const firstLerp = CesiumMath.lerp(currLonLat[0], nextLonLat[0], p / splitNumber.current)\n const lastLerp = CesiumMath.lerp(currLonLat[1], nextLonLat[1], p / splitNumber.current)\n if (i !== len - 1 || p !== splitNumber.current) {\n lerp_pos.push(new Cartographic(firstLerp, lastLerp))\n bottom_pos.push(Cartesian3.fromRadians(firstLerp, lastLerp, diff))\n no_height_top.push(Cartesian3.fromRadians(firstLerp, lastLerp, 0))\n height_top.push(Cartesian3.fromRadians(firstLerp, lastLerp, nextCartorghic.height))\n }\n }\n }\n wellData.current = {\n lerp_pos,\n bottom_pos,\n no_height_top,\n height_top\n }\n }\n }\n\n return { start, clear, updateData, updateExcavateDepth, show }\n}\n\nexport default useTerrainClipPlan;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useTerrainClipPlan.js","names":["_react","require","_cesium","useTerrainClipPlan","props","viewer","showResult","useRef","wellWall","bottomSurface","wellData","excavateMinHeight","wallImgStr","bottomImgStr","splitNumber","heightNum","positionsCur","show","isShow","current","scene","globe","clippingPlanes","enabled","switchExcavate","isSHow","material","Material","fromType","updateExcavateDepth","height","primitives","remove","lerpos","lerp_pos","res","i","length","push","Cartesian3","fromRadians","latitude","updateData","start","attrs","wallImg","splitNum","positions","bottomImg","createWell","data","terrainProvider","_layers","createBottomSurface","bottom_pos","handleData","arr","no_height_top","s","longitude","createWellWall","when","sampleTerrainMostDetailed","then","minHeight","getMinHeight","points","p","ellipsoidToLonLat","polygon","PolygonGeometry","polygonHierarchy","PolygonHierarchy","fromDegreesArrayHeights","perPositionHeight","geometry","createGeometry","fabric","type","uniforms","image","appearance","MaterialAppearance","translucent","flat","Primitive","geometryInstances","GeometryInstance","asynchronous","add","no_height_topt","maxHeights","minHeights","altitude","wall","WallGeometry","maximumHeights","minimumHeights","primitive","attributes","color","ColorGeometryInstanceAttribute","fromColor","Color","GREY","id","cartesians","_minPoint","minPoint","cartesian","ellipsoid","cartesian3","x","y","z","cartographic","cartesianToCartographic","CesiumMath","toDegrees","clear","planes","pointsLength","nextIndex","midpoint","catographic","Cartographic","fromCartesian","getHeight","up","normalize","right","subtract","cross","plane","Plane","distance","getPointDistance","ClippingPlane","ClippingPlaneCollection","edgeWidth","edgeColor","WHITE","unionClippingRegions","prepareWell","_viewer$scene$globe$c","removeAll","isDestroyed","destroy","undefined","render","len","height_top","diff","currentCattesian","nextCartorghic","currLonLat","nextLonLat","firstLerp","lerp","lastLerp","_default","exports"],"sources":["excavation-analysis/hooks/useTerrainClipPlan.js"],"sourcesContent":["import { useRef } from 'react';\r\nimport {\r\n Cartographic,\r\n Cartesian3,\r\n Math as CesiumMath,\r\n when,\r\n sampleTerrainMostDetailed,\r\n PolygonGeometry,\r\n PolygonHierarchy,\r\n Material,\r\n MaterialAppearance,\r\n Primitive,\r\n GeometryInstance,\r\n WallGeometry,\r\n ColorGeometryInstanceAttribute,\r\n Color,\r\n Plane,\r\n ClippingPlane,\r\n ClippingPlaneCollection,\r\n VERSION\r\n} from 'cesium';\r\n\r\nconst useTerrainClipPlan = (props) => {\r\n const { viewer } = props\r\n const showResult = useRef(true)\r\n const wellWall = useRef()\r\n const bottomSurface = useRef()\r\n const wellData = useRef()\r\n const excavateMinHeight = useRef(9999)\r\n const wallImgStr = useRef()\r\n const bottomImgStr = useRef()\r\n const splitNumber = useRef()\r\n const heightNum = useRef(0)\r\n const positionsCur = useRef([])\r\n\r\n // 设置是否显示\r\n const show = (isShow) => {\r\n showResult.current = isShow\r\n if (viewer.scene.globe.clippingPlanes) viewer.scene.globe.clippingPlanes.enabled = isShow\r\n switchExcavate(isShow)\r\n }\r\n\r\n const switchExcavate = (isSHow) => {\r\n if (!bottomSurface.current) return\r\n if (isSHow) {\r\n viewer.scene.globe.material = Material.fromType(\"WaJue\")\r\n if (wellWall.current) wellWall.current.show = isSHow\r\n bottomSurface.current.show = isSHow\r\n } else {\r\n viewer.globe.material = null\r\n if (wellWall.current) wellWall.current.show = !isSHow\r\n bottomSurface.current.show = !isSHow\r\n }\r\n }\r\n\r\n\r\n const updateExcavateDepth = (height) => {\r\n if (!wellData.current) return\r\n\r\n if (bottomSurface.current) viewer.scene.primitives.remove(bottomSurface.current)\r\n if (wellWall.current) viewer.scene.primitives.remove(wellWall.current)\r\n\r\n const lerpos = wellData.current.lerp_pos\r\n const res = []\r\n for (let i = 0; i < lerpos.length; i++){\r\n res.push(Cartesian3.fromRadians(lerpos[i].latitude, excavateMinHeight.current - height))\r\n }\r\n heightNum.current = height\r\n updateData(positionsCur.current)\r\n }\r\n\r\n // 开挖分析\r\n const start = (attrs) => {\r\n const { wallImg, splitNum, height, positions, bottomImg } = attrs\r\n wallImgStr.current = wallImg\r\n splitNumber.current = splitNum\r\n heightNum.current = height\r\n bottomImgStr.current = bottomImg\r\n positionsCur.current = positions\r\n updateData(positionsCur.current)\r\n }\r\n\r\n const createWell = (data) => {\r\n if (viewer.terrainProvider._layers) {\r\n createBottomSurface(data.bottom_pos);\r\n\r\n const handleData = (arr) => {\r\n const no_height_top = []\r\n for (let i = 0; i < arr.length; i++) {\r\n const s = Cartesian3.fromRadians(arr[i].longitude, arr[i].latitude, arr[i].height)\r\n no_height_top.push(s)\r\n }\r\n createWellWall(data.bottom_pos, no_height_top)\r\n }\r\n // 针对低于 1.90.0 版本\r\n if (when) {\r\n when(sampleTerrainMostDetailed(viewer.terrainProvider, data.lerp_pos), handleData)\r\n } else {\r\n sampleTerrainMostDetailed(viewer.terrainProvider, data.lerp_pos).then(handleData)\r\n }\r\n } else {\r\n createBottomSurface(data.bottom_pos)\r\n createWellWall(data.bottom_pos, data.no_height_top)\r\n }\r\n }\r\n\r\n const createBottomSurface = (bottom_pos) => {\r\n if (bottom_pos.length) {\r\n const minHeight = getMinHeight(bottom_pos)\r\n const points = []\r\n for (let i = 0; i < bottom_pos.length; i++) {\r\n const p = ellipsoidToLonLat(bottom_pos[i])\r\n points.push(p.longitude)\r\n points.push(p.latitude)\r\n points.push(minHeight)\r\n }\r\n if (!points) return\r\n const polygon = new PolygonGeometry({\r\n polygonHierarchy: new PolygonHierarchy(\r\n Cartesian3.fromDegreesArrayHeights(points)\r\n ),\r\n perPositionHeight: true\r\n })\r\n const geometry = PolygonGeometry.createGeometry(polygon)\r\n const material = new Material({\r\n fabric: {\r\n type: 'Image',\r\n uniforms: {\r\n image: bottomImgStr.current\r\n }\r\n }\r\n })\r\n const appearance = new MaterialAppearance({\r\n translucent: false,\r\n flat: true,\r\n material\r\n })\r\n\r\n if (!geometry) return\r\n bottomSurface.current = new Primitive({\r\n geometryInstances: new GeometryInstance({\r\n geometry\r\n }),\r\n appearance,\r\n asynchronous: false\r\n })\r\n viewer.scene.primitives.add(bottomSurface.current)\r\n }\r\n }\r\n\r\n const createWellWall = (bottom_pos, no_height_topt) => {\r\n const minHeight = getMinHeight(bottom_pos)\r\n const maxHeights = []\r\n const minHeights = []\r\n for (let i = 0; i < no_height_topt.length; i++) {\r\n maxHeights.push(ellipsoidToLonLat(no_height_topt[i]).altitude)\r\n minHeights.push(minHeight)\r\n }\r\n const wall = new WallGeometry({\r\n positions: no_height_topt,\r\n maximumHeights: maxHeights,\r\n minimumHeights: minHeights,\r\n })\r\n const geometry = WallGeometry.createGeometry(wall)\r\n\r\n const material = new Material({\r\n fabric: {\r\n type: 'Image',\r\n uniforms: {\r\n image: wallImgStr.current\r\n }\r\n }\r\n })\r\n const appearance = new MaterialAppearance({\r\n translucent: false,\r\n flat: true,\r\n material\r\n })\r\n if (geometry) {\r\n const primitive = new Primitive({\r\n geometryInstances: new GeometryInstance({\r\n geometry,\r\n attributes: {\r\n color: ColorGeometryInstanceAttribute.fromColor(Color.GREY)\r\n },\r\n id: 'PitWall'\r\n }),\r\n appearance,\r\n asynchronous: false\r\n })\r\n wellWall.current = primitive\r\n viewer.scene.primitives.add(primitive)\r\n }\r\n }\r\n\r\n const getMinHeight = (cartesians) => {\r\n let minHeight = 5000000\r\n let minPoint = null\r\n for (let i = 0; i < cartesians.length; i++) {\r\n const height = cartesians[i]['z']\r\n if (height < minHeight) {\r\n minHeight = height\r\n minPoint = ellipsoidToLonLat(cartesians[i])\r\n }\r\n }\r\n return minPoint?.altitude\r\n }\r\n\r\n const ellipsoidToLonLat = (cartesian) => {\r\n const ellipsoid = viewer.scene.globe.ellipsoid\r\n const cartesian3 = new Cartesian3(cartesian.x, cartesian.y, cartesian.z)\r\n const cartographic = ellipsoid.cartesianToCartographic(cartesian3)\r\n const latitude = CesiumMath.toDegrees(cartographic.latitude)\r\n const longitude = CesiumMath.toDegrees(cartographic.longitude)\r\n const altitude = cartographic.height\r\n return {\r\n longitude,\r\n latitude,\r\n altitude\r\n }\r\n }\r\n\r\n // 更新开挖深度\r\n const updateData = (points) => {\r\n clear()\r\n const planes = []\r\n const pointsLength = points.length\r\n // 计算分量差\r\n // const subtr = Cartesian3.subtract(positions[0], positions[1], new Cartesian3())\r\n excavateMinHeight.current = 9999\r\n\r\n for (let i = 0; i < pointsLength; ++i) {\r\n const nextIndex = (i + 1) % pointsLength\r\n // 计算中间值\r\n const midpoint = Cartesian3.midpoint(points[i], points[nextIndex], new Cartesian3())\r\n\r\n const catographic = Cartographic.fromCartesian(points[i])\r\n const height = viewer.scene.globe.getHeight(catographic) || catographic.height\r\n height < excavateMinHeight.current && (excavateMinHeight.current = height)\r\n\r\n const up = Cartesian3.normalize(midpoint, new Cartesian3())\r\n let right = Cartesian3.subtract(points[nextIndex], midpoint, new Cartesian3())\r\n right = Cartesian3.normalize(right, right)\r\n let cross = Cartesian3.cross(right, up, new Cartesian3())\r\n cross = Cartesian3.normalize(cross, cross)\r\n const plane = new Plane(cross, 0.0)\r\n const distance = Plane.getPointDistance(plane, midpoint)\r\n planes.push(new ClippingPlane(cross, distance))\r\n }\r\n viewer.scene.globe.clippingPlanes = new ClippingPlaneCollection({\r\n planes,\r\n edgeWidth: 1,\r\n edgeColor: Color.WHITE,\r\n enabled: true,\r\n unionClippingRegions: false\r\n })\r\n\r\n prepareWell(points)\r\n if (wellData.current) {\r\n createWell(wellData.current)\r\n }\r\n }\r\n\r\n // 清除开挖分析结果\r\n const clear = () => {\r\n if (viewer.scene.globe.clippingPlanes) {\r\n viewer.scene.globe.clippingPlanes.enabled = !1\r\n viewer.scene.globe.clippingPlanes.removeAll()\r\n }\r\n if (viewer.scene.globe.clippingPlanes && !viewer.scene.globe.clippingPlanes?.isDestroyed) {\r\n viewer.scene.globe.clippingPlanes.destroy()\r\n }\r\n viewer.scene.globe.clippingPlanes = undefined\r\n if (bottomSurface.current) viewer.scene.primitives.remove(bottomSurface.current)\r\n if (wellWall.current) viewer.scene.primitives.remove(wellWall.current)\r\n bottomSurface.current = undefined\r\n wellWall.current = undefined\r\n viewer.scene.render()\r\n }\r\n\r\n const prepareWell = (points) => {\r\n const len = points.length\r\n if (len !== 0) {\r\n const no_height_top = []\r\n const height_top = []\r\n const bottom_pos = []\r\n const lerp_pos = []\r\n const diff = excavateMinHeight.current - heightNum.current\r\n for (let i = 0; i < len; i++) {\r\n const nextIndex = i === len - 1 ? 0 : i + 1\r\n const currentCattesian = Cartographic.fromCartesian(points[i])\r\n const nextCartorghic = Cartographic.fromCartesian(points[nextIndex])\r\n const currLonLat = [currentCattesian.longitude, currentCattesian.latitude]\r\n const nextLonLat = [nextCartorghic.longitude, nextCartorghic.latitude]\r\n\r\n if (i === 0) {\r\n lerp_pos.push(new Cartographic(currLonLat[0], currLonLat[1]))\r\n bottom_pos.push(Cartesian3.fromRadians(currLonLat[0], currLonLat[1], diff))\r\n no_height_top.push(Cartesian3.fromRadians(currLonLat[0], currLonLat[1], 0))\r\n height_top.push(Cartesian3.fromRadians(currLonLat[0], currLonLat[1], nextCartorghic.height))\r\n }\r\n\r\n if (!splitNumber.current) return\r\n\r\n for (let p = 1; p <= splitNumber.current; p++) {\r\n const firstLerp = CesiumMath.lerp(currLonLat[0], nextLonLat[0], p / splitNumber.current)\r\n const lastLerp = CesiumMath.lerp(currLonLat[1], nextLonLat[1], p / splitNumber.current)\r\n if (i !== len - 1 || p !== splitNumber.current) {\r\n lerp_pos.push(new Cartographic(firstLerp, lastLerp))\r\n bottom_pos.push(Cartesian3.fromRadians(firstLerp, lastLerp, diff))\r\n no_height_top.push(Cartesian3.fromRadians(firstLerp, lastLerp, 0))\r\n height_top.push(Cartesian3.fromRadians(firstLerp, lastLerp, nextCartorghic.height))\r\n }\r\n }\r\n }\r\n wellData.current = {\r\n lerp_pos,\r\n bottom_pos,\r\n no_height_top,\r\n height_top\r\n }\r\n }\r\n }\r\n\r\n return { start, clear, updateData, updateExcavateDepth, show }\r\n}\r\n\r\nexport default useTerrainClipPlan;\r\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAqBA,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,KAAK,EAAK;EAClC,IAAQC,MAAM,GAAKD,KAAK,CAAhBC,MAAM;EACd,IAAMC,UAAU,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAC/B,IAAMC,QAAQ,GAAG,IAAAD,aAAM,EAAC,CAAC;EACzB,IAAME,aAAa,GAAG,IAAAF,aAAM,EAAC,CAAC;EAC9B,IAAMG,QAAQ,GAAG,IAAAH,aAAM,EAAC,CAAC;EACzB,IAAMI,iBAAiB,GAAG,IAAAJ,aAAM,EAAC,IAAI,CAAC;EACtC,IAAMK,UAAU,GAAG,IAAAL,aAAM,EAAC,CAAC;EAC3B,IAAMM,YAAY,GAAG,IAAAN,aAAM,EAAC,CAAC;EAC7B,IAAMO,WAAW,GAAG,IAAAP,aAAM,EAAC,CAAC;EAC5B,IAAMQ,SAAS,GAAG,IAAAR,aAAM,EAAC,CAAC,CAAC;EAC3B,IAAMS,YAAY,GAAG,IAAAT,aAAM,EAAC,EAAE,CAAC;;EAE/B;EACA,IAAMU,IAAI,GAAG,SAAPA,IAAIA,CAAIC,MAAM,EAAK;IACrBZ,UAAU,CAACa,OAAO,GAAGD,MAAM;IAC3B,IAAIb,MAAM,CAACe,KAAK,CAACC,KAAK,CAACC,cAAc,EAAEjB,MAAM,CAACe,KAAK,CAACC,KAAK,CAACC,cAAc,CAACC,OAAO,GAAGL,MAAM;IACzFM,cAAc,CAACN,MAAM,CAAC;EAC1B,CAAC;EAED,IAAMM,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,MAAM,EAAK;IAC/B,IAAI,CAAChB,aAAa,CAACU,OAAO,EAAE;IAC5B,IAAIM,MAAM,EAAE;MACRpB,MAAM,CAACe,KAAK,CAACC,KAAK,CAACK,QAAQ,GAAGC,gBAAQ,CAACC,QAAQ,CAAC,OAAO,CAAC;MACxD,IAAIpB,QAAQ,CAACW,OAAO,EAAEX,QAAQ,CAACW,OAAO,CAACF,IAAI,GAAGQ,MAAM;MACpDhB,aAAa,CAACU,OAAO,CAACF,IAAI,GAAGQ,MAAM;IACvC,CAAC,MAAM;MACHpB,MAAM,CAACgB,KAAK,CAACK,QAAQ,GAAG,IAAI;MAC5B,IAAIlB,QAAQ,CAACW,OAAO,EAAEX,QAAQ,CAACW,OAAO,CAACF,IAAI,GAAG,CAACQ,MAAM;MACrDhB,aAAa,CAACU,OAAO,CAACF,IAAI,GAAG,CAACQ,MAAM;IACxC;EACJ,CAAC;EAGD,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,MAAM,EAAK;IACpC,IAAI,CAACpB,QAAQ,CAACS,OAAO,EAAE;IAEvB,IAAIV,aAAa,CAACU,OAAO,EAAEd,MAAM,CAACe,KAAK,CAACW,UAAU,CAACC,MAAM,CAACvB,aAAa,CAACU,OAAO,CAAC;IAChF,IAAIX,QAAQ,CAACW,OAAO,EAAEd,MAAM,CAACe,KAAK,CAACW,UAAU,CAACC,MAAM,CAACxB,QAAQ,CAACW,OAAO,CAAC;IAEtE,IAAMc,MAAM,GAAGvB,QAAQ,CAACS,OAAO,CAACe,QAAQ;IACxC,IAAMC,GAAG,GAAG,EAAE;IACd,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,MAAM,CAACI,MAAM,EAAED,CAAC,EAAE,EAAC;MACnCD,GAAG,CAACG,IAAI,CAACC,kBAAU,CAACC,WAAW,CAACP,MAAM,CAACG,CAAC,CAAC,CAACK,QAAQ,EAAE9B,iBAAiB,CAACQ,OAAO,GAAGW,MAAM,CAAC,CAAC;IAC5F;IACAf,SAAS,CAACI,OAAO,GAAGW,MAAM;IAC1BY,UAAU,CAAC1B,YAAY,CAACG,OAAO,CAAC;EACpC,CAAC;;EAED;EACA,IAAMwB,KAAK,GAAG,SAARA,KAAKA,CAAIC,KAAK,EAAK;IACrB,IAAQC,OAAO,GAA6CD,KAAK,CAAzDC,OAAO;MAAEC,QAAQ,GAAmCF,KAAK,CAAhDE,QAAQ;MAAEhB,MAAM,GAA2Bc,KAAK,CAAtCd,MAAM;MAAEiB,SAAS,GAAgBH,KAAK,CAA9BG,SAAS;MAAEC,SAAS,GAAKJ,KAAK,CAAnBI,SAAS;IACvDpC,UAAU,CAACO,OAAO,GAAG0B,OAAO;IAC5B/B,WAAW,CAACK,OAAO,GAAG2B,QAAQ;IAC9B/B,SAAS,CAACI,OAAO,GAAGW,MAAM;IAC1BjB,YAAY,CAACM,OAAO,GAAG6B,SAAS;IAChChC,YAAY,CAACG,OAAO,GAAG4B,SAAS;IAChCL,UAAU,CAAC1B,YAAY,CAACG,OAAO,CAAC;EACpC,CAAC;EAED,IAAM8B,UAAU,GAAG,SAAbA,UAAUA,CAAIC,IAAI,EAAK;IACzB,IAAI7C,MAAM,CAAC8C,eAAe,CAACC,OAAO,EAAE;MAChCC,mBAAmB,CAACH,IAAI,CAACI,UAAU,CAAC;MAEpC,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,GAAG,EAAK;QACxB,IAAMC,aAAa,GAAG,EAAE;QACxB,KAAK,IAAIrB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoB,GAAG,CAACnB,MAAM,EAAED,CAAC,EAAE,EAAE;UACjC,IAAMsB,CAAC,GAAGnB,kBAAU,CAACC,WAAW,CAACgB,GAAG,CAACpB,CAAC,CAAC,CAACuB,SAAS,EAAEH,GAAG,CAACpB,CAAC,CAAC,CAACK,QAAQ,EAAEe,GAAG,CAACpB,CAAC,CAAC,CAACN,MAAM,CAAC;UAClF2B,aAAa,CAACnB,IAAI,CAACoB,CAAC,CAAC;QACzB;QACAE,cAAc,CAACV,IAAI,CAACI,UAAU,EAAEG,aAAa,CAAC;MAClD,CAAC;MACD;MACA,IAAII,YAAI,EAAE;QACN,IAAAA,YAAI,EAAC,IAAAC,iCAAyB,EAACzD,MAAM,CAAC8C,eAAe,EAAED,IAAI,CAAChB,QAAQ,CAAC,EAAEqB,UAAU,CAAC;MACtF,CAAC,MAAM;QACH,IAAAO,iCAAyB,EAACzD,MAAM,CAAC8C,eAAe,EAAED,IAAI,CAAChB,QAAQ,CAAC,CAAC6B,IAAI,CAACR,UAAU,CAAC;MACrF;IACJ,CAAC,MAAM;MACHF,mBAAmB,CAACH,IAAI,CAACI,UAAU,CAAC;MACpCM,cAAc,CAACV,IAAI,CAACI,UAAU,EAAEJ,IAAI,CAACO,aAAa,CAAC;IACvD;EACJ,CAAC;EAED,IAAMJ,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,UAAU,EAAK;IACxC,IAAIA,UAAU,CAACjB,MAAM,EAAE;MACnB,IAAM2B,SAAS,GAAGC,YAAY,CAACX,UAAU,CAAC;MAC1C,IAAMY,MAAM,GAAG,EAAE;MACjB,KAAK,IAAI9B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkB,UAAU,CAACjB,MAAM,EAAED,CAAC,EAAE,EAAE;QACxC,IAAM+B,CAAC,GAAGC,iBAAiB,CAACd,UAAU,CAAClB,CAAC,CAAC,CAAC;QAC1C8B,MAAM,CAAC5B,IAAI,CAAC6B,CAAC,CAACR,SAAS,CAAC;QACxBO,MAAM,CAAC5B,IAAI,CAAC6B,CAAC,CAAC1B,QAAQ,CAAC;QACvByB,MAAM,CAAC5B,IAAI,CAAC0B,SAAS,CAAC;MAC1B;MACA,IAAI,CAACE,MAAM,EAAE;MACb,IAAMG,OAAO,GAAG,IAAIC,uBAAe,CAAC;QAChCC,gBAAgB,EAAE,IAAIC,wBAAgB,CAClCjC,kBAAU,CAACkC,uBAAuB,CAACP,MAAM,CACrD,CAAC;QACGQ,iBAAiB,EAAE;MACvB,CAAC,CAAC;MACE,IAAMC,QAAQ,GAAGL,uBAAe,CAACM,cAAc,CAACP,OAAO,CAAC;MACxD,IAAM3C,QAAQ,GAAG,IAAIC,gBAAQ,CAAC;QAC1BkD,MAAM,EAAE;UACJC,IAAI,EAAE,OAAO;UACbC,QAAQ,EAAE;YACNC,KAAK,EAAEnE,YAAY,CAACM;UACxB;QACJ;MACJ,CAAC,CAAC;MACF,IAAM8D,UAAU,GAAG,IAAIC,0BAAkB,CAAC;QACtCC,WAAW,EAAE,KAAK;QAClBC,IAAI,EAAE,IAAI;QACV1D,QAAQ,EAARA;MACJ,CAAC,CAAC;MAEF,IAAI,CAACiD,QAAQ,EAAE;MACflE,aAAa,CAACU,OAAO,GAAG,IAAIkE,iBAAS,CAAC;QAClCC,iBAAiB,EAAE,IAAIC,wBAAgB,CAAC;UACpCZ,QAAQ,EAARA;QACJ,CAAC,CAAC;QACFM,UAAU,EAAVA,UAAU;QACVO,YAAY,EAAE;MAClB,CAAC,CAAC;MACFnF,MAAM,CAACe,KAAK,CAACW,UAAU,CAAC0D,GAAG,CAAChF,aAAa,CAACU,OAAO,CAAC;IACtD;EACJ,CAAC;EAED,IAAMyC,cAAc,GAAG,SAAjBA,cAAcA,CAAIN,UAAU,EAAEoC,cAAc,EAAK;IACnD,IAAM1B,SAAS,GAAGC,YAAY,CAACX,UAAU,CAAC;IAC1C,IAAMqC,UAAU,GAAG,EAAE;IACrB,IAAMC,UAAU,GAAG,EAAE;IACrB,KAAK,IAAIxD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsD,cAAc,CAACrD,MAAM,EAAED,CAAC,EAAE,EAAE;MAC5CuD,UAAU,CAACrD,IAAI,CAAC8B,iBAAiB,CAACsB,cAAc,CAACtD,CAAC,CAAC,CAAC,CAACyD,QAAQ,CAAC;MAC9DD,UAAU,CAACtD,IAAI,CAAC0B,SAAS,CAAC;IAC9B;IACA,IAAM8B,IAAI,GAAG,IAAIC,oBAAY,CAAC;MAC1BhD,SAAS,EAAE2C,cAAc;MACzBM,cAAc,EAAEL,UAAU;MAC1BM,cAAc,EAAEL;IACpB,CAAC,CAAC;IACF,IAAMjB,QAAQ,GAAGoB,oBAAY,CAACnB,cAAc,CAACkB,IAAI,CAAC;IAElD,IAAMpE,QAAQ,GAAG,IAAIC,gBAAQ,CAAC;MAC1BkD,MAAM,EAAE;QACJC,IAAI,EAAE,OAAO;QACbC,QAAQ,EAAE;UACNC,KAAK,EAAEpE,UAAU,CAACO;QACtB;MACJ;IACJ,CAAC,CAAC;IACF,IAAM8D,UAAU,GAAG,IAAIC,0BAAkB,CAAC;MACtCC,WAAW,EAAE,KAAK;MAClBC,IAAI,EAAE,IAAI;MACV1D,QAAQ,EAARA;IACJ,CAAC,CAAC;IACF,IAAIiD,QAAQ,EAAE;MACV,IAAMuB,SAAS,GAAG,IAAIb,iBAAS,CAAC;QAC5BC,iBAAiB,EAAE,IAAIC,wBAAgB,CAAC;UACpCZ,QAAQ,EAARA,QAAQ;UACRwB,UAAU,EAAE;YACRC,KAAK,EAAEC,sCAA8B,CAACC,SAAS,CAACC,aAAK,CAACC,IAAI;UAC9D,CAAC;UACDC,EAAE,EAAE;QACR,CAAC,CAAC;QACFxB,UAAU,EAAVA,UAAU;QACVO,YAAY,EAAE;MAClB,CAAC,CAAC;MACFhF,QAAQ,CAACW,OAAO,GAAG+E,SAAS;MAC5B7F,MAAM,CAACe,KAAK,CAACW,UAAU,CAAC0D,GAAG,CAACS,SAAS,CAAC;IAC1C;EACJ,CAAC;EAED,IAAMjC,YAAY,GAAG,SAAfA,YAAYA,CAAIyC,UAAU,EAAK;IAAA,IAAAC,SAAA;IACjC,IAAI3C,SAAS,GAAG,OAAO;IACvB,IAAI4C,QAAQ,GAAG,IAAI;IACnB,KAAK,IAAIxE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsE,UAAU,CAACrE,MAAM,EAAED,CAAC,EAAE,EAAE;MACxC,IAAMN,MAAM,GAAG4E,UAAU,CAACtE,CAAC,CAAC,CAAC,GAAG,CAAC;MACjC,IAAIN,MAAM,GAAGkC,SAAS,EAAE;QACpBA,SAAS,GAAGlC,MAAM;QAClB8E,QAAQ,GAAGxC,iBAAiB,CAACsC,UAAU,CAACtE,CAAC,CAAC,CAAC;MAC/C;IACJ;IACA,QAAAuE,SAAA,GAAOC,QAAQ,cAAAD,SAAA,uBAARA,SAAA,CAAUd,QAAQ;EAC7B,CAAC;EAED,IAAMzB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIyC,SAAS,EAAK;IACrC,IAAMC,SAAS,GAAGzG,MAAM,CAACe,KAAK,CAACC,KAAK,CAACyF,SAAS;IAC9C,IAAMC,UAAU,GAAG,IAAIxE,kBAAU,CAACsE,SAAS,CAACG,CAAC,EAAEH,SAAS,CAACI,CAAC,EAAEJ,SAAS,CAACK,CAAC,CAAC;IACxE,IAAMC,YAAY,GAAGL,SAAS,CAACM,uBAAuB,CAACL,UAAU,CAAC;IAClE,IAAMtE,QAAQ,GAAG4E,YAAU,CAACC,SAAS,CAACH,YAAY,CAAC1E,QAAQ,CAAC;IAC5D,IAAMkB,SAAS,GAAG0D,YAAU,CAACC,SAAS,CAACH,YAAY,CAACxD,SAAS,CAAC;IAC9D,IAAMkC,QAAQ,GAAGsB,YAAY,CAACrF,MAAM;IACpC,OAAO;MACH6B,SAAS,EAATA,SAAS;MACTlB,QAAQ,EAARA,QAAQ;MACRoD,QAAQ,EAARA;IACJ,CAAC;EACL,CAAC;;EAED;EACA,IAAMnD,UAAU,GAAG,SAAbA,UAAUA,CAAIwB,MAAM,EAAK;IAC3BqD,KAAK,CAAC,CAAC;IACP,IAAMC,MAAM,GAAG,EAAE;IACjB,IAAMC,YAAY,GAAGvD,MAAM,CAAC7B,MAAM;IAClC;IACA;IACA1B,iBAAiB,CAACQ,OAAO,GAAG,IAAI;IAEhC,KAAK,IAAIiB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGqF,YAAY,EAAE,EAAErF,CAAC,EAAE;MACnC,IAAMsF,SAAS,GAAG,CAACtF,CAAC,GAAG,CAAC,IAAIqF,YAAY;MACxC;MACA,IAAME,QAAQ,GAAGpF,kBAAU,CAACoF,QAAQ,CAACzD,MAAM,CAAC9B,CAAC,CAAC,EAAE8B,MAAM,CAACwD,SAAS,CAAC,EAAE,IAAInF,kBAAU,CAAC,CAAC,CAAC;MAEpF,IAAMqF,WAAW,GAAGC,oBAAY,CAACC,aAAa,CAAC5D,MAAM,CAAC9B,CAAC,CAAC,CAAC;MACzD,IAAMN,MAAM,GAAGzB,MAAM,CAACe,KAAK,CAACC,KAAK,CAAC0G,SAAS,CAACH,WAAW,CAAC,IAAIA,WAAW,CAAC9F,MAAM;MAC9EA,MAAM,GAAGnB,iBAAiB,CAACQ,OAAO,KAAKR,iBAAiB,CAACQ,OAAO,GAAGW,MAAM,CAAC;MAE1E,IAAMkG,EAAE,GAAGzF,kBAAU,CAAC0F,SAAS,CAACN,QAAQ,EAAE,IAAIpF,kBAAU,CAAC,CAAC,CAAC;MAC3D,IAAI2F,KAAK,GAAG3F,kBAAU,CAAC4F,QAAQ,CAACjE,MAAM,CAACwD,SAAS,CAAC,EAAEC,QAAQ,EAAE,IAAIpF,kBAAU,CAAC,CAAC,CAAC;MAC9E2F,KAAK,GAAG3F,kBAAU,CAAC0F,SAAS,CAACC,KAAK,EAAEA,KAAK,CAAC;MAC1C,IAAIE,KAAK,GAAG7F,kBAAU,CAAC6F,KAAK,CAACF,KAAK,EAAEF,EAAE,EAAE,IAAIzF,kBAAU,CAAC,CAAC,CAAC;MACzD6F,KAAK,GAAG7F,kBAAU,CAAC0F,SAAS,CAACG,KAAK,EAAEA,KAAK,CAAC;MAC1C,IAAMC,KAAK,GAAG,IAAIC,aAAK,CAACF,KAAK,EAAE,GAAG,CAAC;MACnC,IAAMG,QAAQ,GAAGD,aAAK,CAACE,gBAAgB,CAACH,KAAK,EAAEV,QAAQ,CAAC;MACxDH,MAAM,CAAClF,IAAI,CAAC,IAAImG,qBAAa,CAACL,KAAK,EAAEG,QAAQ,CAAC,CAAC;IACnD;IACAlI,MAAM,CAACe,KAAK,CAACC,KAAK,CAACC,cAAc,GAAG,IAAIoH,+BAAuB,CAAC;MAC5DlB,MAAM,EAANA,MAAM;MACNmB,SAAS,EAAE,CAAC;MACZC,SAAS,EAAErC,aAAK,CAACsC,KAAK;MACtBtH,OAAO,EAAE,IAAI;MACbuH,oBAAoB,EAAE;IAC1B,CAAC,CAAC;IAEFC,WAAW,CAAC7E,MAAM,CAAC;IACnB,IAAIxD,QAAQ,CAACS,OAAO,EAAE;MAClB8B,UAAU,CAACvC,QAAQ,CAACS,OAAO,CAAC;IAChC;EACJ,CAAC;;EAED;EACA,IAAMoG,KAAK,GAAG,SAARA,KAAKA,CAAA,EAAS;IAAA,IAAAyB,qBAAA;IAChB,IAAI3I,MAAM,CAACe,KAAK,CAACC,KAAK,CAACC,cAAc,EAAG;MACpCjB,MAAM,CAACe,KAAK,CAACC,KAAK,CAACC,cAAc,CAACC,OAAO,GAAG,CAAC,CAAC;MAC9ClB,MAAM,CAACe,KAAK,CAACC,KAAK,CAACC,cAAc,CAAC2H,SAAS,CAAC,CAAC;IACjD;IACA,IAAI5I,MAAM,CAACe,KAAK,CAACC,KAAK,CAACC,cAAc,IAAI,GAAA0H,qBAAA,GAAC3I,MAAM,CAACe,KAAK,CAACC,KAAK,CAACC,cAAc,cAAA0H,qBAAA,eAAjCA,qBAAA,CAAmCE,WAAW,GAAE;MACtF7I,MAAM,CAACe,KAAK,CAACC,KAAK,CAACC,cAAc,CAAC6H,OAAO,CAAC,CAAC;IAC/C;IACA9I,MAAM,CAACe,KAAK,CAACC,KAAK,CAACC,cAAc,GAAG8H,SAAS;IAC7C,IAAI3I,aAAa,CAACU,OAAO,EAAEd,MAAM,CAACe,KAAK,CAACW,UAAU,CAACC,MAAM,CAACvB,aAAa,CAACU,OAAO,CAAC;IAChF,IAAIX,QAAQ,CAACW,OAAO,EAAEd,MAAM,CAACe,KAAK,CAACW,UAAU,CAACC,MAAM,CAACxB,QAAQ,CAACW,OAAO,CAAC;IACtEV,aAAa,CAACU,OAAO,GAAGiI,SAAS;IACjC5I,QAAQ,CAACW,OAAO,GAAGiI,SAAS;IAC5B/I,MAAM,CAACe,KAAK,CAACiI,MAAM,CAAC,CAAC;EACzB,CAAC;EAED,IAAMN,WAAW,GAAG,SAAdA,WAAWA,CAAI7E,MAAM,EAAK;IAC5B,IAAMoF,GAAG,GAAGpF,MAAM,CAAC7B,MAAM;IACzB,IAAIiH,GAAG,KAAK,CAAC,EAAE;MACX,IAAM7F,aAAa,GAAG,EAAE;MACxB,IAAM8F,UAAU,GAAG,EAAE;MACrB,IAAMjG,UAAU,GAAG,EAAE;MACrB,IAAMpB,QAAQ,GAAG,EAAE;MACnB,IAAMsH,IAAI,GAAG7I,iBAAiB,CAACQ,OAAO,GAAGJ,SAAS,CAACI,OAAO;MAC1D,KAAK,IAAIiB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkH,GAAG,EAAElH,CAAC,EAAE,EAAE;QAC1B,IAAMsF,SAAS,GAAGtF,CAAC,KAAKkH,GAAG,GAAG,CAAC,GAAG,CAAC,GAAGlH,CAAC,GAAG,CAAC;QAC3C,IAAMqH,gBAAgB,GAAG5B,oBAAY,CAACC,aAAa,CAAC5D,MAAM,CAAC9B,CAAC,CAAC,CAAC;QAC9D,IAAMsH,cAAc,GAAG7B,oBAAY,CAACC,aAAa,CAAC5D,MAAM,CAACwD,SAAS,CAAC,CAAC;QACpE,IAAMiC,UAAU,GAAG,CAACF,gBAAgB,CAAC9F,SAAS,EAAE8F,gBAAgB,CAAChH,QAAQ,CAAC;QAC1E,IAAMmH,UAAU,GAAG,CAACF,cAAc,CAAC/F,SAAS,EAAE+F,cAAc,CAACjH,QAAQ,CAAC;QAEtE,IAAIL,CAAC,KAAK,CAAC,EAAE;UACTF,QAAQ,CAACI,IAAI,CAAC,IAAIuF,oBAAY,CAAC8B,UAAU,CAAC,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;UAC7DrG,UAAU,CAAChB,IAAI,CAACC,kBAAU,CAACC,WAAW,CAACmH,UAAU,CAAC,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,CAAC,EAAEH,IAAI,CAAC,CAAC;UAC3E/F,aAAa,CAACnB,IAAI,CAACC,kBAAU,CAACC,WAAW,CAACmH,UAAU,CAAC,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;UAC3EJ,UAAU,CAACjH,IAAI,CAACC,kBAAU,CAACC,WAAW,CAACmH,UAAU,CAAC,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,CAAC,EAAED,cAAc,CAAC5H,MAAM,CAAC,CAAC;QAChG;QAEA,IAAI,CAAChB,WAAW,CAACK,OAAO,EAAE;QAE1B,KAAK,IAAIgD,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIrD,WAAW,CAACK,OAAO,EAAEgD,CAAC,EAAE,EAAE;UAC3C,IAAM0F,SAAS,GAAGxC,YAAU,CAACyC,IAAI,CAACH,UAAU,CAAC,CAAC,CAAC,EAAEC,UAAU,CAAC,CAAC,CAAC,EAAEzF,CAAC,GAAGrD,WAAW,CAACK,OAAO,CAAC;UACxF,IAAM4I,QAAQ,GAAG1C,YAAU,CAACyC,IAAI,CAACH,UAAU,CAAC,CAAC,CAAC,EAAEC,UAAU,CAAC,CAAC,CAAC,EAAEzF,CAAC,GAAGrD,WAAW,CAACK,OAAO,CAAC;UACvF,IAAIiB,CAAC,KAAKkH,GAAG,GAAG,CAAC,IAAInF,CAAC,KAAKrD,WAAW,CAACK,OAAO,EAAE;YAC5Ce,QAAQ,CAACI,IAAI,CAAC,IAAIuF,oBAAY,CAACgC,SAAS,EAAEE,QAAQ,CAAC,CAAC;YACpDzG,UAAU,CAAChB,IAAI,CAACC,kBAAU,CAACC,WAAW,CAACqH,SAAS,EAAEE,QAAQ,EAAEP,IAAI,CAAC,CAAC;YAClE/F,aAAa,CAACnB,IAAI,CAACC,kBAAU,CAACC,WAAW,CAACqH,SAAS,EAAEE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAClER,UAAU,CAACjH,IAAI,CAACC,kBAAU,CAACC,WAAW,CAACqH,SAAS,EAAEE,QAAQ,EAAEL,cAAc,CAAC5H,MAAM,CAAC,CAAC;UACvF;QACJ;MACJ;MACApB,QAAQ,CAACS,OAAO,GAAG;QACfe,QAAQ,EAARA,QAAQ;QACRoB,UAAU,EAAVA,UAAU;QACVG,aAAa,EAAbA,aAAa;QACb8F,UAAU,EAAVA;MACJ,CAAC;IACL;EACJ,CAAC;EAED,OAAO;IAAE5G,KAAK,EAALA,KAAK;IAAE4E,KAAK,EAALA,KAAK;IAAE7E,UAAU,EAAVA,UAAU;IAAEb,mBAAmB,EAAnBA,mBAAmB;IAAEZ,IAAI,EAAJA;EAAK,CAAC;AAClE,CAAC;AAAA,IAAA+I,QAAA,GAAAC,OAAA,cAEc9J,kBAAkB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTileSetCut.js","names":["_react","require","_Cut","_interopRequireDefault","e","__esModule","useTileSetCut","props","viewer","sceneId","cutToolRef","useRef","loadTileSetCut","current","layer","getLayerByKey","Cut","flatHeight","_default","exports"],"sources":["excavation-analysis/hooks/useTileSetCut.js"],"sourcesContent":["import {useRef} from 'react';\nimport Cut from \"../Cut\";\n\nconst useTileSetCut = (props) => {\n const {viewer, sceneId} = props;\n\n const cutToolRef = useRef();\n\n const loadTileSetCut = () => {\n if (cutToolRef.current) {\n return cutToolRef.current;\n }\n\n if (sceneId) {\n let layer = viewer.getLayerByKey(sceneId);\n if (layer) {\n cutToolRef.current = new Cut(layer, {\n flatHeight: -30\n });\n return cutToolRef.current;\n }\n }\n }\n\n\n return {loadTileSetCut}\n}\n\nexport default useTileSetCut;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAyB,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAEzB,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAK,EAAK;EAC7B,IAAOC,MAAM,GAAaD,KAAK,CAAxBC,MAAM;IAAEC,OAAO,GAAIF,KAAK,CAAhBE,OAAO;EAEtB,IAAMC,UAAU,GAAG,IAAAC,aAAM,EAAC,CAAC;EAE3B,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;IACzB,IAAIF,UAAU,CAACG,OAAO,EAAE;MACpB,OAAOH,UAAU,CAACG,OAAO;IAC7B;IAEA,IAAIJ,OAAO,EAAE;MACT,IAAIK,KAAK,GAAGN,MAAM,CAACO,aAAa,CAACN,OAAO,CAAC;MACzC,IAAIK,KAAK,EAAE;QACPJ,UAAU,CAACG,OAAO,GAAG,IAAIG,eAAG,CAACF,KAAK,EAAE;UAChCG,UAAU,EAAE,CAAC;QACjB,CAAC,CAAC;QACF,OAAOP,UAAU,CAACG,OAAO;MAC7B;IACJ;EACJ,CAAC;EAGD,OAAO;IAACD,cAAc,EAAdA;EAAc,CAAC;AAC3B,CAAC;AAAA,IAAAM,QAAA,GAAAC,OAAA,cAEcb,aAAa","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useTileSetCut.js","names":["_react","require","_Cut","_interopRequireDefault","e","__esModule","useTileSetCut","props","viewer","sceneId","cutToolRef","useRef","loadTileSetCut","current","layer","getLayerByKey","Cut","flatHeight","_default","exports"],"sources":["excavation-analysis/hooks/useTileSetCut.js"],"sourcesContent":["import {useRef} from 'react';\r\nimport Cut from \"../Cut\";\r\n\r\nconst useTileSetCut = (props) => {\r\n const {viewer, sceneId} = props;\r\n\r\n const cutToolRef = useRef();\r\n\r\n const loadTileSetCut = () => {\r\n if (cutToolRef.current) {\r\n return cutToolRef.current;\r\n }\r\n\r\n if (sceneId) {\r\n let layer = viewer.getLayerByKey(sceneId);\r\n if (layer) {\r\n cutToolRef.current = new Cut(layer, {\r\n flatHeight: -30\r\n });\r\n return cutToolRef.current;\r\n }\r\n }\r\n }\r\n\r\n\r\n return {loadTileSetCut}\r\n}\r\n\r\nexport default useTileSetCut;\r\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAyB,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAEzB,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAK,EAAK;EAC7B,IAAOC,MAAM,GAAaD,KAAK,CAAxBC,MAAM;IAAEC,OAAO,GAAIF,KAAK,CAAhBE,OAAO;EAEtB,IAAMC,UAAU,GAAG,IAAAC,aAAM,EAAC,CAAC;EAE3B,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;IACzB,IAAIF,UAAU,CAACG,OAAO,EAAE;MACpB,OAAOH,UAAU,CAACG,OAAO;IAC7B;IAEA,IAAIJ,OAAO,EAAE;MACT,IAAIK,KAAK,GAAGN,MAAM,CAACO,aAAa,CAACN,OAAO,CAAC;MACzC,IAAIK,KAAK,EAAE;QACPJ,UAAU,CAACG,OAAO,GAAG,IAAIG,eAAG,CAACF,KAAK,EAAE;UAChCG,UAAU,EAAE,CAAC;QACjB,CAAC,CAAC;QACF,OAAOP,UAAU,CAACG,OAAO;MAC7B;IACJ;EACJ,CAAC;EAGD,OAAO;IAACD,cAAc,EAAdA;EAAc,CAAC;AAC3B,CAAC;AAAA,IAAAM,QAAA,GAAAC,OAAA,cAEcb,aAAa","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_useDrawHandler","_interopRequireDefault","_useTerrainClipPlan","_excavate_bottom_min","_excavate_kuangqu","_useProps2","_useTileSetCut","_cesium","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ExcavationAnalysis","forwardRef","props","ref","_useProps","useProps","map","excavateDepth","useRef","terrainClipPlan","useTerrainClipPlan","viewer","drawHandler","useDrawHandler","type","tileSetCut","useTileSetCut","sceneId","on","res","clear","positions","item","x","y","z","pop","start","height","current","splitNum","wallImg","excavate_kuangqu","bottomImg","excavate_bottom_min","cartesiansToLnglats","cartesians","length","arr","push","cartesianToLnglat","cartesian","lnglat","Cartographic","fromCartesian","lat","CesiumMath","toDegrees","latitude","lng","longitude","hei","useImperativeHandle","onDraw","onClear","onChange","activate","value","updateExcavateDepth","createElement","Fragment","_default","exports"],"sources":["excavation-analysis/index.js"],"sourcesContent":["import React, { useRef, useImperativeHandle, forwardRef } from 'react'\nimport useDrawHandler from './hooks/useDrawHandler'\nimport useTerrainClipPlan from './hooks/useTerrainClipPlan'\nimport excavate_bottom_min from '../assets/excavate_bottom_min.png';\nimport excavate_kuangqu from '../assets/excavate_kuangqu.png';\nimport useProps from '../use-props';\nimport useTileSetCut from \"./hooks/useTileSetCut\";\nimport {Cartographic, Math as CesiumMath} from \"cesium\";\n\nconst ExcavationAnalysis = forwardRef((props, ref) => {\n const {map} = useProps();\n\n const excavateDepth = useRef(30);\n const terrainClipPlan = useTerrainClipPlan({\n viewer: map\n })\n const drawHandler = useDrawHandler({\n viewer: map,\n type: 'polygon'\n })\n\n const tileSetCut = useTileSetCut({\n viewer: map,\n sceneId: props.sceneId,\n })\n\n drawHandler.on('drawEnd', (res) => {\n // 再次绘制清除之前开挖分析\n terrainClipPlan.clear()\n\n const positions = res.map((item) => {\n return {\n x: item.x,\n y: item.y,\n z: item.z\n }\n })\n positions.pop()\n // 开挖分析\n terrainClipPlan.start({\n height: excavateDepth.current,\n splitNum: 100,\n wallImg: excavate_kuangqu,\n bottomImg: excavate_bottom_min,\n positions\n })\n // 移除绘制区域\n drawHandler.clear();\n\n // let cutTool = tileSetCut.loadTileSetCut();\n // if (cutTool) {\n // cutTool.addRegion({\n // positions : cartesiansToLnglats(res),\n // id : new Date().getTime()\n // })\n // }\n })\n\n const cartesiansToLnglats = (cartesians) => {\n if (!cartesians || cartesians.length < 1) return;\n let arr = [];\n for (let i = 0; i < cartesians.length; i++) {\n arr.push(cartesianToLnglat(cartesians[i]));\n }\n return arr;\n }\n\n const cartesianToLnglat = (cartesian) => {\n if (!cartesian) return [];\n const lnglat = Cartographic.fromCartesian(cartesian);\n const lat = CesiumMath.toDegrees(lnglat.latitude);\n const lng = CesiumMath.toDegrees(lnglat.longitude);\n const hei = lnglat.height;\n return [lng, lat, hei];\n }\n\n useImperativeHandle(ref, () => ({\n drawHandler,\n terrainClipPlan,\n onDraw,\n onClear,\n onChange,\n }))\n\n const onDraw = () => {\n drawHandler.activate()\n }\n\n const onClear = () => {\n terrainClipPlan.clear()\n }\n\n const onChange = (value) => {\n excavateDepth.current = value\n terrainClipPlan.updateExcavateDepth(value)\n }\n\n return <></>\n}\n)\nexport default ExcavationAnalysis;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,oBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,iBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,UAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,cAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AAAwD,SAAAE,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAb,uBAAA,YAAAA,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAE,CAAA;AAExD,IAAMkB,kBAAkB,gBAAG,IAAAC,iBAAU,EAAC,UAACC,KAAK,EAAEC,GAAG,EAAK;EAClD,IAAAC,SAAA,GAAc,IAAAC,qBAAQ,EAAC,CAAC;IAAjBC,GAAG,GAAAF,SAAA,CAAHE,GAAG;EAEV,IAAMC,aAAa,GAAG,IAAAC,aAAM,EAAC,EAAE,CAAC;EAChC,IAAMC,eAAe,GAAG,IAAAC,8BAAkB,EAAC;IACvCC,MAAM,EAAEL;EACZ,CAAC,CAAC;EACF,IAAMM,WAAW,GAAG,IAAAC,0BAAc,EAAC;IAC/BF,MAAM,EAAEL,GAAG;IACXQ,IAAI,EAAE;EACV,CAAC,CAAC;EAEF,IAAMC,UAAU,GAAG,IAAAC,yBAAa,EAAC;IAC7BL,MAAM,EAAEL,GAAG;IACXW,OAAO,EAAEf,KAAK,CAACe;EACnB,CAAC,CAAC;EAEFL,WAAW,CAACM,EAAE,CAAC,SAAS,EAAE,UAACC,GAAG,EAAK;IAC/B;IACAV,eAAe,CAACW,KAAK,CAAC,CAAC;IAEvB,IAAMC,SAAS,GAAGF,GAAG,CAACb,GAAG,CAAC,UAACgB,IAAI,EAAK;MAChC,OAAO;QACHC,CAAC,EAAED,IAAI,CAACC,CAAC;QACTC,CAAC,EAAEF,IAAI,CAACE,CAAC;QACTC,CAAC,EAAEH,IAAI,CAACG;MACZ,CAAC;IACL,CAAC,CAAC;IACFJ,SAAS,CAACK,GAAG,CAAC,CAAC;IACf;IACAjB,eAAe,CAACkB,KAAK,CAAC;MAClBC,MAAM,EAAErB,aAAa,CAACsB,OAAO;MAC7BC,QAAQ,EAAE,GAAG;MACbC,OAAO,EAAEC,4BAAgB;MACzBC,SAAS,EAAEC,+BAAmB;MAC9Bb,SAAS,EAATA;IACJ,CAAC,CAAC;IACF;IACAT,WAAW,CAACQ,KAAK,CAAC,CAAC;;IAEnB;IACA;IACA;IACA;IACA;IACA;IACA;EACJ,CAAC,CAAC;EAEF,IAAMe,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,UAAU,EAAK;IACxC,IAAI,CAACA,UAAU,IAAIA,UAAU,CAACC,MAAM,GAAG,CAAC,EAAE;IAC1C,IAAIC,GAAG,GAAG,EAAE;IACZ,KAAK,IAAInD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiD,UAAU,CAACC,MAAM,EAAElD,CAAC,EAAE,EAAE;MACxCmD,GAAG,CAACC,IAAI,CAACC,iBAAiB,CAACJ,UAAU,CAACjD,CAAC,CAAC,CAAC,CAAC;IAC9C;IACA,OAAOmD,GAAG;EACd,CAAC;EAED,IAAME,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,SAAS,EAAK;IACrC,IAAI,CAACA,SAAS,EAAE,OAAO,EAAE;IACzB,IAAMC,MAAM,GAAGC,oBAAY,CAACC,aAAa,CAACH,SAAS,CAAC;IACpD,IAAMI,GAAG,GAAGC,YAAU,CAACC,SAAS,CAACL,MAAM,CAACM,QAAQ,CAAC;IACjD,IAAMC,GAAG,GAAGH,YAAU,CAACC,SAAS,CAACL,MAAM,CAACQ,SAAS,CAAC;IAClD,IAAMC,GAAG,GAAGT,MAAM,CAACd,MAAM;IACzB,OAAO,CAACqB,GAAG,EAAEJ,GAAG,EAAEM,GAAG,CAAC;EAC1B,CAAC;EAED,IAAAC,0BAAmB,EAACjD,GAAG,EAAE;IAAA,OAAO;MAC5BS,WAAW,EAAXA,WAAW;MACXH,eAAe,EAAfA,eAAe;MACf4C,MAAM,EAANA,MAAM;MACNC,OAAO,EAAPA,OAAO;MACPC,QAAQ,EAARA;IACJ,CAAC;EAAA,CAAC,CAAC;EAEH,IAAMF,MAAM,GAAG,SAATA,MAAMA,CAAA,EAAS;IACjBzC,WAAW,CAAC4C,QAAQ,CAAC,CAAC;EAC1B,CAAC;EAED,IAAMF,OAAO,GAAG,SAAVA,OAAOA,CAAA,EAAS;IAClB7C,eAAe,CAACW,KAAK,CAAC,CAAC;EAC3B,CAAC;EAED,IAAMmC,QAAQ,GAAG,SAAXA,QAAQA,CAAIE,KAAK,EAAK;IACxBlD,aAAa,CAACsB,OAAO,GAAG4B,KAAK;IAC7BhD,eAAe,CAACiD,mBAAmB,CAACD,KAAK,CAAC;EAC9C,CAAC;EAED,oBAAOxF,MAAA,YAAA0F,aAAA,CAAA1F,MAAA,YAAA2F,QAAA,MAAI,CAAC;AAChB,CACA,CAAC;AAAA,IAAAC,QAAA,GAAAC,OAAA,cACc9D,kBAAkB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_useDrawHandler","_interopRequireDefault","_useTerrainClipPlan","_excavate_bottom_min","_excavate_kuangqu","_useProps2","_useTileSetCut","_cesium","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ExcavationAnalysis","forwardRef","props","ref","_useProps","useProps","map","excavateDepth","useRef","terrainClipPlan","useTerrainClipPlan","viewer","drawHandler","useDrawHandler","type","tileSetCut","useTileSetCut","sceneId","on","res","clear","positions","item","x","y","z","pop","start","height","current","splitNum","wallImg","excavate_kuangqu","bottomImg","excavate_bottom_min","cartesiansToLnglats","cartesians","length","arr","push","cartesianToLnglat","cartesian","lnglat","Cartographic","fromCartesian","lat","CesiumMath","toDegrees","latitude","lng","longitude","hei","useImperativeHandle","onDraw","onClear","onChange","activate","value","updateExcavateDepth","createElement","Fragment","_default","exports"],"sources":["excavation-analysis/index.js"],"sourcesContent":["import React, { useRef, useImperativeHandle, forwardRef } from 'react'\r\nimport useDrawHandler from './hooks/useDrawHandler'\r\nimport useTerrainClipPlan from './hooks/useTerrainClipPlan'\r\nimport excavate_bottom_min from '../assets/excavate_bottom_min.png';\r\nimport excavate_kuangqu from '../assets/excavate_kuangqu.png';\r\nimport useProps from '../use-props';\r\nimport useTileSetCut from \"./hooks/useTileSetCut\";\r\nimport {Cartographic, Math as CesiumMath} from \"cesium\";\r\n\r\nconst ExcavationAnalysis = forwardRef((props, ref) => {\r\n const {map} = useProps();\r\n\r\n const excavateDepth = useRef(30);\r\n const terrainClipPlan = useTerrainClipPlan({\r\n viewer: map\r\n })\r\n const drawHandler = useDrawHandler({\r\n viewer: map,\r\n type: 'polygon'\r\n })\r\n\r\n const tileSetCut = useTileSetCut({\r\n viewer: map,\r\n sceneId: props.sceneId,\r\n })\r\n\r\n drawHandler.on('drawEnd', (res) => {\r\n // 再次绘制清除之前开挖分析\r\n terrainClipPlan.clear()\r\n\r\n const positions = res.map((item) => {\r\n return {\r\n x: item.x,\r\n y: item.y,\r\n z: item.z\r\n }\r\n })\r\n positions.pop()\r\n // 开挖分析\r\n terrainClipPlan.start({\r\n height: excavateDepth.current,\r\n splitNum: 100,\r\n wallImg: excavate_kuangqu,\r\n bottomImg: excavate_bottom_min,\r\n positions\r\n })\r\n // 移除绘制区域\r\n drawHandler.clear();\r\n\r\n // let cutTool = tileSetCut.loadTileSetCut();\r\n // if (cutTool) {\r\n // cutTool.addRegion({\r\n // positions : cartesiansToLnglats(res),\r\n // id : new Date().getTime()\r\n // })\r\n // }\r\n })\r\n\r\n const cartesiansToLnglats = (cartesians) => {\r\n if (!cartesians || cartesians.length < 1) return;\r\n let arr = [];\r\n for (let i = 0; i < cartesians.length; i++) {\r\n arr.push(cartesianToLnglat(cartesians[i]));\r\n }\r\n return arr;\r\n }\r\n\r\n const cartesianToLnglat = (cartesian) => {\r\n if (!cartesian) return [];\r\n const lnglat = Cartographic.fromCartesian(cartesian);\r\n const lat = CesiumMath.toDegrees(lnglat.latitude);\r\n const lng = CesiumMath.toDegrees(lnglat.longitude);\r\n const hei = lnglat.height;\r\n return [lng, lat, hei];\r\n }\r\n\r\n useImperativeHandle(ref, () => ({\r\n drawHandler,\r\n terrainClipPlan,\r\n onDraw,\r\n onClear,\r\n onChange,\r\n }))\r\n\r\n const onDraw = () => {\r\n drawHandler.activate()\r\n }\r\n\r\n const onClear = () => {\r\n terrainClipPlan.clear()\r\n }\r\n\r\n const onChange = (value) => {\r\n excavateDepth.current = value\r\n terrainClipPlan.updateExcavateDepth(value)\r\n }\r\n\r\n return <></>\r\n}\r\n)\r\nexport default ExcavationAnalysis;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css.js","names":["require"],"sources":["excavation-analysis/style/index.js"],"sourcesContent":["import './index.less';\n"],"mappings":";;AAAAA,OAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"css.js","names":["require"],"sources":["excavation-analysis/style/index.js"],"sourcesContent":["import './index.less';\r\n"],"mappings":";;AAAAA,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["require"],"sources":["excavation-analysis/style/index.js"],"sourcesContent":["import './index.less';\n"],"mappings":";;AAAAA,OAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["require"],"sources":["excavation-analysis/style/index.js"],"sourcesContent":["import './index.less';\r\n"],"mappings":";;AAAAA,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css.js","names":["require"],"sources":["feature-layer/style/index.js"],"sourcesContent":["import './index.less';\n"],"mappings":";;AAAAA,OAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"css.js","names":["require"],"sources":["feature-layer/style/index.js"],"sourcesContent":["import './index.less';\r\n"],"mappings":";;AAAAA,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["require"],"sources":["feature-layer/style/index.js"],"sourcesContent":["import './index.less';\n"],"mappings":";;AAAAA,OAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["require"],"sources":["feature-layer/style/index.js"],"sourcesContent":["import './index.less';\r\n"],"mappings":";;AAAAA,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FenceLayer.js","names":["_cesium","require","_createFeatureCollection","_GradualLightRingMaterialProperty","_interopRequireDefault","_transformRgb","e","__esModule","_toConsumableArray","r","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","Symbol","iterator","isArray","length","n","_classCallCheck","_defineProperties","o","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","prototype","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","apply","_typeof","_assertThisInitialized","ReferenceError","Boolean","valueOf","_superPropGet","p","_get","get","bind","_superPropBase","getOwnPropertyDescriptor","arguments","value","_inherits","create","_setPrototypeOf","setPrototypeOf","__proto__","_superPropSet","f","_set","set","i","_defineProperty","_toPrimitive","toPrimitive","String","Number","hasOwnProperty","getPrototypeOf","FenceLayer","exports","_CustomDataSource","option","_this","data","labelField","template","height","color","speed","repeatNum","opacity","layerControl","_option$show","show","map","legend","loadData","setVisible","getMap","visible","layers","emit","_this2","entities","removeAll","v","index","positions","_v$geometryInfo","geometryInfo","_transformGeometry","transformGeometry","coordinates","_coordinates$","c","push","concat","entity_fly","add","wall","Cartesian3","fromDegreesArrayHeights","material","GradualLightRingMaterialProperty","Color","fromCssColorString","transformRgb","outline","zIndex","type","modalType","properties","getFeatureByFieldValue","field","getFeatures","find","_v$properties","_value","values","CustomDataSource"],"sources":["fence-layer/FenceLayer.js"],"sourcesContent":["import { CustomDataSource, Cartesian3, Color } from 'cesium';\nimport {transformGeometry} from '../feature-layer/createFeatureCollection';\nimport GradualLightRingMaterialProperty from './GradualLightRingMaterialProperty.js';\nimport transformRgb from '../_util/transformRgb';\n\nexport default class FenceLayer extends CustomDataSource {\n constructor(option) {\n const {\n data,\n key,\n labelField,\n template,\n height,\n color,\n speed,\n repeatNum,\n opacity,\n name,\n layerControl,\n show = true,\n map,\n legend\n } = option;\n\n super(option);\n super.show = show;\n // 图层标识\n this.key = key;\n\n // 图层名称\n this.name = name;\n\n // 标签字段\n this.labelField = labelField;\n\n // 模版内容\n this.template = template;\n\n this.data = data;\n\n // 颜色\n this.color = color || '#0080ff';\n\n // 高度\n this.height = height || 1000;\n\n // 速度\n this.speed = speed || 1;\n\n // 重复数量\n this.repeatNum = repeatNum || 3;\n\n // 透明度\n this.opacity = opacity || 1;\n\n this.legend = legend;\n\n // 地图\n this.map = map;\n\n this.layerControl = layerControl;\n if (data?.length) {\n this.loadData(data);\n }\n }\n // 重写父类的属性访问器\n get show() {\n return super.show;\n }\n\n set show(value) {\n this.setVisible(value);\n }\n\n // 获取地图\n getMap() {\n return this.map;\n }\n\n // 设置图层显示隐藏\n setVisible(visible) {\n super.show = visible; // 将属性传递给父类\n\n const map = this.getMap && this.getMap();\n if (map) {\n map.layers.emit('visible', this, visible);\n }\n }\n\n loadData(data) {\n this.entities.removeAll();\n\n let height = this.height;\n let color = this.color;\n let speed = this.speed;\n let repeatNum = this.repeatNum;\n let opacity = this.opacity;\n\n data.map((v, index) => {\n let positions = [];\n let { geometryInfo = {} } = v;\n let { coordinates } = transformGeometry(geometryInfo);\n if (coordinates && coordinates.length) {\n coordinates?.[0]?.map(c => {\n positions.push(...c, c.height || height);\n });\n }\n\n const entity_fly = this.entities.add({\n wall: {\n positions: Cartesian3.fromDegreesArrayHeights(positions),\n material: new GradualLightRingMaterialProperty({\n color: Color.fromCssColorString(transformRgb(v.color || color, v.opacity || opacity)),\n speed: v.speed || speed,\n repeatNum: v.repeatNum || repeatNum,\n }),\n outline: false,\n zIndex: v.zIndex || index,\n },\n });\n\n entity_fly.type = this.modalType || this.key;\n entity_fly.key = this.key;\n entity_fly.properties = v.properties || {};\n });\n }\n\n // 根据条件获取图形数据\n getFeatureByFieldValue(field, value) {\n return this.getFeatures().find(v => String(v?.properties?.[field]?._value) === String(value));\n }\n\n // 获取当前图层的所有图形\n getFeatures() {\n return this.entities.values;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FenceLayer.js","names":["_cesium","require","_createFeatureCollection","_GradualLightRingMaterialProperty","_interopRequireDefault","_transformRgb","e","__esModule","_toConsumableArray","r","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","Symbol","iterator","isArray","length","n","_classCallCheck","_defineProperties","o","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","prototype","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","apply","_typeof","_assertThisInitialized","ReferenceError","Boolean","valueOf","_superPropGet","p","_get","get","bind","_superPropBase","getOwnPropertyDescriptor","arguments","value","_inherits","create","_setPrototypeOf","setPrototypeOf","__proto__","_superPropSet","f","_set","set","i","_defineProperty","_toPrimitive","toPrimitive","String","Number","hasOwnProperty","getPrototypeOf","FenceLayer","exports","_CustomDataSource","option","_this","data","labelField","template","height","color","speed","repeatNum","opacity","layerControl","_option$show","show","map","legend","loadData","setVisible","getMap","visible","layers","emit","_this2","entities","removeAll","v","index","positions","_v$geometryInfo","geometryInfo","_transformGeometry","transformGeometry","coordinates","_coordinates$","c","push","concat","entity_fly","add","wall","Cartesian3","fromDegreesArrayHeights","material","GradualLightRingMaterialProperty","Color","fromCssColorString","transformRgb","outline","zIndex","type","modalType","properties","getFeatureByFieldValue","field","getFeatures","find","_v$properties","_value","values","CustomDataSource"],"sources":["fence-layer/FenceLayer.js"],"sourcesContent":["import { CustomDataSource, Cartesian3, Color } from 'cesium';\r\nimport {transformGeometry} from '../feature-layer/createFeatureCollection';\r\nimport GradualLightRingMaterialProperty from './GradualLightRingMaterialProperty.js';\r\nimport transformRgb from '../_util/transformRgb';\r\n\r\nexport default class FenceLayer extends CustomDataSource {\r\n constructor(option) {\r\n const {\r\n data,\r\n key,\r\n labelField,\r\n template,\r\n height,\r\n color,\r\n speed,\r\n repeatNum,\r\n opacity,\r\n name,\r\n layerControl,\r\n show = true,\r\n map,\r\n legend\r\n } = option;\r\n\r\n super(option);\r\n super.show = show;\r\n // 图层标识\r\n this.key = key;\r\n\r\n // 图层名称\r\n this.name = name;\r\n\r\n // 标签字段\r\n this.labelField = labelField;\r\n\r\n // 模版内容\r\n this.template = template;\r\n\r\n this.data = data;\r\n\r\n // 颜色\r\n this.color = color || '#0080ff';\r\n\r\n // 高度\r\n this.height = height || 1000;\r\n\r\n // 速度\r\n this.speed = speed || 1;\r\n\r\n // 重复数量\r\n this.repeatNum = repeatNum || 3;\r\n\r\n // 透明度\r\n this.opacity = opacity || 1;\r\n\r\n this.legend = legend;\r\n\r\n // 地图\r\n this.map = map;\r\n\r\n this.layerControl = layerControl;\r\n if (data?.length) {\r\n this.loadData(data);\r\n }\r\n }\r\n // 重写父类的属性访问器\r\n get show() {\r\n return super.show;\r\n }\r\n\r\n set show(value) {\r\n this.setVisible(value);\r\n }\r\n\r\n // 获取地图\r\n getMap() {\r\n return this.map;\r\n }\r\n\r\n // 设置图层显示隐藏\r\n setVisible(visible) {\r\n super.show = visible; // 将属性传递给父类\r\n\r\n const map = this.getMap && this.getMap();\r\n if (map) {\r\n map.layers.emit('visible', this, visible);\r\n }\r\n }\r\n\r\n loadData(data) {\r\n this.entities.removeAll();\r\n\r\n let height = this.height;\r\n let color = this.color;\r\n let speed = this.speed;\r\n let repeatNum = this.repeatNum;\r\n let opacity = this.opacity;\r\n\r\n data.map((v, index) => {\r\n let positions = [];\r\n let { geometryInfo = {} } = v;\r\n let { coordinates } = transformGeometry(geometryInfo);\r\n if (coordinates && coordinates.length) {\r\n coordinates?.[0]?.map(c => {\r\n positions.push(...c, c.height || height);\r\n });\r\n }\r\n\r\n const entity_fly = this.entities.add({\r\n wall: {\r\n positions: Cartesian3.fromDegreesArrayHeights(positions),\r\n material: new GradualLightRingMaterialProperty({\r\n color: Color.fromCssColorString(transformRgb(v.color || color, v.opacity || opacity)),\r\n speed: v.speed || speed,\r\n repeatNum: v.repeatNum || repeatNum,\r\n }),\r\n outline: false,\r\n zIndex: v.zIndex || index,\r\n },\r\n });\r\n\r\n entity_fly.type = this.modalType || this.key;\r\n entity_fly.key = this.key;\r\n entity_fly.properties = v.properties || {};\r\n });\r\n }\r\n\r\n // 根据条件获取图形数据\r\n getFeatureByFieldValue(field, value) {\r\n return this.getFeatures().find(v => String(v?.properties?.[field]?._value) === String(value));\r\n }\r\n\r\n // 获取当前图层的所有图形\r\n getFeatures() {\r\n return this.entities.values;\r\n }\r\n}\r\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AACA,IAAAE,iCAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,aAAA,GAAAD,sBAAA,CAAAH,OAAA;AAAiD,SAAAG,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAAA,SAAAE,mBAAAC,CAAA,WAAAC,kBAAA,CAAAD,CAAA,KAAAE,gBAAA,CAAAF,CAAA,KAAAG,2BAAA,CAAAH,CAAA,KAAAI,kBAAA;AAAA,SAAAA,mBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAH,CAAA,EAAAM,CAAA,QAAAN,CAAA,2BAAAA,CAAA,SAAAO,iBAAA,CAAAP,CAAA,EAAAM,CAAA,OAAAE,CAAA,MAAAC,QAAA,CAAAC,IAAA,CAAAV,CAAA,EAAAW,KAAA,6BAAAH,CAAA,IAAAR,CAAA,CAAAY,WAAA,KAAAJ,CAAA,GAAAR,CAAA,CAAAY,WAAA,CAAAC,IAAA,aAAAL,CAAA,cAAAA,CAAA,GAAAM,KAAA,CAAAC,IAAA,CAAAf,CAAA,oBAAAQ,CAAA,+CAAAQ,IAAA,CAAAR,CAAA,IAAAD,iBAAA,CAAAP,CAAA,EAAAM,CAAA;AAAA,SAAAJ,iBAAAF,CAAA,8BAAAiB,MAAA,YAAAjB,CAAA,CAAAiB,MAAA,CAAAC,QAAA,aAAAlB,CAAA,uBAAAc,KAAA,CAAAC,IAAA,CAAAf,CAAA;AAAA,SAAAC,mBAAAD,CAAA,QAAAc,KAAA,CAAAK,OAAA,CAAAnB,CAAA,UAAAO,iBAAA,CAAAP,CAAA;AAAA,SAAAO,kBAAAP,CAAA,EAAAM,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAN,CAAA,CAAAoB,MAAA,MAAAd,CAAA,GAAAN,CAAA,CAAAoB,MAAA,YAAAvB,CAAA,MAAAwB,CAAA,GAAAP,KAAA,CAAAR,CAAA,GAAAT,CAAA,GAAAS,CAAA,EAAAT,CAAA,IAAAwB,CAAA,CAAAxB,CAAA,IAAAG,CAAA,CAAAH,CAAA,UAAAwB,CAAA;AAAA,SAAAC,gBAAAhB,CAAA,EAAAe,CAAA,UAAAf,CAAA,YAAAe,CAAA,aAAAhB,SAAA;AAAA,SAAAkB,kBAAA1B,CAAA,EAAAG,CAAA,aAAAQ,CAAA,MAAAA,CAAA,GAAAR,CAAA,CAAAoB,MAAA,EAAAZ,CAAA,UAAAgB,CAAA,GAAAxB,CAAA,CAAAQ,CAAA,GAAAgB,CAAA,CAAAC,UAAA,GAAAD,CAAA,CAAAC,UAAA,QAAAD,CAAA,CAAAE,YAAA,kBAAAF,CAAA,KAAAA,CAAA,CAAAG,QAAA,QAAAC,MAAA,CAAAC,cAAA,CAAAhC,CAAA,EAAAiC,cAAA,CAAAN,CAAA,CAAAO,GAAA,GAAAP,CAAA;AAAA,SAAAQ,aAAAnC,CAAA,EAAAG,CAAA,EAAAQ,CAAA,WAAAR,CAAA,IAAAuB,iBAAA,CAAA1B,CAAA,CAAAoC,SAAA,EAAAjC,CAAA,GAAAQ,CAAA,IAAAe,iBAAA,CAAA1B,CAAA,EAAAW,CAAA,GAAAoB,MAAA,CAAAC,cAAA,CAAAhC,CAAA,iBAAA8B,QAAA,SAAA9B,CAAA;AAAA,SAAAqC,WAAA1B,CAAA,EAAAgB,CAAA,EAAA3B,CAAA,WAAA2B,CAAA,GAAAW,eAAA,CAAAX,CAAA,GAAAY,0BAAA,CAAA5B,CAAA,EAAA6B,yBAAA,KAAAC,OAAA,CAAAC,SAAA,CAAAf,CAAA,EAAA3B,CAAA,QAAAsC,eAAA,CAAA3B,CAAA,EAAAI,WAAA,IAAAY,CAAA,CAAAgB,KAAA,CAAAhC,CAAA,EAAAX,CAAA;AAAA,SAAAuC,2BAAA5B,CAAA,EAAAX,CAAA,QAAAA,CAAA,iBAAA4C,OAAA,CAAA5C,CAAA,0BAAAA,CAAA,UAAAA,CAAA,iBAAAA,CAAA,YAAAQ,SAAA,qEAAAqC,sBAAA,CAAAlC,CAAA;AAAA,SAAAkC,uBAAA7C,CAAA,mBAAAA,CAAA,YAAA8C,cAAA,sEAAA9C,CAAA;AAAA,SAAAwC,0BAAA,cAAA7B,CAAA,IAAAoC,OAAA,CAAAX,SAAA,CAAAY,OAAA,CAAAnC,IAAA,CAAA4B,OAAA,CAAAC,SAAA,CAAAK,OAAA,iCAAApC,CAAA,aAAA6B,yBAAA,YAAAA,0BAAA,aAAA7B,CAAA;AAAA,SAAAsC,cAAAtC,CAAA,EAAAgB,CAAA,EAAA3B,CAAA,EAAAG,CAAA,QAAA+C,CAAA,GAAAC,IAAA,CAAAb,eAAA,KAAAnC,CAAA,GAAAQ,CAAA,CAAAyB,SAAA,GAAAzB,CAAA,GAAAgB,CAAA,EAAA3B,CAAA,cAAAG,CAAA,yBAAA+C,CAAA,aAAAvC,CAAA,WAAAuC,CAAA,CAAAP,KAAA,CAAA3C,CAAA,EAAAW,CAAA,OAAAuC,CAAA;AAAA,SAAAC,KAAA,WAAAA,IAAA,yBAAAV,OAAA,IAAAA,OAAA,CAAAW,GAAA,GAAAX,OAAA,CAAAW,GAAA,CAAAC,IAAA,eAAArD,CAAA,EAAAW,CAAA,EAAAR,CAAA,QAAA+C,CAAA,GAAAI,cAAA,CAAAtD,CAAA,EAAAW,CAAA,OAAAuC,CAAA,QAAA1B,CAAA,GAAAO,MAAA,CAAAwB,wBAAA,CAAAL,CAAA,EAAAvC,CAAA,UAAAa,CAAA,CAAA4B,GAAA,GAAA5B,CAAA,CAAA4B,GAAA,CAAAvC,IAAA,CAAA2C,SAAA,CAAAjC,MAAA,OAAAvB,CAAA,GAAAG,CAAA,IAAAqB,CAAA,CAAAiC,KAAA,OAAAN,IAAA,CAAAR,KAAA,OAAAa,SAAA;AAAA,SAAAE,UAAA/C,CAAA,EAAAX,CAAA,6BAAAA,CAAA,aAAAA,CAAA,YAAAQ,SAAA,wDAAAG,CAAA,CAAAyB,SAAA,GAAAL,MAAA,CAAA4B,MAAA,CAAA3D,CAAA,IAAAA,CAAA,CAAAoC,SAAA,IAAArB,WAAA,IAAA0C,KAAA,EAAA9C,CAAA,EAAAmB,QAAA,MAAAD,YAAA,WAAAE,MAAA,CAAAC,cAAA,CAAArB,CAAA,iBAAAmB,QAAA,SAAA9B,CAAA,IAAA4D,eAAA,CAAAjD,CAAA,EAAAX,CAAA;AAAA,SAAA4D,gBAAAjD,CAAA,EAAAX,CAAA,WAAA4D,eAAA,GAAA7B,MAAA,CAAA8B,cAAA,GAAA9B,MAAA,CAAA8B,cAAA,CAAAR,IAAA,eAAA1C,CAAA,EAAAX,CAAA,WAAAW,CAAA,CAAAmD,SAAA,GAAA9D,CAAA,EAAAW,CAAA,KAAAiD,eAAA,CAAAjD,CAAA,EAAAX,CAAA;AAAA,SAAA+D,cAAApD,CAAA,EAAAX,CAAA,EAAA2B,CAAA,EAAAxB,CAAA,EAAA+C,CAAA,EAAAc,CAAA,WAAAC,IAAA,CAAA3B,eAAA,CAAA0B,CAAA,GAAArD,CAAA,CAAAyB,SAAA,GAAAzB,CAAA,GAAAX,CAAA,EAAA2B,CAAA,EAAAxB,CAAA,EAAA+C,CAAA;AAAA,SAAAgB,IAAAlE,CAAA,EAAAG,CAAA,EAAAQ,CAAA,EAAAgB,CAAA,WAAAuC,GAAA,yBAAAzB,OAAA,IAAAA,OAAA,CAAAyB,GAAA,GAAAzB,OAAA,CAAAyB,GAAA,aAAAlE,CAAA,EAAAG,CAAA,EAAAQ,CAAA,EAAAgB,CAAA,QAAAqC,CAAA,EAAAG,CAAA,GAAAb,cAAA,CAAAtD,CAAA,EAAAG,CAAA,OAAAgE,CAAA,SAAAH,CAAA,GAAAjC,MAAA,CAAAwB,wBAAA,CAAAY,CAAA,EAAAhE,CAAA,GAAA+D,GAAA,SAAAF,CAAA,CAAAE,GAAA,CAAArD,IAAA,CAAAc,CAAA,EAAAhB,CAAA,YAAAqD,CAAA,CAAAlC,QAAA,mBAAAkC,CAAA,GAAAjC,MAAA,CAAAwB,wBAAA,CAAA5B,CAAA,EAAAxB,CAAA,UAAA6D,CAAA,CAAAlC,QAAA,aAAAkC,CAAA,CAAAP,KAAA,GAAA9C,CAAA,EAAAoB,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAxB,CAAA,EAAA6D,CAAA,UAAAI,eAAA,CAAAzC,CAAA,EAAAxB,CAAA,EAAAQ,CAAA,iBAAAuD,GAAA,CAAAlE,CAAA,EAAAG,CAAA,EAAAQ,CAAA,EAAAgB,CAAA;AAAA,SAAAsC,KAAAjE,CAAA,EAAAG,CAAA,EAAAQ,CAAA,EAAAgB,CAAA,EAAAqC,CAAA,SAAAE,GAAA,CAAAlE,CAAA,EAAAG,CAAA,EAAAQ,CAAA,EAAAgB,CAAA,IAAA3B,CAAA,KAAAgE,CAAA,YAAAxD,SAAA,mCAAAG,CAAA;AAAA,SAAAyD,gBAAApE,CAAA,EAAAG,CAAA,EAAAQ,CAAA,YAAAR,CAAA,GAAA8B,cAAA,CAAA9B,CAAA,MAAAH,CAAA,GAAA+B,MAAA,CAAAC,cAAA,CAAAhC,CAAA,EAAAG,CAAA,IAAAsD,KAAA,EAAA9C,CAAA,EAAAiB,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA9B,CAAA,CAAAG,CAAA,IAAAQ,CAAA,EAAAX,CAAA;AAAA,SAAAiC,eAAAtB,CAAA,QAAAwD,CAAA,GAAAE,YAAA,CAAA1D,CAAA,gCAAAiC,OAAA,CAAAuB,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAE,aAAA1D,CAAA,EAAAR,CAAA,oBAAAyC,OAAA,CAAAjC,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAX,CAAA,GAAAW,CAAA,CAAAS,MAAA,CAAAkD,WAAA,kBAAAtE,CAAA,QAAAmE,CAAA,GAAAnE,CAAA,CAAAa,IAAA,CAAAF,CAAA,EAAAR,CAAA,gCAAAyC,OAAA,CAAAuB,CAAA,UAAAA,CAAA,YAAA3D,SAAA,yEAAAL,CAAA,GAAAoE,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAAA,SAAA2C,eAAA3C,CAAA,EAAAgB,CAAA,eAAA8C,cAAA,CAAA5D,IAAA,CAAAF,CAAA,EAAAgB,CAAA,eAAAhB,CAAA,GAAA2B,eAAA,CAAA3B,CAAA,aAAAA,CAAA;AAAA,SAAA2B,gBAAA3B,CAAA,WAAA2B,eAAA,GAAAP,MAAA,CAAA8B,cAAA,GAAA9B,MAAA,CAAA2C,cAAA,CAAArB,IAAA,eAAA1C,CAAA,WAAAA,CAAA,CAAAmD,SAAA,IAAA/B,MAAA,CAAA2C,cAAA,CAAA/D,CAAA,MAAA2B,eAAA,CAAA3B,CAAA;AAAA,IAE5BgE,UAAU,GAAAC,OAAA,qCAAAC,iBAAA;EAC3B,SAAAF,WAAYG,MAAM,EAAE;IAAA,IAAAC,KAAA;IAAAtD,eAAA,OAAAkD,UAAA;IAChB,IACIK,IAAI,GAcJF,MAAM,CAdNE,IAAI;MACJ9C,GAAG,GAaH4C,MAAM,CAbN5C,GAAG;MACH+C,UAAU,GAYVH,MAAM,CAZNG,UAAU;MACVC,QAAQ,GAWRJ,MAAM,CAXNI,QAAQ;MACRC,MAAM,GAUNL,MAAM,CAVNK,MAAM;MACNC,KAAK,GASLN,MAAM,CATNM,KAAK;MACLC,KAAK,GAQLP,MAAM,CARNO,KAAK;MACLC,SAAS,GAOTR,MAAM,CAPNQ,SAAS;MACTC,OAAO,GAMPT,MAAM,CANNS,OAAO;MACPvE,IAAI,GAKJ8D,MAAM,CALN9D,IAAI;MACJwE,YAAY,GAIZV,MAAM,CAJNU,YAAY;MAAAC,YAAA,GAIZX,MAAM,CAHNY,IAAI;MAAJA,IAAI,GAAAD,YAAA,cAAG,IAAI,GAAAA,YAAA;MACXE,GAAG,GAEHb,MAAM,CAFNa,GAAG;MACHC,MAAM,GACNd,MAAM,CADNc,MAAM;IAGVb,KAAA,GAAA1C,UAAA,OAAAsC,UAAA,GAAMG,MAAM;IACZf,aAAA,EAAAgB,KAAA,EAAAJ,UAAA,WAAae,IAAI,EAAAX,KAAA;IACjB;IACAA,KAAA,CAAK7C,GAAG,GAAGA,GAAG;;IAEd;IACA6C,KAAA,CAAK/D,IAAI,GAAGA,IAAI;;IAEhB;IACA+D,KAAA,CAAKE,UAAU,GAAGA,UAAU;;IAE5B;IACAF,KAAA,CAAKG,QAAQ,GAAGA,QAAQ;IAExBH,KAAA,CAAKC,IAAI,GAAGA,IAAI;;IAEhB;IACAD,KAAA,CAAKK,KAAK,GAAGA,KAAK,IAAI,SAAS;;IAE/B;IACAL,KAAA,CAAKI,MAAM,GAAGA,MAAM,IAAI,IAAI;;IAE5B;IACAJ,KAAA,CAAKM,KAAK,GAAGA,KAAK,IAAI,CAAC;;IAEvB;IACAN,KAAA,CAAKO,SAAS,GAAGA,SAAS,IAAI,CAAC;;IAE/B;IACAP,KAAA,CAAKQ,OAAO,GAAGA,OAAO,IAAI,CAAC;IAE3BR,KAAA,CAAKa,MAAM,GAAGA,MAAM;;IAEpB;IACAb,KAAA,CAAKY,GAAG,GAAGA,GAAG;IAEdZ,KAAA,CAAKS,YAAY,GAAGA,YAAY;IAChC,IAAIR,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEzD,MAAM,EAAE;MACdwD,KAAA,CAAKc,QAAQ,CAACb,IAAI,CAAC;IACvB;IAAC,OAAAD,KAAA;EACL;EACA;EAAArB,SAAA,CAAAiB,UAAA,EAAAE,iBAAA;EAAA,OAAA1C,YAAA,CAAAwC,UAAA;IAAAzC,GAAA;IAAAkB,GAAA,EACA,SAAAA,IAAA,EAAW;MACP,OAAAH,aAAA,CAAA0B,UAAA;IACJ,CAAC;IAAAT,GAAA,EAED,SAAAA,IAAST,KAAK,EAAE;MACZ,IAAI,CAACqC,UAAU,CAACrC,KAAK,CAAC;IAC1B;;IAEA;EAAA;IAAAvB,GAAA;IAAAuB,KAAA,EACA,SAAAsC,MAAMA,CAAA,EAAG;MACL,OAAO,IAAI,CAACJ,GAAG;IACnB;;IAEA;EAAA;IAAAzD,GAAA;IAAAuB,KAAA,EACA,SAAAqC,UAAUA,CAACE,OAAO,EAAE;MAChBjC,aAAA,CAAAY,UAAA,UAAaqB,OAAO,cAAC,CAAC;;MAEtB,IAAML,GAAG,GAAG,IAAI,CAACI,MAAM,IAAI,IAAI,CAACA,MAAM,CAAC,CAAC;MACxC,IAAIJ,GAAG,EAAE;QACLA,GAAG,CAACM,MAAM,CAACC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAEF,OAAO,CAAC;MAC7C;IACJ;EAAC;IAAA9D,GAAA;IAAAuB,KAAA,EAED,SAAAoC,QAAQA,CAACb,IAAI,EAAE;MAAA,IAAAmB,MAAA;MACX,IAAI,CAACC,QAAQ,CAACC,SAAS,CAAC,CAAC;MAEzB,IAAIlB,MAAM,GAAG,IAAI,CAACA,MAAM;MACxB,IAAIC,KAAK,GAAG,IAAI,CAACA,KAAK;MACtB,IAAIC,KAAK,GAAG,IAAI,CAACA,KAAK;MACtB,IAAIC,SAAS,GAAG,IAAI,CAACA,SAAS;MAC9B,IAAIC,OAAO,GAAG,IAAI,CAACA,OAAO;MAE1BP,IAAI,CAACW,GAAG,CAAC,UAACW,CAAC,EAAEC,KAAK,EAAK;QACnB,IAAIC,SAAS,GAAG,EAAE;QAClB,IAAAC,eAAA,GAA4BH,CAAC,CAAvBI,YAAY;UAAZA,YAAY,GAAAD,eAAA,cAAG,CAAC,CAAC,GAAAA,eAAA;QACvB,IAAAE,kBAAA,GAAsB,IAAAC,0CAAiB,EAACF,YAAY,CAAC;UAA/CG,WAAW,GAAAF,kBAAA,CAAXE,WAAW;QACjB,IAAIA,WAAW,IAAIA,WAAW,CAACtF,MAAM,EAAE;UAAA,IAAAuF,aAAA;UACnCD,WAAW,aAAXA,WAAW,gBAAAC,aAAA,GAAXD,WAAW,CAAG,CAAC,CAAC,cAAAC,aAAA,eAAhBA,aAAA,CAAkBnB,GAAG,CAAC,UAAAoB,CAAC,EAAI;YACvBP,SAAS,CAACQ,IAAI,CAAArE,KAAA,CAAd6D,SAAS,EAAAtG,kBAAA,CAAS6G,CAAC,EAAAE,MAAA,EAAEF,CAAC,CAAC5B,MAAM,IAAIA,MAAM,GAAC;UAC5C,CAAC,CAAC;QACN;QAEA,IAAM+B,UAAU,GAAGf,MAAI,CAACC,QAAQ,CAACe,GAAG,CAAC;UACjCC,IAAI,EAAE;YACFZ,SAAS,EAAEa,kBAAU,CAACC,uBAAuB,CAACd,SAAS,CAAC;YACxDe,QAAQ,EAAE,IAAIC,4CAAgC,CAAC;cAC3CpC,KAAK,EAAEqC,aAAK,CAACC,kBAAkB,CAAC,IAAAC,wBAAY,EAACrB,CAAC,CAAClB,KAAK,IAAIA,KAAK,EAAEkB,CAAC,CAACf,OAAO,IAAIA,OAAO,CAAC,CAAC;cACrFF,KAAK,EAAEiB,CAAC,CAACjB,KAAK,IAAIA,KAAK;cACvBC,SAAS,EAAEgB,CAAC,CAAChB,SAAS,IAAIA;YAC9B,CAAC,CAAC;YACFsC,OAAO,EAAE,KAAK;YACdC,MAAM,EAAEvB,CAAC,CAACuB,MAAM,IAAItB;UACxB;QACJ,CAAC,CAAC;QAEFW,UAAU,CAACY,IAAI,GAAG3B,MAAI,CAAC4B,SAAS,IAAI5B,MAAI,CAACjE,GAAG;QAC5CgF,UAAU,CAAChF,GAAG,GAAGiE,MAAI,CAACjE,GAAG;QACzBgF,UAAU,CAACc,UAAU,GAAG1B,CAAC,CAAC0B,UAAU,IAAI,CAAC,CAAC;MAC9C,CAAC,CAAC;IACN;;IAEA;EAAA;IAAA9F,GAAA;IAAAuB,KAAA,EACA,SAAAwE,sBAAsBA,CAACC,KAAK,EAAEzE,KAAK,EAAE;MACjC,OAAO,IAAI,CAAC0E,WAAW,CAAC,CAAC,CAACC,IAAI,CAAC,UAAA9B,CAAC;QAAA,IAAA+B,aAAA;QAAA,OAAI9D,MAAM,CAAC+B,CAAC,aAADA,CAAC,gBAAA+B,aAAA,GAAD/B,CAAC,CAAE0B,UAAU,cAAAK,aAAA,gBAAAA,aAAA,GAAbA,aAAA,CAAgBH,KAAK,CAAC,cAAAG,aAAA,uBAAtBA,aAAA,CAAwBC,MAAM,CAAC,KAAK/D,MAAM,CAACd,KAAK,CAAC;MAAA,EAAC;IACjG;;IAEA;EAAA;IAAAvB,GAAA;IAAAuB,KAAA,EACA,SAAA0E,WAAWA,CAAA,EAAG;MACV,OAAO,IAAI,CAAC/B,QAAQ,CAACmC,MAAM;IAC/B;EAAC;AAAA,EAlImCC,wBAAgB","ignoreList":[]}
|
|
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
7
|
var _cesium = require("cesium");
|
|
8
|
-
/**
|
|
9
|
-
*渐变光圈纹理
|
|
10
|
-
* @param {}color 颜色
|
|
11
|
-
* @param {}speed 速率
|
|
12
|
-
* @param {}repeatNum 重复数量
|
|
8
|
+
/**
|
|
9
|
+
*渐变光圈纹理
|
|
10
|
+
* @param {}color 颜色
|
|
11
|
+
* @param {}speed 速率
|
|
12
|
+
* @param {}repeatNum 重复数量
|
|
13
13
|
*/
|
|
14
14
|
function CesiumGradualLightRingMaterialProperty(options) {
|
|
15
15
|
this._definitionChanged = new _cesium.Event();
|