xzw 5 月之前
父節點
當前提交
21cb6b79cd
共有 3 個文件被更改,包括 30 次插入14 次删除
  1. 14 7
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 15 6
      src/sdk/cover/index.js

+ 14 - 7
public/lib/potree/potree.js

@@ -81795,6 +81795,9 @@
 	  }
 	  at(time) {
 	    for (var [model, keys] of this.poseKeys) {
+	      /* keys = keys.filter(e=>e.pos && e.scale && e.qua)
+	      if(keys.length == 0)break */
+
 	      tweens.pos = new Tween$1(keys.map(e => e.time), keys.map(e => e.pos));
 	      tweens.qua = new Tween$1(keys.map(e => e.time), keys.map(e => e.qua));
 	      tweens.scale = new Tween$1(keys.map(e => e.time), keys.map(e => e.scale));
@@ -81847,8 +81850,7 @@
 	      /* let key = keys.find(key=>key.time < time && key.time + key.dur > time) 
 	      let action = key?.action
 	      //console.log(time, inKey?.action._clip.name)
-	      
-	      
+	       
 	      model.actions.forEach(act=>{//pause others
 	          act != action && (act.stop())
 	      })
@@ -81878,13 +81880,15 @@
 	          /* let dirAve = new THREE.Vector3
 	          this.camFollowObject.forEach(model=>{
 	              dirAve.add(dir.clone().applyQuaternion(model.quaternion))
-	          })
-	           */
+	          }) */
 	          viewer.modules.MergeEditor.focusOn(this.camFollowObject, 0, true /* ,false,dirAve */);
 	        }
 	      }
 	    }
-	    this.dispatchEvent('atTime', time);
+	    this.dispatchEvent({
+	      type: 'atTime',
+	      time
+	    });
 	  }
 	  play() {
 	    var {
@@ -81940,6 +81944,9 @@
 	    for (var [_model3, _keys4] of this.clipKeys) {
 	      maxTime = Math.max(maxTime, _keys4[_keys4.length - 1].time + _keys4[_keys4.length - 1].dur);
 	    }
+	    for (var [_model4, _keys5] of this.pathKeys) {
+	      maxTime = Math.max(maxTime, _keys5[_keys5.length - 1].time + _keys5[_keys5.length - 1].dur);
+	    }
 	    this.duration = maxTime; //不算开始和结束动画的过渡时间的话
 
 	    /* for(let [model, keys] of this.clipKeys){
@@ -81974,8 +81981,8 @@
 	    for (var [model, keys] of this.clipKeys) {
 	      _loop2(model);
 	    }
-	    for (var [_model4, _keys5] of this.poseKeys) {
-	      data.poseKeys[_model4.name] = _keys5.map(key => {
+	    for (var [_model5, _keys6] of this.poseKeys) {
+	      data.poseKeys[_model5.name] = _keys6.map(key => {
 	        return {
 	          qua: key.qua.toArray(),
 	          pos: key.pos.toArray(),

File diff suppressed because it is too large
+ 1 - 1
public/lib/potree/potree.js.map


+ 15 - 6
src/sdk/cover/index.js

@@ -1145,7 +1145,14 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                     //} 
                     model.dispatchEvent({ type: 'rotation_changed' , by2d:true})
                 },
-
+                getModelPose(){
+                    return {
+                        position: model.position.clone(),
+                        rotation: model.rotation.toObject(),
+                        quaternion: model.quaternion.toObject(),
+                        scale: model.scale.x * 100
+                    }
+                },
                 enterRotateMode() {
                     if (model) {
                         if (MergeEditor.split) {//分屏校准
@@ -1214,7 +1221,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                         updateMap()
                     }
                 },
-
+                
                 enterScaleSet() {//设置比例
                     let bus = new mitt()
                     let length, measureBuilded;
@@ -1345,7 +1352,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
             
             
             AnimationEditor.addEventListener('atTime',e=>{//发送当前动画时间,同步字幕
-                let time = THREE.Math.clamp(e.time, 0, AnimationEditor.duration)
+                let time = /* THREE.Math.clamp( */e.time/* , 0, AnimationEditor.duration) */
                 bus.emit('currentTime',time)
             })
             
@@ -1426,15 +1433,16 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                         // 添加模型帧
                         addFrame(frame){
                             console.log('addFrame',frame)
-                            let key = {time: frame.time, dur:frame.duration}
+                            let key = {time: frame.time }
                             let getData = (data)=>{
                                 let info = {}
                                 data.position && (info.pos = new THREE.Vector3().copy(data.position))
                                 data.scale != void 0 && (info.scale = new THREE.Vector3(data.scale/100,data.scale/100,data.scale/100))
-                                data.rotation && (info.qua = new THREE.Quaternion().setFromEuler(new THREE.Euler().setFromVector3(data.rotation)))
+                                //data.rotation && (info.qua = new THREE.Quaternion().setFromEuler(new THREE.Euler().setFromVector3(data.rotation)))
+                                data.quaternion && (info.qua = new THREE.Quaternion().copy(data.quaternion))
                                 return info
                             }
-                            //Object.assign(key, getData(frame.mat)) 
+                            Object.assign(key, getData(frame.mat)) 
                             AnimationEditor.addKey(model, 'pose', key )
                             return {
                                 destroy(){ 
@@ -1445,6 +1453,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                                     AnimationEditor.reOrderKey(model, 'pose', key)
                                 },
                                 setMat(data){//设置帧
+                                    console.log('设置帧',data.scale)
                                     Object.assign(key,getData(data)) 
                                 }
                             }