|
@@ -16,16 +16,22 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
|
|
|
let useModel = (model, i)=>{
|
|
|
pathModels[i].model = model
|
|
|
- model.inUse = true
|
|
|
+ model.inUse = true //使用
|
|
|
+ viewer.objs.add(model)
|
|
|
let qua = getQuaternion(aniPaths[i])
|
|
|
let pos = aniPaths[i].points[0]
|
|
|
model.position.copy(pos)
|
|
|
model.quaternion.copy(qua)
|
|
|
model.dispatchEvent('position_changed')
|
|
|
}
|
|
|
-
|
|
|
+ let unuseModel = (pathModel)=>{
|
|
|
+ if(!pathModel.model)return
|
|
|
+ pathModel.model.inUse = false //归还
|
|
|
+ viewer.modules.MergeEditor.removeModel(pathModel.model)
|
|
|
+ delete pathModel.model
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
+ let count__ = 0
|
|
|
|
|
|
let addPath = async ()=>{
|
|
|
|
|
@@ -35,7 +41,7 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
},
|
|
|
headers: {
|
|
|
Token: `${token}`,
|
|
|
- share : 1
|
|
|
+ share : 1 //防止过期
|
|
|
},
|
|
|
});
|
|
|
list = list?.data?.data
|
|
@@ -59,10 +65,8 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
}else if(less<0){
|
|
|
for(let i=0;i<-less;i++){
|
|
|
let path = aniPaths.pop()
|
|
|
- path.dispose()
|
|
|
- let model = pathModels[i].model
|
|
|
- model && viewer.modules.MergeEditor.removeModel(model)
|
|
|
- delete pathModels[i].model
|
|
|
+ path.dispose()
|
|
|
+ unuseModel(pathModels[i])
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -81,10 +85,8 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
let modelInfo2 = modelList[data.characterModel.name]
|
|
|
if(!modelInfo2) modelInfo2 = modelList[data.characterModel.name] = []
|
|
|
if(modelInfo.model?.name != data.characterModel.name){
|
|
|
- if(modelInfo.model){
|
|
|
- viewer.modules.MergeEditor.removeModel(modelInfo.model)
|
|
|
- delete pathModels[i].model
|
|
|
- }
|
|
|
+ unuseModel(modelInfo)
|
|
|
+
|
|
|
let idleItem = modelInfo2.find(model=>!model.inUse && model!='loading')
|
|
|
if(idleItem){
|
|
|
useModel(idleItem, i)
|
|
@@ -105,13 +107,14 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
if(needIndex != -1){
|
|
|
useModel(model_, needIndex)
|
|
|
}
|
|
|
- model_.visible = true
|
|
|
- model_.actions[1].play()
|
|
|
+ model_.visible = true
|
|
|
+
|
|
|
+ model_.actions[model_.name == 'Man' ? 1 : 2].play()
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+//data.locationList[0].lng = parseFloat(data.locationList[0].lng) + count__++ * 0.000001
|
|
|
|
|
|
if(Potree.Common.ifSame(pathDevices[i]?.locationList, data.locationList) )return //路径没变
|
|
|
let points = getDifferentPoint(data.locationList) //第一个点是最新的
|
|
@@ -123,7 +126,8 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
return new THREE.Vector3().copy(p) //new THREE.Vector3().fromArray(p)
|
|
|
})
|
|
|
path.update()
|
|
|
-
|
|
|
+ path.name = 'ani_'+data.deviceName
|
|
|
+
|
|
|
|
|
|
//写入历史
|
|
|
|
|
@@ -144,10 +148,10 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
}
|
|
|
|
|
|
pathDevices = list
|
|
|
- console.log('positions', list )
|
|
|
+ //console.log('positions', list )
|
|
|
|
|
|
|
|
|
- /* count++ < 2 && */ setTimeout(addPath, 3000)
|
|
|
+ /* count++ < 2 && */ setTimeout(addPath, 1000)
|
|
|
|
|
|
|
|
|
|
|
@@ -214,8 +218,8 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
|
|
|
let aimQua = getQuaternion(aniPaths[i])
|
|
|
let aimPos = aniPaths[i].points[0]
|
|
|
- lerp.quaternion(aimQua, model.quaternion)(transitionRatio) //每次只改变一点点
|
|
|
- lerp.vector(aimPos, model.position)(transitionRatio)
|
|
|
+ lerp.quaternion(model.quaternion, aimQua)(transitionRatio) //每次只改变一点点
|
|
|
+ lerp.vector(model.position, aimPos)(transitionRatio)
|
|
|
model.dispatchEvent('position_changed')
|
|
|
})
|
|
|
|
|
@@ -1409,8 +1413,9 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
model.addEventListener('changeSelect', (e) => {
|
|
|
MergeEditor.transformControls.visible && e.selected && MergeEditor.transformControls.attach(model, e.clickPos) //: MergeEditor.transformControls.detach()
|
|
|
})
|
|
|
- if(!floorCountEmited){
|
|
|
- sceneBus.emit('floorCount',3)
|
|
|
+
|
|
|
+ if(!floorCountEmited ){
|
|
|
+ sceneBus.emit('floorCount', 6/* viewer.objs.children[0].children[0].length */)
|
|
|
floorCountEmited = 1
|
|
|
}
|
|
|
MergeEditor.modelAdded(model)
|