|
@@ -41,7 +41,8 @@ export class MapViewer extends ViewerBase{
|
|
|
constructor(dom){
|
|
|
super(dom, {
|
|
|
clearColor: Potree.config.mapBG,
|
|
|
- name: 'mapViewer', //antialias:true
|
|
|
+ name: 'mapViewer',
|
|
|
+ antialias:true
|
|
|
})
|
|
|
this.visible = true
|
|
|
this.initScene()
|
|
@@ -52,7 +53,7 @@ export class MapViewer extends ViewerBase{
|
|
|
this.mapLayer.sceneGroup.position.setZ(Potree.config.map.mapHeight)
|
|
|
this.mapRatio = 0.5
|
|
|
this.splitDir = 'leftRight'
|
|
|
-
|
|
|
+ this.renderMeasure = false
|
|
|
|
|
|
//因context的preserveDrawingBuffer为false之后,canvas渲染多个viewport时会自动clear,所以若不渲染就会是空的。所以没有变化时就直接拷贝buffer好了。
|
|
|
this.copyPass = new ShaderPass( CopyShader );
|
|
@@ -600,7 +601,7 @@ export class MapViewer extends ViewerBase{
|
|
|
this.viewports[0].height = 1;
|
|
|
this.viewports[0].left = 0;
|
|
|
|
|
|
- this.inputHandler.unregisterInteractiveScene(viewer.measuringTool.scene);
|
|
|
+ this.renderMeasure || this.inputHandler.unregisterInteractiveScene(viewer.measuringTool.scene);
|
|
|
this.inputHandler.unregisterInteractiveScene(viewer.scene.scene);
|
|
|
viewer.viewports = [viewer.mainViewport]
|
|
|
this.updateScreenSize({forceUpdateSize:true}) //更新相机projectionMatrix
|
|
@@ -625,6 +626,16 @@ export class MapViewer extends ViewerBase{
|
|
|
this.needRender = true
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ setDrawMeasure(draw){
|
|
|
+ this.renderMeasure = !!draw
|
|
|
+ if(draw){
|
|
|
+ this.inputHandler.registerInteractiveScene(viewer.measuringTool.scene);
|
|
|
+ }else{
|
|
|
+ this.inputHandler.unregisterInteractiveScene(viewer.measuringTool.scene);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
changeSplitScreenDir(dir, mapRatio){//左右 | 上下
|
|
|
//if(!dir || dir == this.dir)return
|
|
|
if(dir )this.splitDir = dir
|
|
@@ -759,6 +770,10 @@ export class MapViewer extends ViewerBase{
|
|
|
renderer.render(this.scene, this.camera);
|
|
|
this.attachedToViewer || renderer.render(viewer.scene.scene, this.camera); //类同renderOverlay
|
|
|
|
|
|
+ if(!this.attachedToViewer && this.renderMeasure){//在未attach到主页面时也要渲染测量线
|
|
|
+ viewer.dispatchEvent({type: "render.pass.perspective_overlay", camera:this.camera, /* screenshot:params.screenshot, */viewport:this.viewports[0], renderer});
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
renderer.setRenderTarget(null)
|
|
|
|