|
@@ -371,7 +371,8 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
|
camera.fov = data.fov
|
|
|
camera.updateProjectionMatrix()
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ this.sourceDom = sourceApp.sceneType == 'laser' ? this.sourceApp.viewer.inputHandler.domElement : this.sourceApp.app.core.get('Player').domElement
|
|
|
|
|
|
if(targetPano){
|
|
|
bimViewer.getViewer().setTransitionAnimationState(false) //setCameraStatus瞬间变化相机 ,or setCameraAnimation?
|
|
@@ -397,7 +398,7 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
|
|
|
|
})
|
|
|
if(sourceApp.sceneType == 'laser'){
|
|
|
- this.sourceDom = this.sourceApp.viewer.inputHandler.domElement
|
|
|
+
|
|
|
sourceApp.viewer.addEventListener('camera_changed', e => {
|
|
|
targetApp && this.receive(this.getCameraData(sourceApp))
|
|
|
})
|
|
@@ -414,7 +415,7 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
|
|
|
|
}else if(sourceApp.sceneType == 'kankan'){
|
|
|
let player = this.sourceApp.app.core.get('Player')
|
|
|
- this.sourceDom = player.domElement
|
|
|
+ //this.sourceDom = player.domElement
|
|
|
var cameraMove = (e)=>{//暂时只有漫游模式
|
|
|
if(!e.hasChanged.cameraChanged2)return
|
|
|
this.receive(this.getCameraData(sourceApp))
|
|
@@ -435,7 +436,8 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
|
this.loaded = true
|
|
|
this.receive(data)
|
|
|
}else{
|
|
|
-
|
|
|
+ //补充control
|
|
|
+
|
|
|
bimViewer.getViewer().animator.setDuration(60)//滚轮缩放时长,原先:1000
|
|
|
|
|
|
let baseSpeed = THREE.MathUtils.clamp( modelSize.length() / 10, 1, 10)
|
|
@@ -446,10 +448,41 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
|
let info = bimViewer.getCameraStatus()
|
|
|
let dis = modelBound.distanceToPoint(info.position)
|
|
|
let speed = baseSpeed + dis / 8
|
|
|
- console.log('speed', speed)
|
|
|
+ //console.log('speed', speed)
|
|
|
|
|
|
this.bimFlyTo({forwardDis: e.wheelDelta > 0 ? speed : -speed})
|
|
|
- })
|
|
|
+ })
|
|
|
+
|
|
|
+ //右键pan
|
|
|
+ let dragging , pointerDelta = new THREE.Vector2, pointerStart = new THREE.Vector2
|
|
|
+ dom.addEventListener('mousedown', e => {
|
|
|
+ if(e.button == 2){//右键
|
|
|
+ dragging = true
|
|
|
+ pointerStart.set(e.clientX, e.clientY)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ dom.addEventListener('mousemove', e => {
|
|
|
+ if(!dragging)return
|
|
|
+ let pointerEnd = new THREE.Vector2(e.clientX, e.clientY)
|
|
|
+ pointerDelta.subVectors(pointerEnd, pointerStart)
|
|
|
+ //pointerDelta.multiplyScalar(0.07)
|
|
|
+ pointerStart.copy(pointerEnd)
|
|
|
+
|
|
|
+ bimViewer.getViewer().cameraControl.pan(pointerDelta.x,pointerDelta.y)
|
|
|
+ })
|
|
|
+ targetApp.addEventListener('mouseup', e => {
|
|
|
+ dragging = false
|
|
|
+ })
|
|
|
+ this.sourceDom.addEventListener('mouseup', e => {
|
|
|
+ dragging = false
|
|
|
+ })
|
|
|
+ this.addEventListener('globalMouseUp', e => {
|
|
|
+ dragging = false
|
|
|
+ })
|
|
|
+
|
|
|
+ targetApp.CLOUD.GlobalData.WalkRotationSpeed = -0.2 //反向一下
|
|
|
+
|
|
|
+ //bimViewer.viewer.getViewer().editorManager.userInputEditor.enable = true//这句近似将control切换成orbit
|
|
|
|
|
|
}
|
|
|
|