Browse Source

fix: offline fileServer

xzw 8 months ago
parent
commit
49fad5b08b
3 changed files with 34 additions and 12 deletions
  1. 13 10
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 20 1
      src/sdk/cover/index.js

+ 13 - 10
public/lib/potree/potree.js

@@ -42516,6 +42516,7 @@
 	      line.addEventListener('drag', e => {
 	      line.addEventListener('drag', e => {
 	        var _e$intersect;
 	        var _e$intersect;
 	        if (this.editEnable && (_e$intersect = e.intersect) !== null && _e$intersect !== void 0 && _e$intersect.location) {
 	        if (this.editEnable && (_e$intersect = e.intersect) !== null && _e$intersect !== void 0 && _e$intersect.location) {
+	          //一旦用户拖动了title,title就固定了,不再随着path居中
 	          this.updateTitlePos(e.intersect.location);
 	          this.updateTitlePos(e.intersect.location);
 	          this.dispatchEvent({
 	          this.dispatchEvent({
 	            type: 'titlePosChanged',
 	            type: 'titlePosChanged',
@@ -42706,23 +42707,25 @@
 	        var sideVec = void 0; //该点两边对应的向量
 	        var sideVec = void 0; //该点两边对应的向量
 	        if (i == 0 || i == len - 1) {
 	        if (i == 0 || i == len - 1) {
 	          sideVec = new Vector3().copy(math.getNormal2d({
 	          sideVec = new Vector3().copy(math.getNormal2d({
-	            p1: O,
-	            p2: A || B
+	            p1: i == 0 ? B : O,
+	            p2: i == 0 ? O : A
 	          })).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
 	          })).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
 	        } else {
 	        } else {
 	          var OA = new Vector3().subVectors(A, O).setZ(0).normalize();
 	          var OA = new Vector3().subVectors(A, O).setZ(0).normalize();
 	          var OB = new Vector3().subVectors(B, O).setZ(0).normalize();
 	          var OB = new Vector3().subVectors(B, O).setZ(0).normalize();
-	          var angle = Math.acos(MathUtils.clamp(OA.dot(OB), -1, 1)); //小于180度的那边的角度
+	          //let angle = Math.acos( THREE.Math.clamp( OA.dot( OB ) , - 1, 1 ) )//小于180度的那边的角度
+	          var angle = math.getAngle(OA, OB, 'z');
 	          var midVecLength = this.halfPathWidth / Math.sin(angle / 2);
 	          var midVecLength = this.halfPathWidth / Math.sin(angle / 2);
-	          sideVec = new Vector3().addVectors(OA, OB).normalize().multiplyScalar(midVecLength); //角平分线  
-	        }
-	        if (lastSideVec && sideVec.dot(lastSideVec) < 0) {
-	          sideVec.negate();
+	          sideVec = new Vector3().addVectors(OA, OB).normalize().multiplyScalar(midVecLength); //角平分线  ( 和上一个方向保持在同一侧,故而顺时针和逆时针方向不同  )
 	        }
 	        }
+
+	        /* if(lastSideVec && sideVec.dot(lastSideVec) < 0){//和上一个方向保持在同一侧
+	            sideVec.negate()
+	        } */
+
 	        var P1 = new Vector3().addVectors(O, sideVec);
 	        var P1 = new Vector3().addVectors(O, sideVec);
 	        var P2 = new Vector3().subVectors(O, sideVec);
 	        var P2 = new Vector3().subVectors(O, sideVec);
-	        posArr.push(P1, P2); //这两点的内外侧顺序不定 
-
+	        posArr.push(P1, P2);
 	        if (i < len - 1) {
 	        if (i < len - 1) {
 	          faceArr.push([i * 2, i * 2 + 1, i * 2 + 3], [i * 2, i * 2 + 3, i * 2 + 2]); //每一段两个三角形 013 032
 	          faceArr.push([i * 2, i * 2 + 1, i * 2 + 3], [i * 2, i * 2 + 3, i * 2 + 2]); //每一段两个三角形 013 032
 	        }
 	        }
@@ -42773,7 +42776,7 @@
 	      });
 	      });
 	    });
 	    });
 	    marker.addEventListener('click', e => {
 	    marker.addEventListener('click', e => {
-	      if (this.isNew) return;
+	      if (this.isNew || e.button !== MOUSE.LEFT) return;
 	      if (this.addOrRemovePoint) {
 	      if (this.addOrRemovePoint) {
 	        //点击删除点
 	        //点击删除点
 
 

File diff suppressed because it is too large
+ 1 - 1
public/lib/potree/potree.js.map


+ 20 - 1
src/sdk/cover/index.js

@@ -31,6 +31,22 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
         Potree.settings.urls.prefix = Potree.settings.urls.prefix7
         Potree.settings.urls.prefix = Potree.settings.urls.prefix7
         Potree.settings.webSite = 'datav1'
         Potree.settings.webSite = 'datav1'
     }
     }
+    if(window.offline){//离线版 
+        Potree.fileServer = {
+            get(url){
+                return new Promise(function(resolve,reject){
+                    let data = window.offlineData[url]
+                    if(data){
+                        resolve(data) 
+                    }else{
+                        console.error('没找到',url)
+                        reject()
+                    } 
+                })
+                
+            } 
+        }
+    }
     const mapBus = mitt(), sceneBus = mitt()
     const mapBus = mitt(), sceneBus = mitt()
 
 
 
 
@@ -1268,7 +1284,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
                 path = viewer.measuringTool.createMeasureFromData(info);
                 path = viewer.measuringTool.createMeasureFromData(info);
                 
                 
                 if(props.line.position) {
                 if(props.line.position) {
-                    let pos = Potree.Utils.datasetPosTransform({toDataset:true, position: props.line.position,  datasetId: props.line.modelId })
+                    let pos = Potree.Utils.datasetPosTransform({toDataset:true, position: props.line.position,  datasetId: props.line.modelId, reverse: props.reverseDirection, showArrows: props.showDirection})
                     path.updateTitlePos(pos) 
                     path.updateTitlePos(pos) 
                 }
                 }
                  
                  
@@ -1346,6 +1362,9 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
                     fadeFar = far 
                     fadeFar = far 
                     path.setFadeFar(( far== -1 || path.editEnable) ? null : far) //注意:编辑时显示全部
                     path.setFadeFar(( far== -1 || path.editEnable) ? null : far) //注意:编辑时显示全部
                 },
                 },
+                changeDirection(show,reverse){
+                    
+                },
                 createAni(tension){
                 createAni(tension){
                     let distance = path.getTotalDistance()
                     let distance = path.getTotalDistance()
                     let pathPoints = path.points.map(e=>e.clone().add(new THREE.Vector3(0,0,2))) //在地面之上一定高度
                     let pathPoints = path.points.map(e=>e.clone().add(new THREE.Vector3(0,0,2))) //在地面之上一定高度