xzw 4 месяцев назад
Родитель
Сommit
65b59f274e
3 измененных файлов с 15 добавлено и 8 удалено
  1. 8 5
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 6 2
      src/sdk/cover/index.js

+ 8 - 5
public/lib/potree/potree.js

@@ -20454,7 +20454,8 @@
 	    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
 	    super();
 	    var map = new Texture();
-	    map.minFilter = LinearMipmapNearestFilter;
+	    map.generateMipmaps = true;
+	    map.minFilter = LinearMipmapLinearFilter;
 	    map.magFilter = NearestFilter; //放大后可以很清晰
 
 	    this.sprite = new Sprite$2(Object.assign({
@@ -24906,9 +24907,7 @@
 
 	      if (prop.isFirstLoad) {
 	        if (model.hasLonLat || !moveModelWhenLoad) {
-	          setTimeout(() => {
-	            MergeEditor.focusOn(model);
-	          }, 1);
+	          //setTimeout(()=>{MergeEditor.focusOn(model)} , 1) //由2d控制
 	        } else {
 	          MergeEditor.moveBoundCenterTo(model, new Vector3(0, 0, 0));
 	        }
@@ -35341,7 +35340,7 @@
 	        var cos = dir.dot(vec2);
 	        //let result = (- dis1  - Math.pow(dis2 , 1.5)) / (cos + 2)  // cos+2是为了调整到1-3, 
 
-	        var result = (dis1 + dis2 * 0.3) * (-1 + cos * 0.9); //尽量贴近最佳位置的角度, 或贴近相机原来的角度 。尽量靠近最佳观测点,并且优先选择靠近目标点的位置.(注意cos的乘数不能太接近1,否则容易只考虑角度)
+	        var result = (dis1 + dis2 * 0.3) * (-1 + cos * 0.4); //尽量贴近最佳位置的角度, 或贴近相机原来的角度 。尽量靠近最佳观测点,并且优先选择靠近目标点的位置.(注意cos的乘数不能太接近1,否则容易只考虑角度)
 	        //Potree.Log(pano.id, dis1, dis2,  cos,  result,{font:{toFixed:2,fontSize:10}}) 
 
 	        return result;
@@ -82383,6 +82382,8 @@
 	//actions中可能包含没有动作的 如TPose
 
 	//包括无动画的模型在内的各项属性的过渡
+
+	var rot90Qua = new Quaternion().setFromAxisAngle(new Vector3(1, 0, 0), -Math.PI / 2);
 	class AnimationEditor extends EventDispatcher {
 	  constructor() {
 	    super();
@@ -82741,6 +82742,8 @@
 	      var _position2 = curve.getPointAt(percent2);
 	      quaternion = math.getQuaFromPosAim(position, _position2);
 	    }
+	    quaternion.multiplyQuaternions(quaternion, rot90Qua);
+
 	    //如果要将模型底部中心对准路径,需要先修改好模型scale ,然后boundingBox中心应用scale和qua, 加到position里
 	    //目前两个人物模型刚好模型pivot在脚底,如果是其他物体甚至直接用curve的朝向不太对,没有明确朝向。除非所有模型都保持上路径前的朝向
 	    //或者pos的z还用之前的

Разница между файлами не показана из-за своего большого размера
+ 1 - 1
public/lib/potree/potree.js.map


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

@@ -1548,6 +1548,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                         getSupportActions(){
                             return model.actions?.map(e=>{return {name:e._clip.name, duration:e._clip.duration}}) //model.actions?.map(e=>e._clip.name)
                         },
+                        
                         addAction(frame){// 添加模型动作
                             //console.log('addAction',frame)
                             let key = Object.assign({},frame) 
@@ -2195,7 +2196,10 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                 
                 getImageCenter(){  //热点在模型的本地坐标 
                     if(!tag.parent)return new THREE.Vector3
-                    return  tag.onMesh ? tag.position : tag.titleLabel.parent.getWorldPosition().applyMatrix4(tag.root.matrixWorld.clone().invert())      /* new THREE.Vector3().addVectors(tag.position, tag.titleLabel.parent.position)还要乘以scale */
+                     tag.titleLabel.sprite.update()
+                    let pos = tag.onMesh ? tag.position : tag.titleLabel.parent.position.clone().applyMatrix4(tag.matrixWorld).applyMatrix4(tag.root.matrixWorld.clone().invert()) 
+                    console.log(props.title, 'getImageCenter', pos.toArray(), tag.lineLength)
+                    return  pos
                      
                 },
              
@@ -2268,7 +2272,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                 
                 if(!props.dontFocus){
                     MergeEditor.focusOn(autoLoadsDone, 1000, true, true)
-                }
+                } 
                 
                 autoLoads.length = 0
             }