|
@@ -16,15 +16,13 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
|
|
|
|
|
|
|
|
|
- let useModel = (model, i)=>{
|
|
|
+ let useModel = (model, i, pos, qua)=>{
|
|
|
pathModels[i].model = model
|
|
|
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') */
|
|
|
+ pos && model.position.copy(pos)
|
|
|
+ qua && model.quaternion.copy(qua)
|
|
|
+ Potree.Utils.updateVisible(model,'live-display', livePathDisplay)
|
|
|
}
|
|
|
let unuseModel = (pathModel)=>{
|
|
|
if(!pathModel.model)return
|
|
@@ -53,7 +51,7 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
let less = list.length - aniPaths.length //add or remove, 注意,path和设备没有一一对应。
|
|
|
if(less>0){
|
|
|
for(let i=0;i<less;i++){
|
|
|
- let path = new Potree.Path({color:'#ff4399'})
|
|
|
+ let path = new Potree.Path({color:'#ff4399', type:'Path'})
|
|
|
path.setEditEnable(false)
|
|
|
path.setReverse(true)
|
|
|
path.setArrowDisplay(true)
|
|
@@ -73,7 +71,7 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
list.forEach((data,i)=>{
|
|
|
//收集到历史以保存
|
|
@@ -88,11 +86,12 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
let modelInfo2 = modelList[data.characterModel.name]
|
|
|
if(!modelInfo2) modelInfo2 = modelList[data.characterModel.name] = []
|
|
|
if(modelInfo.model?.name != data.characterModel.name){
|
|
|
+ let qua = modelInfo.model?.quaternion, pos = modelInfo.model?.position
|
|
|
unuseModel(modelInfo)
|
|
|
|
|
|
let idleItem = modelInfo2.find(model=>!model.inUse && model!='loading')
|
|
|
if(idleItem){
|
|
|
- useModel(idleItem, i)
|
|
|
+ useModel(idleItem, i, pos, qua)
|
|
|
}else if(!modelInfo2.some(model=> model=='loading')){
|
|
|
modelInfo2.push('loading')
|
|
|
|
|
@@ -108,7 +107,7 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
modelInfo2[waitingIndex] = model_
|
|
|
let needIndex = pathModels.findIndex((m,i)=>!m.model && pathDevices[i].characterModel.name == model_.name)
|
|
|
if(needIndex != -1){
|
|
|
- useModel(model_, needIndex)
|
|
|
+ useModel(model_, needIndex, pos, qua)
|
|
|
}
|
|
|
model_.lastPos = model_.position.clone(), model_.lastQua = model_.quaternion.clone()
|
|
|
model_.visible = true
|
|
@@ -131,7 +130,7 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
})
|
|
|
path.update()
|
|
|
path.name = 'ani_'+data.deviceName
|
|
|
-
|
|
|
+ Potree.Utils.updateVisible(path,'live-display', livePathDisplay)
|
|
|
|
|
|
//写入历史
|
|
|
|
|
@@ -216,8 +215,7 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
|
|
|
|
|
|
let transitionRatio = 0.1
|
|
|
- viewer.addEventListener("update", ()=>{
|
|
|
-
|
|
|
+ let update = ()=>{
|
|
|
pathDevices?.forEach((e,i)=>{
|
|
|
let model = pathModels[i].model
|
|
|
if(!model )return
|
|
@@ -241,18 +239,26 @@ let createAnimatePath = (token)=>{//实时路径 保存:generateAniPathData
|
|
|
modelDisToCam = null //一次性
|
|
|
}
|
|
|
}
|
|
|
- });
|
|
|
+ }
|
|
|
+
|
|
|
+ viewer.addEventListener("update", ()=>{livePathDisplay && update() })
|
|
|
+ viewer.addEventListener("updateLivePath", update)
|
|
|
|
|
|
viewer.addEventListener('global_drag', (e)=>{
|
|
|
e.buttons == 2 && (camFollowDevice = null) //右键取消focus
|
|
|
});
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ addPath()
|
|
|
+
|
|
|
+
|
|
|
}catch(e){console.error(e)}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- addPath()
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
@@ -339,7 +345,7 @@ let curSelectPath
|
|
|
|
|
|
|
|
|
let addedPath, floorCountEmited
|
|
|
-let addPath = ()=>{//加个他们拍的路径
|
|
|
+let addPath1 = ()=>{//加个他们拍的路径
|
|
|
if(addedPath)return
|
|
|
let path = viewer.scene.measurements.find(e=>e.title == '行走路径')
|
|
|
|
|
@@ -2517,7 +2523,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
|
|
|
|
|
|
setTimeout(()=>{
|
|
|
- addPath()
|
|
|
+ addPath1()
|
|
|
},100)
|
|
|
|
|
|
return functions
|
|
@@ -2695,16 +2701,20 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
console.log('setLivePathDisplay',show)
|
|
|
livePathDisplay = show
|
|
|
viewer.scene.measurements.forEach(e=>{
|
|
|
- let show_ = e.isAnimate && show
|
|
|
- Potree.Utils.updateVisible(e,'live-display',show_)
|
|
|
+ if(e.type == 'Path' && e.isAnimate){
|
|
|
+ Potree.Utils.updateVisible(e,'live-display',show)
|
|
|
+ }
|
|
|
})
|
|
|
+ pathModels.forEach(e=>e.model && Potree.Utils.updateVisible(e.model,'live-display',show))
|
|
|
+ show && viewer.dispatchEvent('updateLivePath')
|
|
|
},
|
|
|
setHisPathDisplay(show){//在历史路径面板
|
|
|
console.log('setHisPathDisplay',show)
|
|
|
hisPathDisplay = show
|
|
|
viewer.scene.measurements.forEach(e=>{
|
|
|
- let show_ = !e.isAnimate && show
|
|
|
- Potree.Utils.updateVisible(e,'live-display',show_)
|
|
|
+ if(e.type == 'Path' && !e.isAnimate){
|
|
|
+ Potree.Utils.updateVisible(e,'history-display',show) //自己创建的也显示
|
|
|
+ }
|
|
|
})
|
|
|
},
|
|
|
startRecordPath(){//开始录制
|