xzw 2 місяців тому
батько
коміт
149646ab82
2 змінених файлів з 36 додано та 16 видалено
  1. 35 15
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map

+ 35 - 15
public/lib/potree/potree.js

@@ -25015,12 +25015,12 @@
 	        //设置下默认经纬度位置,当点击恢复默认时要恢复到此位置
 
 	        if (!model.isPointcloud) {
-	          var _prop$raw;
+	          var _prop$raw, _prop$raw2, _prop$raw3;
 	          //有经纬度    3dtiles
 	          prop.baseRotation && model.rotation.copy(prop.baseRotation); //有的需要翻转90度 
 
-	          if ((_prop$raw = prop.raw) !== null && _prop$raw !== void 0 && _prop$raw.convertType) {
-	            //带坐标的osgb,原本给cesium用的,把在球面的转为平面的坐标
+	          if ((_prop$raw = prop.raw) !== null && _prop$raw !== void 0 && _prop$raw.convertType && model.fileType == '3dtiles' && ((_prop$raw2 = prop.raw) !== null && _prop$raw2 !== void 0 && _prop$raw2.wgs84 || (_prop$raw3 = prop.raw) !== null && _prop$raw3 !== void 0 && _prop$raw3.gcj02)) {
+	            //新的软件转出的带坐标的osgb,原本给cesium用的,把在球面的转为平面的坐标
 
 	            var center = new Vector3().fromArray(model.runtime.getTileset().tileset.root.transform.slice(12, 15));
 	            var pos = math.fromCes(center);
@@ -25030,8 +25030,8 @@
 
 	            model.hasLonLat = true;
 	          } else {
-	            var _prop$raw2;
-	            var lonlat = /* prop.raw?.wgs84 ||  */(_prop$raw2 = prop.raw) === null || _prop$raw2 === void 0 ? void 0 : _prop$raw2.rtkLocation; //前者为素材库的osgb的
+	            var _prop$raw4;
+	            var lonlat = /* prop.raw?.wgs84 ||  */(_prop$raw4 = prop.raw) === null || _prop$raw4 === void 0 ? void 0 : _prop$raw4.rtkLocation; //前者为素材库的osgb的
 	            if (lonlat) {
 	              var locationLonLat = lonlat.split(',').map(e => parseFloat(e));
 	              var location = new Vector3().fromArray(viewer.transform.lonlatToLocal.forward(locationLonLat));
@@ -25053,9 +25053,9 @@
 	                  model.position.add(location);
 	                }
 	              } else {
-	                var _prop$raw3;
+	                var _prop$raw5;
 	                MergeEditor.moveBoundCenterTo(model, location);
-	                if ((_prop$raw3 = prop.raw) !== null && _prop$raw3 !== void 0 && _prop$raw3.orientation) {
+	                if ((_prop$raw5 = prop.raw) !== null && _prop$raw5 !== void 0 && _prop$raw5.orientation) {
 	                  model.rotation.y = parseFloat(prop.raw.orientation);
 	                }
 	                if (prop.is4dkkModel) {
@@ -50699,10 +50699,11 @@
 	        var sideVec = void 0; //该点两边对应的向量
 	        var uvX = void 0;
 	        if (i == 0 || i == count - 1) {
-	          sideVec = new Vector3().copy(math.getNormal2d({
+	          var nor = math.getNormal2d({
 	            p1: i == 0 ? B : O,
 	            p2: i == 0 ? O : A
-	          })).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
+	          }) || new Vector3(1, 0, 0);
+	          sideVec = new Vector3().copy(nor).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
 	          uvX = i == 0 ? 0 : 1; //percent of length 
 	        } else {
 	          var OA = new Vector3().subVectors(A, O).setZ(0).normalize(); //只保证俯视角度正确。(如果两点有高度差,该段四个点不会在同一平面,看起来有扭转,有的地方会肥大,但从俯视角度看是正确的。)
@@ -50710,10 +50711,11 @@
 	          var angle = math.getAngle(OA, OB, 'z');
 	          if (math.closeTo(angle, 0, 1e-4) || math.closeTo(angle, Math.PI, 1e-4) || math.closeTo(angle, -Math.PI, 1e-4)) {
 	            //这时候直接加两个向量算出的平分线不准,故直接找垂线
-	            sideVec = new Vector3().copy(math.getNormal2d({
+	            var _nor = math.getNormal2d({
 	              p1: O,
 	              p2: A
-	            })).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
+	            }) || new Vector3(1, 0, 0);
+	            sideVec = new Vector3().copy(_nor).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
 	            //console.log('接近0或180',angle, sideVec)
 	          } else {
 	            var midVecLength = this.halfPathWidth / Math.sin(angle / 2);
@@ -87718,7 +87720,7 @@
 	              this.dispatchEvent('content_changed'); //渲染 尤其vpn访问google网速慢需要
 	            }, 1000);
 	          });
-	          this.map3d.sceneGroup.position.z = -20;
+	          this.map3d.sceneGroup.position.z = -0.1;
 	          this.addEventListener('setLonlat', e => {
 	            this.map3d.disabled = false;
 	            Potree.settings.cameraFar = 80000000;
@@ -93214,10 +93216,11 @@
 	              var angle = radSegments * i;
 	              circlePts.push(new Vector2(radius * Math.cos(angle), radius * Math.sin(angle)));
 	            }
-	            var mat = new MeshStandardMaterial({
+
+	            //var mat = new THREE.MeshStandardMaterial({color,   /* wireframe:true,   depthTest:false,*/  roughness:0.9,metalness:0.3}) 
+	            var mat = new DepthBasicMaterial({
 	              color,
-	              /* wireframe:true,   depthTest:false,*/roughness: 0.9,
-	              metalness: 0.3
+	              useDepth: false
 	            });
 	            var linePath = path.map(e => {
 	              e instanceof Array && (e = new Vector3().fromArray(e));
@@ -93252,6 +93255,23 @@
 	                Potree.Utils.updateVisible(mesh, 'isInEntity', e.entity && e.entity.name == visiEntity);
 	              });
 	            }
+	            {
+	              mat.defines.mapOverlay = true;
+	              var map = new TextureLoader().load(Potree.resourcePath + '/textures/rectangle.png', () => {
+	                viewer.dispatchEvent('content_changed');
+	              });
+	              mat.uniforms.mapColor.value.set('#f00');
+	              map.anisotropy = 2;
+	              map.wrapS = RepeatWrapping;
+	              map.wrapT = RepeatWrapping;
+	              /* map.repeat.set(10,1.3)  
+	              map.offset.set(0,-0.15) */
+	              mat.map = map;
+
+	              //mat.map.repeat.x = Math.round(this.totalLength / this.halfPathWidth * 0.5) * (this.reverse ? -1 : 1)
+	              mat.map.needsUpdate = true;
+	              mat.setUV();
+	            }
 	          }
 	          while (index < data.length) {
 	            addMesh(data[index]);

Різницю між файлами не показано, бо вона завелика
+ 1 - 1
public/lib/potree/potree.js.map