|
@@ -242,31 +242,27 @@ export default class Magnifier extends THREE.Object3D {//放大镜or望远镜
|
|
|
|
|
|
const fareast = 300;
|
|
|
//相机位置
|
|
|
- if(playerCamera.type == 'OrthographicCamera'){
|
|
|
-
|
|
|
- var finalDisToAim = 2
|
|
|
-
|
|
|
+ if(playerCamera.type == 'OrthographicCamera'){
|
|
|
+ var finalDisToAim = 2
|
|
|
}else{
|
|
|
var finalDisToAim = dis>magDisMin ? dis > fareast ? magDisMax : (dis-magDisMin) / (fareast-magDisMin) * (magDisMax-magDisMin) + magDisMin : dis / 2; //dis>magDistance_ ? magDistance_ : dis / 2;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|
|
|
- this.camera.position.copy(aimPos).add(dirToCamera.multiplyScalar(finalDisToAim))
|
|
|
- this.camera.lookAt(aimPos)
|
|
|
this.camera.fov = playerCamera.type == 'OrthographicCamera' ? 30 : playerCamera.fov / 2
|
|
|
this.camera.updateProjectionMatrix()
|
|
|
|
|
|
|
|
|
if(playerCamera.type == 'OrthographicCamera'){
|
|
|
- orthoView.position.copy(this.camera.position)
|
|
|
-
|
|
|
+ orthoView.position.copy(aimPos).sub(viewer.mainViewport.view.direction.multiplyScalar(finalDisToAim))
|
|
|
orthoView.yaw = viewer.mainViewport.view.yaw;
|
|
|
orthoView.pitch = viewer.mainViewport.view.pitch;
|
|
|
orthoView.applyToCamera(this.camera)
|
|
|
+ }else{
|
|
|
+ this.camera.position.copy(aimPos).add(dirToCamera.multiplyScalar(finalDisToAim))
|
|
|
+ this.camera.lookAt(aimPos)
|
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
//自身位置
|
|
|
//let pos2d = viewer.inputHandler.pointer.clone(); //跟随鼠标
|
|
@@ -277,10 +273,7 @@ export default class Magnifier extends THREE.Object3D {//放大镜or望远镜
|
|
|
let newPos = new THREE.Vector3(screenPos.x,screenPos.y,0.8).unproject(playerCamera); //z:-1朝外
|
|
|
if(playerCamera.type != 'OrthographicCamera'){
|
|
|
let dir = newPos.clone().sub(playerPos).normalize().multiplyScalar(10);//这个数值要大于playerCamera.near
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
this.position.copy(playerPos.clone().add(dir))
|
|
|
}else{
|
|
|
viewer.navCubeViewer.splitScreen.setShiftTarget(viewer.mainViewport, viewer.bound.center)
|