xzw 11 місяців тому
батько
коміт
599e54c378
1 змінених файлів з 31 додано та 17 видалено
  1. 31 17
      src/sdk/cover/index.js

+ 31 - 17
src/sdk/cover/index.js

@@ -473,11 +473,22 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
             return deferred.promise()
         },
         getPose() {//获取当前点位和朝向
+            
             const camera = viewer.scene.getActiveCamera()
             const target = viewer.scene.view.getPivot().clone()
             const position = viewer.scene.view.position.clone()
+            const pose = { position, target,  displayMode:Potree.settings.displayMode }
+            if(Potree.settings.displayMode == 'showPanos'){
+                pose.panoId = viewer.images360.currentPano.originID 
+                pose.model = viewer.images360.currentPano.pointcloud.result_
+                 
+                pose.posInModel = Potree.Utils.datasetPosTransform({ toDataset: true, position: camera.position.clone(), model:pose.model })
+                pose.rotInModel = Potree.Utils.datasetRotTransform({ toDataset: true, quaternion: camera.position.clone(), getQuaternion: true, model:pose.model }) //拿第一个数据集
+ 
+            }
+            
             //console.log('getPose',position, target)
-            return { position, target }
+            return pose
         },
         comeTo(o = {}) {
             //console.log('comeTo',o.position, o.target)
@@ -571,22 +582,25 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
             let editor = viewer.modules.CamAniEditor
             console.log('pathArr', pathArr)
 
-            /* type SceneGuidec = {
-              position: {x,y,z}
-              target: {x,y,z}
-              time: number
-              speed: number //没用到
-            } 
-            */
+          
 
             //console.log('enterSceneGuide',pathArr)
 
             let data = {
-                duration: pathArr.slice(0, pathArr.length - 1).reduce(function (total, currentValue) { return total + currentValue.time }, 0), //总时长(要去掉最后一个,因为已到终点,该点time无意义)
+                //duration: pathArr.slice(0, pathArr.length - 1).reduce(function (total, currentValue) { return total + currentValue.time }, 0), //总时长(要去掉最后一个,因为已到终点,该点time无意义)
                 points: pathArr,
                 useDurSlice: true
             }
-            let animation = editor.createAnimation(data)
+            
+            
+            data.pathArr.forEach(e=>{
+                if(e.inPano){
+                    e.model = e.model.model
+                }
+            })
+            let ani = editor.createMulAnimation(data)
+             
+             
             //注:最多只存在一条导览
 
 
@@ -594,11 +608,11 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
             let bus = mitt()
 
             //播放完成
-            animation.addEventListener('playDone', () => {
+            ani.event_.addEventListener('playDone', () => {
                 bus.emit('playComplete')
             })
             //切换点
-            animation.addEventListener('updateCurrentIndex', e => {
+            ani.event_.addEventListener('updateCurrentIndex', e => {
                 bus.emit('changePoint', e.currentIndex + 1)
             })
 
@@ -606,15 +620,14 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
                 bus,
                 play() {
                     MergeEditor.selectModel(null)
-                    animation.play()
+                    ani.play()
                 },
                 pause() {
-                    animation.pause()
+                    ani.pause()
                 },
 
-                clear() {
-                    //删除
-                    editor.removeAnimation(animation)
+                clear() { 
+                    ani.remove()
                 },
             }
 
@@ -773,6 +786,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
             let scaleMeasure
             let result = {
                 bus,
+                model,
                 getDefaultRotation,
 
                 supportPano() {  //是否支持全景图