xzw 5 ヶ月 前
コミット
f2281b5c87
3 ファイル変更260 行追加170 行削除
  1. 247 162
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 12 7
      src/sdk/cover/index.js

+ 247 - 162
public/lib/potree/potree.js

@@ -24714,6 +24714,7 @@
 	          model.dispatchEvent('transformChanged');
 	        };
 	        model.addEventListener('position_changed', () => {
+	          //要先发送position_changed再其他
 	          _updateBound();
 	          MergeEditor.getBoundCenter(model); //更新boundcenter
 
@@ -81648,8 +81649,8 @@
 	//有的动画,如小狗,进来如果不play停在第一帧,mesh会错,爪子在前面;但如果都停在第一帧,动作有可能很奇怪
 
 	var tweens = {};
-	var maxClipFadeTime = 0.6; //渐变时间 s
-
+	var maxClipFadeTime = 3.6; //渐变时间 s
+	var pathStates = new Map();
 	//actions中可能包含没有动作的 如TPose
 
 	//包括无动画的模型在内的各项属性的过渡
@@ -81671,146 +81672,116 @@
 	    }
 	    var index = keys.findIndex(e => e.time > key.time);
 	    if (index == -1) {
-	      index = 0;
+	      index = keys.length;
 	    }
 	    keys = [...keys.slice(0, index), key, ...keys.slice(index, keys.length)];
 	    this[keyType + 'Keys'].set(model, keys);
+	    this.updateTimeRange();
 	  }
 	  removeKey(model, keyType, key) {
 	    var keys = this[keyType + 'Keys'].get(model);
 	    if (!keys) return console.warn('removeKey没找到key');
 	    var index = keys.indexOf(key);
 	    index > -1 && keys.splice(index, 1);
+	    this.updateTimeRange();
 	  }
 	  reOrderKey(model, keyType, key) {
 	    this.removeKey(model, keyType, key);
 	    this.addKey(model, keyType, key);
 	  }
