2 lines
8.2 KiB
JavaScript
2 lines
8.2 KiB
JavaScript
/* 2020-9-24 14:48:21 | 版权所有 军懋国兴 */
|
|
mars3d.widget.bindClass(mars3d.widget.BaseWidget.extend({options:{view:{type:"window",url:"view.html",windowOptions:{width:320,height:400}}},create:function(){},viewWindow:null,winCreateOK:function(e,i){this.viewWindow=i},activate:function(){},disable:function(){this.viewWindow=null,this.destroyAll()},openTerrainDepthTest:function(){this._last_depthTestAgainstTerrain=this.viewer.scene.globe.depthTestAgainstTerrain,this.viewer.scene.globe.depthTestAgainstTerrain=!0},resetTerrainDepthTest:function(){Cesium.defined(this._last_depthTestAgainstTerrain)&&(this.viewer.scene.globe.depthTestAgainstTerrain=this._last_depthTestAgainstTerrain,delete this._last_depthTestAgainstTerrain)},destroyAll:function(){this.destroyRZFX(),this.destroyPDPX(),this.destroyKSY(),this.destroyFLFX(),this.destroyDXKW(),this.destroyDBTM(),this.destroyMXPQ(),this.destroyMXYP(),this.destroyMXCJ()},enableControl:function(e){this.viewer.mars.popup&&(this.viewer.mars.popup.enable=e),this.viewer.mars.tooltip&&(this.viewer.mars.tooltip.enable=e),this.viewer.mars.contextmenu&&(this.viewer.mars.contextmenu.enable=e)},createRZFX:function(){this.viewer.clock.onTick.addEventListener(this.showNowTimeRZFX,this)},destroyRZFX:function(){this.viewer.clock.clockRange=Cesium.ClockRange.UNBOUNDED,this.viewer.clock.multiplier=1,this.viewer.clock.onTick.removeEventListener(this.showNowTimeRZFX,this),this.viewer.shadows=!1},showNowTimeRZFX:function(){var e,i;this.viewWindow&&this.viewer.clock.shouldAnimate&&(e=this.viewer.clock.currentTime,i=Cesium.JulianDate.toDate(e),this.viewWindow.setRZFXNowTime(i))},clearRZFX:function(){this.viewer.shadows=!1,this.viewer.clock.shouldAnimate=!1},startPlayRZFX:function(e,i){this.stopTime&&(this.viewer.clock.currentTime=this.stopTime),this.viewer.clock.startTime=Cesium.JulianDate.fromDate(e),this.viewer.clock.currentTime=Cesium.JulianDate.fromDate(e),this.viewer.clock.stopTime=Cesium.JulianDate.fromDate(i),this.viewer.clock.clockRange=Cesium.ClockRange.LOOP_STOP,this.viewer.clock.multiplier=1600,this.viewer.clock.shouldAnimate=!0,this.viewer.shadows=!0},pauseRZFX:function(){return this.viewer.clock.shouldAnimate?(this.stopTime=this.viewer.clock.currentTime,this.viewer.clock.shouldAnimate=!1):(this.viewer.clock.currentTime=this.stopTime||this.viewer.clock.currentTime,this.viewer.clock.shouldAnimate=!0),this.viewer.clock.shouldAnimate},createKSY:function(){this.viewer.scene.postProcessStages.fxaa.enabled=!0,this.openTerrainDepthTest()},destroyKSY:function(){this.clearKSY(),this.resetTerrainDepthTest()},clearKSY:function(){for(var e=0,i=this.arrKsyList.length;e<i;e++)this.arrKsyList[e].destroy();this.arrKsyList=[],delete this.lastViewField},arrKsyList:[],getLastKSY:function(){return this.lastViewField||{}},addKSY:function(e){var i=this,t=new mars3d.analysi.ViewShed3D(this.viewer,{horizontalAngle:e.horizontalAngle,verticalAngle:e.verticalAngle,distance:e.distance,offsetHeight:1.5,calback:function(e){i.viewWindow&&i.viewWindow.updateKsyDistance(e)}});this.lastViewField=t,this.arrKsyList.push(t)},updateKsyDebugFrustum:function(e){for(var i=0,t=this.arrKsyList.length;i<t;i++)this.arrKsyList[i].debugFrustum=e},createFLFX:function(){var e;this.measureObj||((e=this).measureObj=new mars3d.analysi.MeasureVolume(viewer,{heightLabel:!0,offsetLabel:!1,onStart:function(){haoutil.loading.show({type:"loader-bar"})},onStop:function(){haoutil.loading.hide(),e.viewWindow.showFLFXHeightRg(e.measureObj)}}))},destroyFLFX:function(){this.measureObj&&(this.measureObj.destroy(),delete this.measureObj)},clearFLFX:function(){this.measureObj&&this.measureObj.clear()},createDXKW:function(){this.openTerrainDepthTest()},startDrawDXKW:function(){var t=this;this.enableControl(!1),viewer.mars.draw.startDraw({type:"polygon",style:{color:"#29cf34",opacity:.5,clampToGround:!0},success:function(e){t.enableControl(!0);var i=viewer.mars.draw.getPositions(e);viewer.mars.draw.deleteAll(),t.showDXKWClippingPlanes(i,!0)}})},startDrawDXKWExtent:function(){var t=this;this.enableControl(!1),viewer.mars.draw.startDraw({type:"rectangle",style:{color:"#007be6",opacity:.8,outline:!1},success:function(e){t.enableControl(!0);var i=mars3d.draw.attr.rectangle.getOutlinePositions(e,!0);viewer.mars.draw.deleteAll(),t.showDXKWClippingPlanes(i,!1)}})},destroyDXKW:function(){this.clearDXKW(),this.resetTerrainDepthTest()},clearDXKW:function(){this.TerrainClip&&(this.TerrainClip.destroy(),delete this.TerrainClip),this.TerrainClipPlan&&(this.TerrainClipPlan.destroy(),delete this.TerrainClipPlan),this.clearMXCJ()},showDXKWClippingPlanes:function(e,i){this.clearDXKW(),this.addMxcjPoly(e);var t=this.viewWindow.getDXKWNowHeight();this.TerrainClipPlan=new mars3d.analysi.TerrainClipPlan(viewer,{positions:e,height:t,wall:!0,splitNum:50,wallImg:this.path+"img/textures/excavationregion_top.jpg",bottomImg:this.path+"img/textures/excavationregion_side.jpg"}),i&&(this.TerrainClip=new mars3d.analysi.TerrainClip(viewer,{positions:e,height:t,wall:!1}))},updateDXKWHeight:function(e){this.TerrainClipPlan&&(this.TerrainClipPlan.height=e)},createDBTM:function(){this.openTerrainDepthTest(),this.underObj=new mars3d.analysi.Underground(viewer,{alpha:.5,enable:!1})},destroyDBTM:function(){this.underObj&&(this.resetTerrainDepthTest(),this.underObj.destroy(),delete this.underObj)},clearDBTM:function(){},createPDPX:function(){this.slope||(this.slope=new mars3d.analysi.Slope({viewer:this.viewer,point:{pixelSize:9,color:Cesium.Color.RED.withAlpha(.5)},arrow:{scale:.3,width:15,color:Cesium.Color.YELLOW}}))},destroyPDPX:function(){this.slope&&(this.clearPDPX(),this.slope.destroy(),delete this.slope)},clearPDPX:function(){this.slope&&(this.viewer.mars.draw.deleteAll(),this.slope.clear())},drawPDPXLine:function(t){var s=this;this.viewer.mars.draw.deleteAll(),this.viewer.mars.draw.startDraw({type:"polygon",style:{color:"#29cf34",opacity:.3,outline:!0,outlineColor:"#ffffff",clampToGround:!0},success:function(e){var i=s.viewer.mars.draw.getPositions(e);s.viewer.mars.draw.deleteAll(),s.slope.add(i,{splitNum:t})}})},selectedPQMX:function(){var r=this;this.enableControl(!1),this.viewer.mars.draw.startDraw({type:"point",style:{color:"#007be6"},success:function(e){var i=r.viewer.mars.draw.getPositions(e);r.viewer.mars.draw.deleteAll(),r.enableControl(!0);var t,s=mars3d.tileset.pick3DTileset(r.viewer,i);s?(r.clipTileset=new mars3d.tiles.TilesClipPlan(s),t=s.boundingSphere.radius/2,r.viewWindow.setClipDistanceRange(t,s.name)):haoutil.msg("请单击选择模型")}})},drawLinePQMX:function(){var s=this;this.clipTileset&&this.clipTileset.clear(),viewer.mars.draw.startDraw({type:"polyline",config:{maxPointNum:2},style:{color:"#007be6",opacity:.8,outline:!1},success:function(e){var i=viewer.mars.draw.getPositions(e);if(viewer.mars.draw.deleteAll(),s.clipTileset)s.clipTileset.clear();else{var t=mars3d.tileset.pick3DTileset(viewer,i);if(!t)return void haoutil.msg("请单击选择模型");s.clipTileset=new mars3d.tiles.TilesClipPlan(t)}s.clipTileset.clipByPoints(i)}})},destroyMXPQ:function(){this.clipTileset&&(this.clipTileset.destroy(),delete this.clipTileset)},clearMXPQ:function(){this.clipTileset&&this.clipTileset.clear()},createMXYP:function(){},destroyMXYP:function(){this.clearMXYP()},clearMXYP:function(){this.flatObj&&(this.flatObj.destroy(),delete this.flatObj)},drawMxypPoly:function(s){this.clearMXYP();var r=this;viewer.mars.draw.startDraw({type:"polygon",style:{color:"#007be6",opacity:.5,clampToGround:!1},success:function(e){var i=viewer.mars.draw.getPositions(e);viewer.mars.draw.deleteAll();var t=mars3d.tileset.pick3DTileset(viewer,i);t?r.flatObj=new mars3d.tiles.TilesFlat({viewer:r.viewer,tileset:t,positions:i,flatHeight:s}):haoutil.msg("请单击选择模型")}})},createMXCJ:function(){},destroyMXCJ:function(){this.clearMXCJ()},clearMXCJ:function(){this.tilesetClip&&(this.tilesetClip.destroy(),delete this.tilesetClip)},drawMxcjPoly:function(t){this.clearMXCJ();var s=this;viewer.mars.draw.startDraw({type:"rectangle",style:{color:"#007be6",opacity:.8,outline:!1},success:function(e){var i=mars3d.draw.attr.rectangle.getOutlinePositions(e,!0);viewer.mars.draw.deleteAll(),s.addMxcjPoly(i,t)||haoutil.msg("请单击选择模型")}})},addMxcjPoly:function(e,i){this.clearMXCJ();var t=mars3d.tileset.pick3DTileset(this.viewer,e);return!!t&&(this.tilesetClip=new mars3d.tiles.TilesClipPlan({tileset:t,positions:e,clipOutSide:i}),!0)}})); |