xzw před 3 měsíci
rodič
revize
3870884d8b

+ 10 - 3
src/custom/modules/Animation/AnimationEditor.js

@@ -36,9 +36,7 @@ export default class AnimationEditor extends THREE.EventDispatcher{
         
         if(Potree.settings.isOfficial){
             viewer.modules.MergeEditor.bus.addEventListener('changeSelect',()=>{ 
-                let targetObject = viewer.modules.MergeEditor.selected
-                    targetObject = this.ifContainsModel(targetObject) ? targetObject : null
-                this.setCameraFollow(targetObject)  
+                this.updateCameraFollow() 
             })
         }
         
@@ -59,6 +57,9 @@ export default class AnimationEditor extends THREE.EventDispatcher{
         keys = [...keys.slice(0,index), key, ...keys.slice(index,keys.length)]
         this[keyType+'Keys'].set(model,keys)
         this.updateTimeRange()
+        
+        this.updateCameraFollow()
+        
     }
     
     removeKey(model, keyType, key  ){
@@ -481,6 +482,12 @@ export default class AnimationEditor extends THREE.EventDispatcher{
         
     }
     
+    updateCameraFollow(){
+        let targetObject = viewer.modules.MergeEditor.selected
+            targetObject = this.ifContainsModel(targetObject) ? targetObject : null
+        this.setCameraFollow(targetObject)  
+    }
+    
     
     updateTimeRange(){
         let maxTime = 0

+ 12 - 9
src/custom/objects/Tag.js

@@ -29,7 +29,7 @@ let texLoader = new THREE.TextureLoader()
 let lineMat, dragPointMat   
  
 const defaultLineLength = 1
-const defaultSpotScale = 0.35
+const SpotScale = 0.37
 
 const titleHeight = {uponSpot:0.1 }//title底部和spot顶端间隔
 
@@ -51,12 +51,11 @@ class Tag extends THREE.Shim.FollowRootObject{
         this.lineLength = o.lineLength != void 0 ? o.lineLength : defaultLineLength
         this.position.copy(o.position)
         this.normal = o.normal != void 0 ? o.normal : new THREE.Vector3(0,0, 1)
-         
-        
+       
         this.build(o)
         this.bindEvent()
         this.dragEnable = true 
-        
+        this.changeSpotScale(1) //init
     }
     
     set dragEnable(state){
@@ -79,7 +78,7 @@ class Tag extends THREE.Shim.FollowRootObject{
             transparent:true, 
         })))  
         this.spot.name = 'spot'
-        this.spot.scale.set(defaultSpotScale,defaultSpotScale,defaultSpotScale) 
+        this.spot.scale.set(SpotScale,SpotScale,SpotScale) 
         this.spot.renderOrder = this.spot.pickOrder = Potree.config.renderOrders.tag.spot; 
         Potree.settings.isOfficial || this.changeMap(Potree.resourcePath+'/textures/spot_default.png')
          
@@ -322,7 +321,7 @@ class Tag extends THREE.Shim.FollowRootObject{
             this.titleLabel.position.y = 0
             this.setNorQua() 
             this.spot.renderOrder = Potree.config.renderOrders.tag.onMesh.spot // 防止遮住线
-            this.line.renderOrder = Potree.config.renderOrders.tag.onMesh.line
+            this.line.renderOrder = Potree.config.renderOrders.tag.onMesh.line 
         }else{ 
             this.titleLabel.parent.add(this.spot) 
             this.updateTitlePos() 
@@ -330,8 +329,9 @@ class Tag extends THREE.Shim.FollowRootObject{
             this.spot.quaternion.set(0,0,0,1)//this.titleLabel.waitUpdate() 
             this.realFaceAngle = 0
             this.spot.renderOrder = Potree.config.renderOrders.tag.spot //还原
-            this.line.renderOrder = Potree.config.renderOrders.tag.line
+            this.line.renderOrder = Potree.config.renderOrders.tag.line 
         }
+        this.changeSpotScale()
         Potree.Utils.updateVisible(this.line,'hideTitle', !this.titleLabel.visible && onMesh ? false : true)
         this.updateDepthParams()
         viewer.dispatchEvent('content_changed')
@@ -394,10 +394,13 @@ class Tag extends THREE.Shim.FollowRootObject{
         viewer.dispatchEvent('content_changed')
     }
     
-    changeSpotScale(s){
-        s *= defaultSpotScale
+    changeSpotScale(s = this.spotScaleRatio){
+        this.spotScaleRatio = s
+        s *= SpotScale
+        this.onMesh && (s *= 0.3) //反馈过贴地变很大,只好调一下
         this.spot.scale.set(s,s,s)
         this.updateTitlePos()
+        
         viewer.dispatchEvent('content_changed')
     }
     

+ 3 - 2
src/custom/objects/tool/Path.js

@@ -568,8 +568,9 @@ export class Path extends ctrlPolygon{
                 let curve = this.curve = new THREE.CatmullRomCurve3(points, false    )  
                 curve.UtoTMapArr = [] //用于存储 getSpacedPoints得到的点对应points的百分比对应
                 let oldCount = count
-                count = Math.max(2, Math.round(this.getTotalDistance() * 200)),  points = curve.getSpacedPoints(count-1) //拆分为更密集的点
-        
+                count = THREE.Math.clamp(Math.round(this.getTotalDistance() * 200), 2, 100000 ),  points = curve.getSpacedPoints(count-1) //拆分为更密集的点
+                //count太多很卡住
+                
                 /* //window.arcLengthDivisions  && (curve.arcLengthDivisions = arcLengthDivisions) //默认200,但改为1也没变化呀
                 let oldCount = count 
                 //减少点数(拐弯的部分紧凑些,直线部分宽松些):