xzw před 7 měsíci
rodič
revize
2d0beff9b9
2 změnil soubory, kde provedl 9 přidání a 7 odebrání
  1. 8 6
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map

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

@@ -78278,6 +78278,7 @@
 	 *
 	 */
 	var standartMinRadius = 2;
+	window.camRatio = 1850;
 	class OrbitControls$1 extends EventDispatcher {
 	  constructor(viewer, viewport) {
 	    super();
@@ -78541,9 +78542,10 @@
 	          x,
 	          y
 	        } = Potree.Utils.getPointerPosAtHeight(0, viewer.inputHandler.pointer);
-	        I = new Vector3(x, y, 0); //地面交点
+	        I = new Vector3(x, y, 0); //地面交点(如果没有显示地面网格很可能模型跑到地面之下怎么办,ground不再是0的高度,怎么办。主要是测试时乱放模型。)
 	      }
-	      var dis = this.currentViewport.view.position.distanceTo(I);
+	      var vec = new Vector3().subVectors(I, this.currentViewport.view.position);
+	      var dis = vec.projectOnVector(this.currentViewport.view.direction).length();
 	      this.currentViewport.view.radius = dis;
 	      //console.log('radius',dis)
 	    }
@@ -78567,7 +78569,7 @@
 	  没有完美的方法,想象下,在bound外也有物体需要focusPoint, 如path, 此时虽然离bound很远但也需要小radius。
 	  而当转向朝bound飞去却很慢,虽然可以根据intersect提高minRadius来加速,但如果是focus一个四周都有模型的target,就会被intersect干扰,无法focus。
 	  
-	  现在存在的现象就是容易出现radius过小,游不到终点的情况,所以我让双击可以focus地面,通过这个办法攀到终点。
+	  现在存在的现象就是容易出现radius过小,游不到终点的情况,所以我让双击可以focus地面,通过这个办法攀到终点。另外drag时修改了radius,使跟手。但若不显示地面和地图,就很奇怪。
 	  *没办法直接更改radius,而是通过minRadius和maxRadius, 是因为情况太多了,直接更改不能满足所有情况,还会造成突变。
 	  *minRadius一般不超过standardMinRadius
 	  */
@@ -78629,11 +78631,11 @@
 	      /* let progression = Math.min(1, this.fadeFactor * delta);
 	      let panDistance = progression * view.radius * 3; */
 
-	      var panDistance = 2 * view.radius * Math.tan(MathUtils.degToRad(camera.fov / 2)) / 1850; //参照4dkk。 平移target(也就是平移镜头位置),但还是难以保证跟手(navvis也不一定跟手,但是很奇怪在居中时中心点居然是跟手的,可能计算方式不同)
+	      var panDistance = view.radius * Math.tan(MathUtils.degToRad(camera.fov / 2)); //参照4dkk。 平移target(也就是平移镜头位置),但还是难以保证跟手(navvis也不一定跟手,但是很奇怪在居中时中心点居然是跟手的,可能计算方式不同)
 	      //计算了下确实是这么算的。 平移pivot。  尽量跟手
 
-	      var _px = -this.panDelta.x * panDistance * this.renderer.domElement.clientWidth;
-	      var _py = this.panDelta.y * panDistance * this.renderer.domElement.clientHeight;
+	      var _px = -this.panDelta.x * panDistance * camera.aspect;
+	      var _py = this.panDelta.y * panDistance;
 	      view.pan(_px, _py);
 	    }
 	    {

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
public/lib/potree/potree.js.map