-
-	  /////////////////////////////////
-
-	  addPoseKey() {
-	    var {
-	      model,
-	      time,
-	      index
-	    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-	    /* if(replace){ 
-	        this.removeKey(model,'pose', index)
-	    } */
-	    var keys = this.poseKeys.get(model);
-	    if (!keys) {
-	      keys = [];
-	    }
-	    var key = {
-	      time,
-	      qua: model.quaternion.clone(),
-	      scale: model.scale.clone(),
-	      pos: model.position.clone()
-	    };
-	    if (index == void 0) index = keys.length;
-	    keys = [...keys.slice(0, index), key, ...keys.slice(index, keys.length)];
-	    this.poseKeys.set(model, keys);
-	    return key;
-	  }
-	  addClipKey() {
-	    var {
-	      model,
-	      time,
-	      index,
-	      dur,
-	      actionIndex,
-	      weight = 1,
-	      speed = 1 /* , replace  */
-	    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-	    /* if(replace){
-	        this.removeKey(model,'clip',index)
-	    } */
-	    var keys = this.clipKeys.get(model);
-	    if (!keys) {
-	      keys = [];
-	    }
-	    var key = {
-	      time,
-	      //startTime
-	      dur,
-	      action: model.actions[actionIndex],
-	      speed,
-	      weight
+	  at(time, delta) {
+	    var _this = this;
+	    if (time > this.duration + maxClipFadeTime / 2) return;
+	    var transitionRatio = 0.05 * delta * 60; //渐变系数,越小缓动程度越高,越平滑 //假设标准帧率为60fps,当帧率低时(delta大时) 降低缓动。速度快时缓动太高会偏移路径
+	    var _loop = function _loop() {
+	      var atPath; //是否在path中 至多只有一个 
+	      var fadeToPath; //是否在过渡到path中
+	      var fadeFromPath; //是否从path中过渡到下一pose
+	      //以上三个权重越来越小,但都比pose大
+	      keys.find(key => {
+	        if (key.path.points.length < 2) return;
+	        var startToFade = key.time - maxClipFadeTime / 2;
+	        var endFade = key.time + key.dur + maxClipFadeTime / 2;
+	        atPath = time >= key.time && time <= key.time + key.dur;
+	        if (atPath) {
+	          atPath = key; //找到一个就退出 
+	          return true;
+	        } else if (delta) {
+	          //有delta代表是播放时,要缓动,如果是点击时间轴到这一帧,就不缓动
+	          if (time > startToFade && time < key.time) {
+	            fadeToPath = key;
+	          } else if (!fadeToPath && time > key.time + key.dur && time < endFade) {
+	            fadeFromPath = key;
+	          }
+	        }
+	      });
+	      pathStates.set(model, {
+	        atPath,
+	        fadeToPath,
+	        fadeFromPath
+	      });
+	      if (atPath) {
+	        //沿着curve行走,目视curve前方  (参照CameraAnimationCurve,搜quaFromCurveTan)
+	        var percent = (time - atPath.time) / atPath.dur;
+	        var {
+	          position: _position,
+	          quaternion: _quaternion
+	        } = _this.getPoseAtPathKey(atPath, percent);
+	        model.position.copy(_position);
+	        _quaternion && model.quaternion.copy(_quaternion);
+	      } else if (fadeToPath) {
+	        var {
+	          position: _position2,
+	          quaternion: _quaternion2
+	        } = _this.getPoseAtPathKey(fadeToPath, 0);
+	        _quaternion2 && lerp.quaternion(model.quaternion, _quaternion2)(transitionRatio); //每次只改变一点点  
+	        lerp.vector(model.position, _position2)(transitionRatio);
+	      }
+	      if (atPath || fadeToPath) {
+	        model.dispatchEvent('position_changed'); //暂时都这么写,以后再判断是否真的改变了
+	        model.dispatchEvent('rotation_changed');
+	      }
 	    };
-	    if (index == void 0) index = keys.length;
-	    keys = [...keys.slice(0, index), key, ...keys.slice(index, keys.length)];
-	    this.clipKeys.set(model, keys);
-	  }
-	  addPathKey() {
-	    var {
-	      model,
-	      time,
-	      index,
-	      dur,
-	      path /* , replace */
-	    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-	    //what if path is deleted ? 
-	    /* if(replace){
-	        this.removeKey(model,'path',index)
-	    } */
-	    var keys = this.pathKeys.get(model);
-	    if (!keys) {
-	      keys = [];
+	    for (var [model, keys] of this.pathKeys) {
+	      _loop();
 	    }
-	    var key = {
-	      time,
-	      //startTime
-	      dur,
-	      path
-	    };
-	    if (index == void 0) index = keys.length;
-	    keys = [...keys.slice(0, index), key, ...keys.slice(index, keys.length)];
-	    this.pathKeys.set(model, keys);
-	  }
-	  addDescKey() {
-	    var {
-	      model,
-	      time,
-	      index,
-	      dur,
-	      desc /* , replace */
-	    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-	    /* if(replace){
-	        this.removeKey(model,'desc',index)
-	    }  */
-	    var keys = this.descKeys.get(model);
-	    if (!keys) {
-	      keys = [];
+	    for (var [_model, _keys] of this.poseKeys) {
+	      /* keys = keys.filter(e=>e.pos && e.scale && e.qua)*/
+	      if (_keys.length == 0) continue;
+	      var {
+	        atPath,
+	        fadeFromPath,
+	        fadeToPath
+	      } = pathStates.get(_model) || {};
+	      tweens.scale = new Tween$1(_keys.map(e => e.time), _keys.map(e => e.scale));
+	      _model.scale.copy(tweens.scale.lerp(time));
+	      if (!atPath && !fadeToPath) {
+	        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));
+	        var time_ = time;
+	        if (fadeFromPath) {
+	          //但如果开始播放时模型已经在fadeFromPath这个区间里,也是直接过渡过去
+	          time_ = fadeFromPath.time + fadeFromPath.dur + maxClipFadeTime / 2; //fadeTimeEnd
+	        }
+	        var position = tweens.pos.lerp(time_);
+	        var quaternion = tweens.qua.lerp(time_);
+	        if (fadeFromPath) {
+	          lerp.quaternion(_model.quaternion, quaternion)(transitionRatio); //每次只改变一点点  
+	          lerp.vector(_model.position, position)(transitionRatio);
+	        } else {
+	          _model.position.copy(position);
+	          _model.quaternion.copy(quaternion);
+	        }
+	      }
+	      _model.dispatchEvent('position_changed');
+	      _model.dispatchEvent('rotation_changed');
 	    }
-	    var key = {
-	      time,
-	      //startTime
-	      dur,
-	      desc
-	    };
-	    if (index == void 0) index = keys.length;
-	    keys = [...keys.slice(0, index), key, ...keys.slice(index, keys.length)];
-	    this.descKeys.set(model, keys);
-	  }
-	  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));
-	      model.position.copy(tweens.pos.lerp(time));
-	      model.quaternion.copy(tweens.qua.lerp(time));
-	      model.scale.copy(tweens.scale.lerp(time));
-	      model.dispatchEvent('position_changed'); //rotation_changed?//以后再写真的改变了才发送 
-	    }
-	    var _loop = function _loop(_keys) {
-	      var weights = _keys.map((key, i) => {
-	        var _keys2, _keys3;
-	        var fadeTimeStart = Math.min(maxClipFadeTime, key.dur, ((_keys2 = _keys[i - 1]) === null || _keys2 === void 0 ? void 0 : _keys2.dur) || maxClipFadeTime) / 2; //half
-	        var fadeTimeEnd = Math.min(maxClipFadeTime, key.dur, ((_keys3 = _keys[i + 1]) === null || _keys3 === void 0 ? void 0 : _keys3.dur) || maxClipFadeTime) / 2;
+	    var _loop2 = function _loop2(_keys2) {
+	      if (_keys2.length == 0) return 1; // continue
+	      var weights = _keys2.map((key, i) => {
+	        var _keys3, _keys4;
+	        var fadeTimeStart = Math.min(maxClipFadeTime, key.dur, ((_keys3 = _keys2[i - 1]) === null || _keys3 === void 0 ? void 0 : _keys3.dur) || maxClipFadeTime) / 2; //half of dur
+	        var fadeTimeEnd = Math.min(maxClipFadeTime, key.dur, ((_keys4 = _keys2[i + 1]) === null || _keys4 === void 0 ? void 0 : _keys4.dur) || maxClipFadeTime) / 2;
 	        var startTime1 = key.time - fadeTimeStart;
 	        var endTime1 = key.time + key.dur + fadeTimeEnd;
 	        if (time < startTime1 || time > endTime1) return 0; //out bound 
@@ -81826,14 +81797,14 @@
 	      }); //最多有两个>0的,在过渡, 且能保证两个是不同的action
 
 	      var animateActions = []; //在播的动作
-	      _keys.forEach((key, i) => {
+	      _keys2.forEach((key, i) => {
 	        weights[i] > 0 && !animateActions.includes(key.action) && animateActions.push(key.action);
 	      });
 
 	      //console.log(time, model.name, weights)
 
 	      var speed = 0;
-	      _keys.forEach((key, i) => {
+	      _keys2.forEach((key, i) => {
 	        if (animateActions.includes(key.action)) {
 	          var weight = weights[i] * key.weight;
 	          if (weight > 0) {
@@ -81845,7 +81816,7 @@
 	          key.action.stop();
 	        }
 	      });
-	      _model.mixer.timeScale = speed;
+	      _model2.mixer.timeScale = speed;
 
 	      /* let key = keys.find(key=>key.time < time && key.time + key.dur > time) 
 	      let action = key?.action
@@ -81861,8 +81832,8 @@
 	            //inKey.action.paused
 	      } */
 	    };
-	    for (var [_model, _keys] of this.clipKeys) {
-	      _loop(_keys);
+	    for (var [_model2, _keys2] of this.clipKeys) {
+	      if (_loop2(_keys2)) continue;
 	    }
 	    {
 	      if (this.camFollowObject) {
@@ -81871,11 +81842,11 @@
 
 	        if (this.camFollowObject.length == 1) {
 	          var dis = 4;
-	          var _model2 = this.camFollowObject[0];
-	          dir.multiplyScalar(dis).applyQuaternion(_model2.quaternion);
-	          var pos = new Vector3().addVectors(_model2.boundCenter, dir);
+	          var _model3 = this.camFollowObject[0];
+	          dir.multiplyScalar(dis).applyQuaternion(_model3.quaternion);
+	          var pos = new Vector3().addVectors(_model3.boundCenter, dir);
 	          viewer.mainViewport.view.position.copy(pos);
-	          viewer.mainViewport.view.lookAt(_model2.boundCenter);
+	          viewer.mainViewport.view.lookAt(_model3.boundCenter);
 	        } else {
 	          /* let dirAve = new THREE.Vector3
 	          this.camFollowObject.forEach(model=>{
@@ -81885,11 +81856,28 @@
 	        }
 	      }
 	    }
+	    viewer.dispatchEvent('content_changed');
+	    this.currentTime = time;
 	    this.dispatchEvent({
 	      type: 'atTime',
 	      time
 	    });
 	  }
+	  getPoseAtPathKey(key, percent) {
+	    var percent2 = percent + 0.001;
+	    var curve = key.path.curve.clone();
+	    if (key.reverse) curve.points.reverse();
+	    var position = curve.getPointAt(percent);
+	    var quaternion;
+	    if (percent2 <= 1) {
+	      var position2 = curve.getPointAt(percent2);
+	      quaternion = math.getQuaFromPosAim(position2, position);
+	    }
+	    return {
+	      position,
+	      quaternion
+	    };
+	  }
 	  play() {
 	    var {
 	      camFollowObject,
@@ -81900,15 +81888,13 @@
 	    this.updateTimeRange();
 	    this.setCameraFollow(camFollowObject);
 	    this.playing && this.pause();
-
-	    //this.at(this.time) //first frame maybe has pose
+	    var maxTime = this.duration + maxClipFadeTime / 2;
 	    this.playing = true;
 	    this.onUpdate = e => {
 	      this.time += e.delta;
-	      if (this.time > this.duration + maxClipFadeTime / 2) return this.pause();
-	      this.at(this.time);
-	      /* if ( this.sizeTween.times.length > 0 )
-	          this.size = this.sizeTween.lerp( this.age/this.deathAge ); */
+	      if (this.time >= maxTime) this.time = maxTime;
+	      this.at(this.time, e.delta);
+	      if (this.time >= maxTime) return this.pause();
 	    };
 	    viewer.addEventListener("update", this.onUpdate);
 	  }
@@ -81939,13 +81925,13 @@
 	  updateTimeRange() {
 	    var maxTime = 0;
 	    for (var [model, keys] of this.poseKeys) {
-	      maxTime = Math.max(maxTime, keys[keys.length - 1].time);
+	      keys.length > 0 && (maxTime = Math.max(maxTime, keys[keys.length - 1].time));
 	    }
-	    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.clipKeys) {
+	      _keys5.length > 0 && (maxTime = Math.max(maxTime, _keys5[_keys5.length - 1].time + _keys5[_keys5.length - 1].dur));
 	    }
-	    for (var [_model4, _keys5] of this.pathKeys) {
-	      maxTime = Math.max(maxTime, _keys5[_keys5.length - 1].time + _keys5[_keys5.length - 1].dur);
+	    for (var [_model5, _keys6] of this.pathKeys) {
+	      _keys6.length > 0 && (maxTime = Math.max(maxTime, _keys6[_keys6.length - 1].time + _keys6[_keys6.length - 1].dur));
 	    }
 	    this.duration = maxTime; //不算开始和结束动画的过渡时间的话
 
@@ -81954,20 +81940,119 @@
 	    } */
 	  }
 
-	  /* updatemaxClipFadeTime (){
-	      
-	      for(let [model, keys] of this.clipKeys){
-	           keys.forEach(key)
-	      }
-	  } */
+	  /////////////////////////////////
 
+	  addPoseKey() {
+	    var {
+	      model,
+	      time,
+	      index
+	    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+	    /* if(replace){ 
+	        this.removeKey(model,'pose', index)
+	    } */
+	    var keys = this.poseKeys.get(model);
+	    if (!keys) {
+	      keys = [];
+	    }
+	    var key = {
+	      time,
+	      qua: model.quaternion.clone(),
+	      scale: model.scale.clone(),
+	      pos: model.position.clone()
+	    };
+	    if (index == void 0) index = keys.length;
+	    keys = [...keys.slice(0, index), key, ...keys.slice(index, keys.length)];
+	    this.poseKeys.set(model, keys);
+	    return key;
+	  }
+	  addClipKey() {
+	    var {
+	      model,
+	      time,
+	      index,
+	      dur,
+	      actionIndex,
+	      weight = 1,
+	      speed = 1 /* , replace  */
+	    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+	    /* if(replace){
+	        this.removeKey(model,'clip',index)
+	    } */
+	    var keys = this.clipKeys.get(model);
+	    if (!keys) {
+	      keys = [];
+	    }
+	    var key = {
+	      time,
+	      //startTime
+	      dur,
+	      action: model.actions[actionIndex],
+	      speed,
+	      weight
+	    };
+	    if (index == void 0) index = keys.length;
+	    keys = [...keys.slice(0, index), key, ...keys.slice(index, keys.length)];
+	    this.clipKeys.set(model, keys);
+	  }
+	  addPathKey() {
+	    var {
+	      model,
+	      time,
+	      index,
+	      dur,
+	      path /* , replace */
+	    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+	    //what if path is deleted ? 
+	    /* if(replace){
+	        this.removeKey(model,'path',index)
+	    } */
+	    var keys = this.pathKeys.get(model);
+	    if (!keys) {
+	      keys = [];
+	    }
+	    var key = {
+	      time,
+	      //startTime
+	      dur,
+	      path
+	    };
+	    if (index == void 0) index = keys.length;
+	    keys = [...keys.slice(0, index), key, ...keys.slice(index, keys.length)];
+	    this.pathKeys.set(model, keys);
+	  }
+	  addDescKey() {
+	    var {
+	      model,
+	      time,
+	      index,
+	      dur,
+	      desc /* , replace */
+	    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+	    /* if(replace){
+	        this.removeKey(model,'desc',index)
+	    }  */
+	    var keys = this.descKeys.get(model);
+	    if (!keys) {
+	      keys = [];
+	    }
+	    var key = {
+	      time,
+	      //startTime
+	      dur,
+	      desc
+	    };
+	    if (index == void 0) index = keys.length;
+	    keys = [...keys.slice(0, index), key, ...keys.slice(index, keys.length)];
+	    this.descKeys.set(model, keys);
+	  }
 	  save() {
 	    //for test, 注意保证每个模型名字不同
 	    var data = {
 	      poseKeys: {},
 	      clipKeys: {}
 	    };
-	    var _loop2 = function _loop2(model) {
+	    var _loop3 = function _loop3(model) {
 	      data.clipKeys[model.name] = keys.map(key => {
 	        return {
 	          actionIndex: model.actions.indexOf(key.action),
@@ -81979,10 +82064,10 @@
 	      });
 	    };
 	    for (var [model, keys] of this.clipKeys) {
-	      _loop2(model);
+	      _loop3(model);
 	    }
-	    for (var [_model5, _keys6] of this.poseKeys) {
-	      data.poseKeys[_model5.name] = _keys6.map(key => {
+	    for (var [_model6, _keys7] of this.poseKeys) {
+	      data.poseKeys[_model6.name] = _keys7.map(key => {
 	        return {
 	          qua: key.qua.toArray(),
 	          pos: key.pos.toArray(),
@@ -81995,11 +82080,11 @@
 	    return data;
 	  }
 	  buildFromData(data) {
-	    var _this = this;
+	    var _this2 = this;
 	    if (typeof data == 'string') {
 	      data = JSON.parse(data);
 	    }
-	    var _loop3 = function _loop3(name) {
+	    var _loop4 = function _loop4(name) {
 	      var model = viewer.objs.children.find(e => e.name == name);
 	      if (!model) {
 	        console.warn('没找到pose模型', name);
@@ -82013,12 +82098,12 @@
 	          time: e.time
 	        };
 	      });
-	      _this.poseKeys.set(model, keys);
+	      _this2.poseKeys.set(model, keys);
 	    };
 	    for (var name in data.poseKeys) {
-	      if (_loop3(name)) continue;
+	      if (_loop4(name)) continue;
 	    }
-	    var _loop4 = function _loop4(_name) {
+	    var _loop5 = function _loop5(_name) {
 	      var model = viewer.objs.children.find(e => e.name == _name);
 	      if (!model) {
 	        console.warn('没找到clip模型', _name);
@@ -82033,10 +82118,10 @@
 	          speed: e.speed
 	        };
 	      });
-	      _this.clipKeys.set(model, keys);
+	      _this2.clipKeys.set(model, keys);
 	    };
 	    for (var _name in data.clipKeys) {
-	      if (_loop4(_name)) continue;
+	      if (_loop5(_name)) continue;
 	    }
 	  }
 	}

ファイルの差分が大きいため隠しています
+ 1 - 1
public/lib/potree/potree.js.map


+ 12 - 7
src/sdk/cover/index.js

@@ -1359,13 +1359,15 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
             let funs = {
                 bus,
                 play(){
-                    AnimationEditor.play()
+                    //console.log('play')
+                    AnimationEditor.play({time:AnimationEditor.currentTime})
                 },
                 pause(){
+                    //console.log('pause')
                     AnimationEditor.pause()
                 },
-                setCurrentTime(s){// 设置当前时间, 单位为秒
-                    AnimationEditor.at(s)
+                setCurrentTime(s){// 设置当前时间, 单位为秒 
+                    AnimationEditor.playing || AnimationEditor.at(s)
                 }, 
                 addAnimationModel(data){// 添加动画模型
                    /*  title: string;   模型名称
@@ -1449,11 +1451,12 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                                     AnimationEditor.removeKey(model,'pose', key)
                                 },
                                 changeTime(time){
+                                    if(time==key.time)return
                                     key.time = time
-                                    AnimationEditor.reOrderKey(model, 'pose', key)
+                                    AnimationEditor.reOrderKey(model, 'pose', key) 
                                 },
                                 setMat(data){//设置帧
-                                    console.log('设置帧',data.scale)
+                                    //console.log('设置帧',data.scale)
                                     Object.assign(key,getData(data)) 
                                 }
                             } 
@@ -1477,6 +1480,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                                     AnimationEditor.removeKey(model,'clip', key)
                                 },
                                 changeTime(time){
+                                    if(time==key.time)return
                                     key.time = time
                                     AnimationEditor.reOrderKey(model, 'clip', key)
                                 },
@@ -1506,6 +1510,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                                     AnimationEditor.removeKey(model, 'path', key)
                                 },
                                 changeTime(time){
+                                    if(time==key.time)return
                                     key.time = time
                                     AnimationEditor.reOrderKey(model, 'path', key)
                                 },
@@ -1701,12 +1706,12 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                                   Potree.Utils.datasetPosTransform({fromDataset:true, position: props.line.position,  datasetId: props.line.modelId })
                         path.updateTitlePos(pos) 
                     }else{
-                        console.log('path label pos 因模型被删而去除', info.title )
+                        //console.log('path label pos 因模型被删而去除', info.title )
                     } 
                 }
                 if(props.points.length < originPointCount ) {
                     path.dispatchEvent('createDone')
-                    console.log('path点因模型被删减少', info.title, originPointCount,'->',props.points.length)
+                    //console.log('path点因模型被删减少', info.title, originPointCount,'->',props.points.length)
                 }
                 
             }