浏览代码

Merge branch 'v1.2.0-ga' of http://192.168.0.115:3000/bill/fuse-code into v1.2.0-ga

bill 4 月之前
父节点
当前提交
ba24e1ca05
共有 3 个文件被更改,包括 47 次插入14 次删除
  1. 27 9
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 19 4
      src/sdk/cover/index.js

+ 27 - 9
public/lib/potree/potree.js

@@ -62182,6 +62182,7 @@
 	      this.highlight(false);
 	    });
 	    this.cameraModel.addEventListener('click', () => {
+	      if (viewer.scene.monitors.some(e => e.isWatching)) return;
 	      this.watch();
 	    });
 	  }
@@ -62238,6 +62239,10 @@
 	      },
 	      duration: 1000
 	    });
+	    viewer.dispatchEvent({
+	      type: 'exitWatchMonitor',
+	      monitor: this
+	    });
 	  }
 
 	  // 显示监控视频或显示投射体
@@ -62261,6 +62266,10 @@
 	      this.cylinder.bottom.material = this.normalMat;
 	      //this.cylinder.bottom.renderOrder = RenderOrder.visibleFloor
 	    }
+	    viewer.dispatchEvent({
+	      type: 'watchMonitor',
+	      monitor: this
+	    });
 	  }
 	  play() {
 	    //console.log('play monitor', this.sid, this.videoSrc)
@@ -74256,7 +74265,7 @@
 	    viewer.updateFpVisiDatasets();
 	    var mapViewport = viewer.mapViewer.viewports[0];
 	    this.SplitScreen.split({
-	      siteModel: true /* , viewports:[{name:'Top',viewport : mapViewport  }] */
+	      siteModel: true
 	    });
 	    viewer.viewports.forEach(e => {
 	      if (e.name != 'mapViewport') {
@@ -75743,12 +75752,14 @@
 	    }
 	  },
 	  removeModel(model) {
-	    var _model$panos;
+	    var _model$titleLabel, _model$panos;
 	    if (this.selected == model) this.selectModel(null);
 	    var dispose = e => {
 	      e.geometry && e.geometry.dispose();
 	      e.material && e.material.dispose();
 	    };
+	    model.skeletonHelper && model.add(model.skeletonHelper); //打包一起dispose
+	    (_model$titleLabel = model.titleLabel) === null || _model$titleLabel === void 0 || _model$titleLabel.dispose();
 	    if (model.isPointcloud) {
 	      dispose(model);
 	      viewer.scene.removePointCloud(model);
@@ -81988,7 +81999,7 @@
 	    this.removeKey(model, keyType, key);
 	    this.addKey(model, keyType, key);
 	  }
-	  at(time, delta) {
+	  at(time, delta, force) {
 	    var _this = this;
 	    this.dispatchEvent({
 	      type: 'atTime',
@@ -82002,7 +82013,7 @@
 	    }
 	    var maxTime = this.duration + maxClipFadeTime / 2;
 	    if (time >= maxTime) time = maxTime;
-	    if (this.time == time) return;
+	    if (this.time == time && !force) return;
 	    this.time = time; //真实值
 
 	    var transitionRatio = 0.05 * delta * 60; //渐变系数,越小缓动程度越高,越平滑 //假设标准帧率为60fps,当帧率低时(delta大时) 降低缓动。速度快时缓动太高会偏移路径
@@ -82188,10 +82199,11 @@
 	    this.playing && this.pause();
 	    var maxTime = this.duration + maxClipFadeTime / 2;
 	    this.playing = true;
+	    this.cursorTime = time;
 	    this.onUpdate = e => {
-	      time += e.delta;
-	      if (!Potree.settings.isOfficial && time >= maxTime) time = maxTime;
-	      this.at(time, e.delta);
+	      this.cursorTime += e.delta;
+	      if (!Potree.settings.isOfficial && time >= maxTime) this.cursorTime = maxTime;
+	      this.at(this.cursorTime, e.delta);
 	      if (!Potree.settings.isOfficial && time >= maxTime) {
 	        this.dispatchEvent('stop');
 	        this.pause();
@@ -82242,6 +82254,10 @@
 	    } */
 	  }
 
+	  /* removeModelCallback(model){
+	      this.poseKeys.get
+	  } */
+
 	  /////////////////////////////////
 
 	  addPoseKey() {
@@ -91542,6 +91558,9 @@
 
 	          boundingBox_.min.set(-radius, -radius, -radius);
 	          boundingBox_.max.set(radius, radius, radius);
+	          boundingBox_.translate(_center);
+
+	          //2025:很少有模型用这个,之前是哪个模型有的?目前看到cesium的模型有 'http://192.168.0.25/oss/manage/media-library/result/test/tileset.json',
 	        } else {
 	          return console.error('json boundingVolume 缺少信息');
 	        }
@@ -91712,10 +91731,9 @@
 	        var model = gltf.scene;
 	        if (gltf.animations.length) {
 	          var skeleton = new SkeletonHelper(model);
-	          //skeleton.visible = false; 
 	          viewer.scene.scene.add(skeleton);
 	          model.skeletonHelper = skeleton; //注意:不能覆盖model.skeleton,因其另有 */
-	          skeleton.material.opacity = 0.1;
+	          Potree.Utils.updateVisible(skeleton, 'hide', false); //skeleton.material.opacity = 0.1
 	          var mixer = new AnimationMixer(model);
 	          model.actions = [];
 	          gltf.animations.forEach(ani => {

文件差异内容过多而无法显示
+ 1 - 1
public/lib/potree/potree.js.map


+ 19 - 4
src/sdk/cover/index.js

@@ -277,6 +277,10 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
         sceneBus.emit('webglError', { msg: e.msg + memory })
     })
     viewer.compass.setAutoDisplay(true)
+ 
+    viewer.addEventListener('watchMonitor',()=>{
+        sceneBus.emit('watchMonitor')
+    })
 
     /* mapBus.on('visible', v => {
         //console.log('mapBus visible', v)
@@ -1376,15 +1380,17 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
             let funs = {
                 bus,
                 play(){
-                    //console.log('play')
+                    console.log('play ani,  time:', AnimationEditor.cursorTime)
                     AnimationEditor.play({time:AnimationEditor.cursorTime})
                 },
                 pause(){
-                    //console.log('pause')
+                    console.log('pause ani')
                     AnimationEditor.pause()
                 },
                 setCurrentTime(s){// 设置当前时间, 单位为秒 
-                    AnimationEditor.playing || AnimationEditor.at(s)
+                    
+                    (!AnimationEditor.playing || s == 0) && AnimationEditor.at(s) //除非s==0否则一定要先pause后才能设置时间
+                    console.log('setCurrentTime',s, AnimationEditor.playing, AnimationEditor.cursorTime)
                 }, 
                 addAnimationModel(data){// 添加动画模型
                    /*  title: string;   模型名称
@@ -1406,7 +1412,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                     
                     let modelFuns = sdk.addModel(prop)
                     
-                     
+                    
                     let visibleRange 
                     let updateVisiByRange = ()=>{//可见范围
                         let visi = true
@@ -1423,6 +1429,9 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                         MergeEditor.addTitleForModel(model)
                         model.addEventListener('transformChanged',updateVisiByRange)
                         model.result_ = result
+                        setTimeout(e=>{
+                           AnimationEditor.at(AnimationEditor.cursorTime || 0,null,true)  //计算下默认姿态
+                        },1)
                     }) 
                     
                     
@@ -1613,6 +1622,9 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                 },
                 
             }
+            
+             
+            
             return funs
             
             
@@ -2115,6 +2127,9 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
             Potree.Utils.updateVisible(viewer.modules.MergeEditor.ground, 'hideGrid', false) 
         },
         
+        exitWatchMonitor(){
+            viewer.scene.monitors.find(e=>e.isWatching).leave()
+        }
         
     }