|
@@ -307,15 +307,13 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
this.sourceApp = sourceApp
|
|
this.sourceApp = sourceApp
|
|
this.targetApp = targetApp
|
|
this.targetApp = targetApp
|
|
|
|
|
|
- let modelSize = new THREE.Vector3
|
|
|
|
bimViewer = this.bimViewer = targetApp.viewer
|
|
bimViewer = this.bimViewer = targetApp.viewer
|
|
|
|
+ let modelSize = new THREE.Vector3
|
|
let modelBound = bimViewer.getViewer().modelManager.boundingBox
|
|
let modelBound = bimViewer.getViewer().modelManager.boundingBox
|
|
modelBound.getSize(modelSize)
|
|
modelBound.getSize(modelSize)
|
|
bimViewer.setNavigationMode(targetApp.Glodon.Bimface.Viewer.NavigationMode3D.Walk)
|
|
bimViewer.setNavigationMode(targetApp.Glodon.Bimface.Viewer.NavigationMode3D.Walk)
|
|
- bimViewer.setFlySpeedRate(THREE.MathUtils.clamp( modelSize.length() / 10, 1, 6)) //会被限制
|
|
|
|
- //bimViewer.getViewer().setWalkSpeedRate(2)
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ //bimViewer.setFlySpeedRate(THREE.MathUtils.clamp( modelSize.length() / 10, 1, 6)) //会被限制
|
|
|
|
+ bimViewer.setFlySpeedRate(1.5) //方向键速度,保持较小匀速,方便细调。
|
|
|
|
|
|
this.sourceDom = sourceApp.sceneType == 'laser' ? this.sourceApp.viewer.inputHandler.domElement : this.sourceApp.app.core.get('Player').domElement
|
|
this.sourceDom = sourceApp.sceneType == 'laser' ? this.sourceApp.viewer.inputHandler.domElement : this.sourceApp.app.core.get('Player').domElement
|
|
|
|
|
|
@@ -416,10 +414,11 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
//将第一人称control补充完:
|
|
//将第一人称control补充完:
|
|
|
|
|
|
//scroll
|
|
//scroll
|
|
- let baseSpeed = THREE.MathUtils.clamp( Math.sqrt(modelSize.length()) / 5, 0.3, 8) //在modelBound中时的速度
|
|
|
|
|
|
+ let baseSpeed = THREE.MathUtils.clamp( Math.sqrt(modelSize.length()) / 5, 0.3, 3) //在modelBound中时的速度
|
|
//console.log('baseSpeed',baseSpeed)
|
|
//console.log('baseSpeed',baseSpeed)
|
|
let dom = bimViewer.getDomElement();
|
|
let dom = bimViewer.getDomElement();
|
|
dom.addEventListener('mousewheel', e => { //原版滚轮不能缩放,自己加一个
|
|
dom.addEventListener('mousewheel', e => { //原版滚轮不能缩放,自己加一个
|
|
@@ -441,7 +440,7 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
}
|
|
}
|
|
})
|
|
})
|
|
dom.addEventListener('mousemove', e => {
|
|
dom.addEventListener('mousemove', e => {
|
|
- if(!dragging)return
|
|
|
|
|
|
+ if(!dragging)return
|
|
let pointerEnd = new THREE.Vector2(e.clientX, e.clientY)
|
|
let pointerEnd = new THREE.Vector2(e.clientX, e.clientY)
|
|
pointerDelta.subVectors(pointerEnd, pointerStart)
|
|
pointerDelta.subVectors(pointerEnd, pointerStart)
|
|
pointerStart.copy(pointerEnd)
|
|
pointerStart.copy(pointerEnd)
|
|
@@ -678,10 +677,11 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
}else if(customer && customer.sceneType == 'kankan'){
|
|
}else if(customer && customer.sceneType == 'kankan'){
|
|
this.syncView(sourceApp, targetApp, convertInfo)
|
|
this.syncView(sourceApp, targetApp, convertInfo)
|
|
}else{
|
|
}else{
|
|
|
|
+ let info = bimViewer.getCameraStatus()
|
|
let msg = {
|
|
let msg = {
|
|
position,
|
|
position,
|
|
target,
|
|
target,
|
|
- up: new THREE.Vector3(0,0,1),
|
|
|
|
|
|
+ up:info.up,
|
|
//前三个缺一不可
|
|
//前三个缺一不可
|
|
fov: data.fov , //fov 用setCameraStatus 无效
|
|
fov: data.fov , //fov 用setCameraStatus 无效
|
|
}
|
|
}
|
|
@@ -722,10 +722,10 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
]
|
|
]
|
|
|
|
|
|
let getPano2 = (app)=>{
|
|
let getPano2 = (app)=>{
|
|
- if(panoData.p1.id != void 0){//老数据用的id, 因为slam场景无漫游点所以改为用pos
|
|
|
|
|
|
+ if(panoData.p1.id != void 0){//老数据用的id, 因为slam场景无漫游点所以改为用pos
|
|
return [
|
|
return [
|
|
- app.fakeApp.panos.find(e=>e.id == panoData.p1.id),
|
|
|
|
- app.fakeApp.panos.find(e=>e.id == panoData.p2.id)
|
|
|
|
|
|
+ app.fakeApp.panos.find(e=>e.sid == panoData.p1.id || e.id == panoData.p1.id),
|
|
|
|
+ app.fakeApp.panos.find(e=>e.sid == panoData.p2.id || e.id == panoData.p2.id)
|
|
]
|
|
]
|
|
}else{
|
|
}else{
|
|
return [
|
|
return [
|
|
@@ -744,8 +744,8 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
}
|
|
}
|
|
|
|
|
|
if( !sourcePano[0] || !sourcePano[1] || !targetPano[0] || !targetPano[1] ){
|
|
if( !sourcePano[0] || !sourcePano[1] || !targetPano[0] || !targetPano[1] ){
|
|
- console.error('场景绑定有误 !sourcePano[0] || !sourcePano[1] || !targetPano[0] || !targetPano[1]')
|
|
|
|
- }
|
|
|
|
|
|
+ console.error('缺少绑定漫游点,请重新绑定', sourcePano, targetPano )
|
|
|
|
+ }//可能原因:漫游点改变
|
|
|
|
|
|
|
|
|
|
return {sourcePano, targetPano}
|
|
return {sourcePano, targetPano}
|
|
@@ -827,8 +827,8 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
|
|
|
|
}
|
|
}
|
|
if(app.sceneType != 'bim'){
|
|
if(app.sceneType != 'bim'){
|
|
- function getPanos(panos){ // only data
|
|
|
|
- return panos.map(e=>{return {id:e.id, position:e.position, quaternion:e.quaternion}})
|
|
|
|
|
|
+ function getPanos(panos){ // only data
|
|
|
|
+ return panos.map(e=>{return {id:e.id, sid:e.sid, position:e.position, quaternion:e.quaternion}})
|
|
}
|
|
}
|
|
fakeApp.panos = app.sceneType == 'laser' ? getPanos(app.viewer.images360.panos) : getPanos(app.app.core.get('Player').model.panos.list)
|
|
fakeApp.panos = app.sceneType == 'laser' ? getPanos(app.viewer.images360.panos) : getPanos(app.app.core.get('Player').model.panos.list)
|
|
}
|
|
}
|
|
@@ -973,7 +973,7 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
let info = bimViewer.getCameraStatus()
|
|
let info = bimViewer.getCameraStatus()
|
|
|
|
|
|
let vec = new THREE.Vector3().subVectors(info.target, info.position)
|
|
let vec = new THREE.Vector3().subVectors(info.target, info.position)
|
|
- let radius = vec.length() //修改了target到position的距离会影响pan时的速度
|
|
|
|
|
|
+ let radius = 10//vec.length() //修改了target到position的距离会影响pan时的速度
|
|
let dir = vec.clone().normalize()
|
|
let dir = vec.clone().normalize()
|
|
|
|
|
|
let position = data.position
|
|
let position = data.position
|
|
@@ -991,7 +991,7 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
let msg = {//不能修改
|
|
let msg = {//不能修改
|
|
position,
|
|
position,
|
|
target,
|
|
target,
|
|
- up: new THREE.Vector3(0,0,1),
|
|
|
|
|
|
+ up: info.up, // 不能是Vector3(0,0,1),否则俯视时会不受控制打转
|
|
//前三个缺一不可
|
|
//前三个缺一不可
|
|
|
|
|
|
}
|
|
}
|
|
@@ -1005,8 +1005,9 @@ export default class ConvertViews extends THREE.EventDispatcher{
|
|
if(app.viewer.images360.panos.length == 0){//slam
|
|
if(app.viewer.images360.panos.length == 0){//slam
|
|
app.viewer.mainViewport.view.setView({position, duration:1000})
|
|
app.viewer.mainViewport.view.setView({position, duration:1000})
|
|
}else{
|
|
}else{
|
|
|
|
+
|
|
app.viewer.images360.flyToPano(Object.assign({},{
|
|
app.viewer.images360.flyToPano(Object.assign({},{
|
|
- pano: app.viewer.images360.getPano(panoId)
|
|
|
|
|
|
+ pano: app.viewer.images360.getPano(panoId, (panoId+'').includes('|')?'sid':'id')
|
|
},o))
|
|
},o))
|
|
}
|
|
}
|
|
}else{
|
|
}else{
|