xzw 5 days ago
parent
commit
58bc099b78
1 changed files with 27 additions and 22 deletions
  1. 27 22
      src/sdk/cover/index.js

+ 27 - 22
src/sdk/cover/index.js

@@ -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)