|
@@ -82494,13 +82494,12 @@ void main()
|
|
|
|
|
|
}
|
|
|
|
|
|
- focus(){
|
|
|
+ focus({dontMoveCamera=false}={}){
|
|
|
|
|
|
-
|
|
|
- let dontChangeCamDir = viewer.mainViewport.camera.type == 'OrthographicCamera'; /* && math.closeTo( viewer.mainViewport.view.pitch , -1.57079632) */ // 不改角度
|
|
|
-
|
|
|
- viewer.focusOnObject(this, 'measure', null, {dontChangeCamDir});
|
|
|
-
|
|
|
+ if(!dontMoveCamera){
|
|
|
+ let dontChangeCamDir = viewer.mainViewport.camera.type == 'OrthographicCamera'; /* && math.closeTo( viewer.mainViewport.view.pitch , -1.57079632) */ // 不改角度
|
|
|
+ viewer.focusOnObject(this, 'measure', null, {dontChangeCamDir});
|
|
|
+ }
|
|
|
if(this.clickSelected)return
|
|
|
this.setSelected(true, 'focus');
|
|
|
this.dispatchEvent({type:'selected', state:true});
|
|
@@ -83730,10 +83729,14 @@ void main()
|
|
|
|
|
|
if(ifAtWrongPlace(e))return
|
|
|
if(e.clickElement || e.drag.object)return //如点击label时focusOnObject, 或拖拽marker
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
if(e.button === MOUSE.RIGHT )return
|
|
|
|
|
|
+
|
|
|
+ if(e.type == 'global_touchstart' && e.hoveredElement && e.hoveredElement.object.parent instanceof Measure$1 ){
|
|
|
+ return //点到测量线时要focus测量线而不是画新线
|
|
|
+ }
|
|
|
+
|
|
|
if(isMobile){
|
|
|
viewer.controls.setEnable(false);
|
|
|
}
|
|
@@ -91857,10 +91860,11 @@ void main()
|
|
|
|
|
|
|
|
|
viewer.images360.addEventListener('beginChangeMode',(e)=>{
|
|
|
- if(e.mode == 'showPanos')this.switchView('perspective',{}, ()=>{
|
|
|
+ if(e.mode == 'showPanos'){
|
|
|
+ this.switchView('perspective',{}, ()=>{
|
|
|
Potree.settings.displayMode = viewer.images360.latestRequestMode;
|
|
|
- });
|
|
|
-
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
|
|
@@ -91920,6 +91924,7 @@ void main()
|
|
|
switchView(type, {yaw, pitch, dir}={}, done){
|
|
|
if(viewer.mainViewport.view.isFlying())return
|
|
|
let view = viewer.mainViewport.view;
|
|
|
+ let oldlastView = this.lastView;
|
|
|
this.lastView = view.clone();
|
|
|
if(viewer.mainViewport.camera.type == 'OrthographicCamera'){
|
|
|
this.lastView.isOrtho = true;
|
|
@@ -91962,6 +91967,12 @@ void main()
|
|
|
}else {
|
|
|
|
|
|
if(viewer.mainViewport.camera == viewer.scene.cameraO){
|
|
|
+
|
|
|
+ return this.switchView2(oldlastView, done)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//viewer.scene.cameraP.position.copy(viewer.mainViewport.camera.position)
|
|
|
//viewer.scene.cameraP.quaternion.copy(viewer.mainViewport.camera.quaternion)
|
|
|
viewer.mainViewport.camera = viewer.scene.cameraP;
|
|
@@ -91978,6 +91989,11 @@ void main()
|
|
|
|
|
|
let position = new Vector3().copy(viewer.mainViewport.shiftTarget).sub(view.direction.clone().multiplyScalar(dis));
|
|
|
//view.position.copy(viewer.mainViewport.shiftTarget).sub(view.direction.clone().multiplyScalar(dis));
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
this.controls.setEnable(true);
|
|
|
//viewer.dispatchEvent('leaveTopView')
|
|
|
console.log('变回透视');
|
|
@@ -91998,7 +92014,7 @@ void main()
|
|
|
|
|
|
|
|
|
|
|
|
- switchView2(viewInfo){ //直接输入view改变
|
|
|
+ switchView2(viewInfo, done){ //直接输入view改变
|
|
|
|
|
|
let view = viewer.mainViewport.view;
|
|
|
let startCamera, endCamera;
|
|
@@ -92014,9 +92030,9 @@ void main()
|
|
|
view.moveOrthoCamera(viewer.mainViewport, {endPosition:viewInfo.position,
|
|
|
endPitch: viewInfo.pitch, endYaw: viewInfo.yaw , zoom: viewInfo.zoom,
|
|
|
callback:()=>{
|
|
|
-
|
|
|
+ done && done();
|
|
|
},
|
|
|
- }, 500);
|
|
|
+ }, 800);
|
|
|
}
|
|
|
}else {
|
|
|
if(viewer.mainViewport.camera == viewer.scene.cameraO){
|
|
@@ -92030,7 +92046,7 @@ void main()
|
|
|
callback:()=>{
|
|
|
|
|
|
},
|
|
|
- }, 500);
|
|
|
+ }, 800);
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -92051,8 +92067,9 @@ void main()
|
|
|
}else {
|
|
|
viewer.dispatchEvent({type:'viewChanged', name:'perspective' });
|
|
|
}
|
|
|
+ done && done();
|
|
|
},
|
|
|
- }, 500);
|
|
|
+ }, 800);
|
|
|
}
|
|
|
|
|
|
}
|