xzw před 9 měsíci
rodič
revize
e2d5267798
2 změnil soubory, kde provedl 14 přidání a 10 odebrání
  1. 6 9
      src/custom/objects/Monitor.js
  2. 8 1
      src/custom/utils/transitions.js

+ 6 - 9
src/custom/objects/Monitor.js

@@ -145,11 +145,9 @@ export default class Monitor extends THREE.Object3D{
         
         
         {
-            
-            let offset = new THREE.Vector3  
-            if(model.fileType == '3dTiles'){    
-                offset.fromArray(model.runtime.getTileset().tileset.root.boundingVolume.box.slice(0,3))//必须要平移一段才能重合 
-                //offset.copy(Potree.math.convertVector.ZupToYup(offset))
+             
+            let getVecFromData = (vec)=>{//应该主要是3dtiles要转换  
+                return  Potree.math.convertVector.YupToZup(vec).applyMatrix4(model.posRot1MatrixInvert) 
             }
             
              
@@ -157,13 +155,12 @@ export default class Monitor extends THREE.Object3D{
             this.posOffset = new THREE.Vector3(parseFloat(data.data['posOffset-x']), parseFloat(data.data['posOffset-y']), parseFloat(data.data['posOffset-z'])),
             
             // data.position && this.position.copy(data.position)
-            this.position.copy(this.posOri).add(this.posOffset).sub(offset)
-
+            this.position.copy(this.posOri).add(this.posOffset) 
+            this.position.copy(getVecFromData(this.position))
  
             // target的优先级大于rotation
             if (data.target) {
-                this.target = data.data.target
-                this.target.sub(offset)
+                this.target = getVecFromData(data.data.target) 
                 this.lookAt(data.target)
             } else {
                 data.data.rotation && this.quaternion.setFromEuler(data.data.rotation)

+ 8 - 1
src/custom/utils/transitions.js

@@ -328,7 +328,14 @@ var lerp = {
                 e(t)
             })
         }
-    }
+    },
+    color: function (e, t, f) {
+        var i = e.clone()
+        return function (n) {
+            e.copy(i).lerp(t, n)
+            f && f(e, n)
+        }
+    },
 };