xzw 5 ماه پیش
والد
کامیت
7438008ca7
3فایلهای تغییر یافته به همراه29 افزوده شده و 25 حذف شده
  1. 9 2
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 19 22
      src/sdk/cover/index.js

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

@@ -22503,6 +22503,7 @@
 	Utils.updateVisible = function (object, reason, ifShow) {
 	  var level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
 	  var type = arguments.length > 4 ? arguments[4] : undefined;
+	  var needRender = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
 	  //当所有加入的条件都不为false时才显示. reason='force'一般是强制、临时的
 	  if (!object.unvisibleReasons) object.unvisibleReasons = []; //如果length>0代表不可见
 	  if (!object.visibleReasons) object.visibleReasons = []; //在同级时,优先可见
@@ -22522,6 +22523,7 @@
 	        visible: shouldVisi,
 	        reason
 	      });
+	      needRender && viewer.dispatchEvent('content_changed');
 	    }
 	  };
 	  if (ifShow) {
@@ -75714,6 +75716,11 @@
 	        measure.setSelected(false); //隐藏edgelabel  
 	      }
 	    });
+	    viewer.tags.children.forEach(tag => {
+	      if (tag.root == model) {
+	        tag.titleLabel.updatePose();
+	      }
+	    });
 
 	    //反向求transformMatrix  参考Alignment.js   移动漫游点 
 	    if (model.isPointcloud && model.transformMatrix) {
@@ -91197,9 +91204,9 @@
 	      object.matrixWorldNeedsUpdate = true;
 	    }
 	    object.updateMatrixWorld();
-	    MergeEditor.getBoundCenter(object); //初始化       
-	    done && done(object, fileInfo_);
+	    MergeEditor.getBoundCenter(object); //初始化  
 	    fileInfo_.objLoader && (fileInfo_.objLoader.inUse = false);
+	    done && done(object, fileInfo_);
 	    this.dispatchEvent({
 	      type: 'modelLoaded',
 	      model: object

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 1
public/lib/potree/potree.js.map


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

@@ -982,7 +982,8 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                         //console.log('change pos', model.name, model.position.toArray())
                     }
                     if (!lastState.rotation || !model.rotation.equals(lastState.rotation)) {
-                        lastState.rotation = msg.rotation = model.rotation.clone()
+                        lastState.rotation = model.rotation.clone()   
+                        msg.rotation = model.rotation.toObject()
                     }
                     if (lastState.scale == void 0 || model.scale.x * 100 != lastState.scale) {
                         lastState.scale = msg.scale = model.scale.x * 100
@@ -1087,10 +1088,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                         Potree.Utils.updateVisible(model, 'datasetSelection', show)
                         if (model.panos) {
                             model.panos.forEach(e => e.setEnable(show))
-                        }
-
-
-                        viewer.dispatchEvent('content_changed')
+                        } 
                     }
                 },
                 changeSelect(state) {
@@ -1427,16 +1425,17 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
 
                         // 添加模型帧
                         addFrame(frame){
-                            let key = {time: frame.time}
+                            console.log('addFrame',frame)
+                            let key = {time: frame.time, dur:frame.duration}
                             let getData = (data)=>{
-                                return {
-                                    pos: new THREE.Vector3().copy(data.position),
-                                    scale: new THREE.Vector3().copy(data.scale),
-                                    qua: new THREE.Quaternion().copy(data.quaternion)
-                                }
+                                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)))
+                                return info
                             }
-                            Object.assign(key, getData(frame.mat)) 
-                            AnimationEditor.addKey(model, 'pose', getData(frame))
+                            //Object.assign(key, getData(frame.mat)) 
+                            AnimationEditor.addKey(model, 'pose', key )
                             return {
                                 destroy(){ 
                                     AnimationEditor.removeKey(model,'pose', key)
@@ -1451,7 +1450,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                             } 
                         },
                         addAction(frame){// 添加模型动作
-                        
+                            console.log('addAction',frame)
                             let key = Object.assign({},frame) 
                                 key.weight = key.amplitude
                                 key.actionIndex = model.actions.findIndex(e=>e.name == key.key)
@@ -1485,6 +1484,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                         },
 
                         addPath(frame){//走路路径
+                            console.log('addPath',frame)
                             let key = Object.assign({},frame) 
                                 key.path = key.path.path
                                 key.dur = key.duration
@@ -1513,13 +1513,13 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
   
                         }, 
  
-                        getCurrentMat(){// 获取当前时间改模型的姿态
+                        /* getCurrentMat(){// 获取当前时间改模型的姿态
                             return {
                                 quaternion: model.quaternion.clone(),
                                 scale: model.scale.clone(),
                                 position: model.position.clone()
                             } 
-                        },
+                        }, */
                         
                         
                         getCurrentSubtitlePixel({width , height}){// 获取当前模型旁白出现的适合位置,传入旁边dom的宽高,返回像素位置
@@ -1998,8 +1998,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                 },
                 visibility(v){// 标注可见性
                     //console.log('visibility', tag.title, v)
-                    Potree.Utils.updateVisible(tag,'user', v)
-                    viewer.dispatchEvent('content_changed')
+                    Potree.Utils.updateVisible(tag,'user', v) 
                 },
                 visibilityTitle(v){ 
                     tag.setTitleVisi(v, 'user')
@@ -2059,13 +2058,11 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
  
 
         showGrid() {
-            Potree.Utils.updateVisible(viewer.modules.MergeEditor.ground, 'hideGrid', true)
-            viewer.dispatchEvent('content_changed')
+            Potree.Utils.updateVisible(viewer.modules.MergeEditor.ground, 'hideGrid', true) 
         },
 
         hideGrid() {
-            Potree.Utils.updateVisible(viewer.modules.MergeEditor.ground, 'hideGrid', false)
-            viewer.dispatchEvent('content_changed')
+            Potree.Utils.updateVisible(viewer.modules.MergeEditor.ground, 'hideGrid', false) 
         },