xzw 3 年之前
父节点
当前提交
2786a1ddb5
共有 3 个文件被更改,包括 45 次插入20 次删除
  1. 14 6
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 30 13
      src/sdk/cover/index.js

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

@@ -63785,17 +63785,22 @@ void main() {
         Potree.addModel = function(prop, done, onprogress){ //加载模型
         Potree.addModel = function(prop, done, onprogress){ //加载模型
             let isFirstLoad = !prop.position; //在编辑时用户添加的
             let isFirstLoad = !prop.position; //在编辑时用户添加的
         
         
-            let loadDone = (model)=>{
-                modelEditing = model;
+            let loadDone = (model)=>{ 
                 if(isFirstLoad){
                 if(isFirstLoad){
+                    modelEditing = model;
                     MergeEditor.setModelBtmHeight(model, 0); //默认离地高度为0
                     MergeEditor.setModelBtmHeight(model, 0); //默认离地高度为0
                     viewer.addEventListener('global_mousemove', moveModel); 
                     viewer.addEventListener('global_mousemove', moveModel); 
                     viewer.addEventListener('global_click', confirmPos, 3);
                     viewer.addEventListener('global_click', confirmPos, 3);
+                }else {
+                    modelEditing = null;
                 }
                 }
                 model.updateMatrixWorld();
                 model.updateMatrixWorld();
                 viewer.updateModelBound();
                 viewer.updateModelBound();
                 
                 
-                done(modelEditing);
+                
+                model.boundCenter = model.boundingBox.getCenter(new Vector3);
+                
+                done(model);
             };
             };
         
         
             if(prop.type == 'laser'){
             if(prop.type == 'laser'){
@@ -63803,14 +63808,15 @@ void main() {
                     pointcloud.matrixAutoUpdate = true;
                     pointcloud.matrixAutoUpdate = true;
                     pointcloud.initialPosition = pointcloud.position.clone();
                     pointcloud.initialPosition = pointcloud.position.clone();
                     
                     
-                     
                     pointcloud.pos1MatrixInvert = new Matrix4().setPosition(pointcloud.initialPosition).invert();
                     pointcloud.pos1MatrixInvert = new Matrix4().setPosition(pointcloud.initialPosition).invert();
+                    
                     let maintainBtmZ = ()=>{
                     let maintainBtmZ = ()=>{
                         MergeEditor.setModelBtmHeight(object);
                         MergeEditor.setModelBtmHeight(object);
                         updateMatrix();
                         updateMatrix();
                     };
                     };
                     let updateMatrix = ()=>{ 
                     let updateMatrix = ()=>{ 
                         setMatrix(pointcloud); 
                         setMatrix(pointcloud); 
+                        pointcloud.dispatchEvent('transformChanged');
                     };
                     };
                     pointcloud.addEventListener('position_changed', updateMatrix );  
                     pointcloud.addEventListener('position_changed', updateMatrix );  
                     pointcloud.addEventListener("orientation_changed", maintainBtmZ );
                     pointcloud.addEventListener("orientation_changed", maintainBtmZ );
@@ -63858,6 +63864,8 @@ void main() {
                     let updateBound = ()=>{ 
                     let updateBound = ()=>{ 
                         object.updateMatrixWorld();
                         object.updateMatrixWorld();
                         viewer.updateModelBound();
                         viewer.updateModelBound();
+                        object.dispatchEvent('transformChanged');
+                        
                     };  
                     };  
                     let maintainBtmZ = ()=>{
                     let maintainBtmZ = ()=>{
                         MergeEditor.setModelBtmHeight(object);
                         MergeEditor.setModelBtmHeight(object);
@@ -115002,11 +115010,11 @@ ENDSEC
             else model.btmHeight = z;
             else model.btmHeight = z;
             
             
             model.updateMatrixWorld();
             model.updateMatrixWorld();
-            let boundingBox2 = model.boundingBox.clone().applyMatrix4(object.matrixWorld);
+            let boundingBox2 = model.boundingBox.clone().applyMatrix4(model.matrixWorld);
             let size = boundingBox2.getSize(new Vector3);
             let size = boundingBox2.getSize(new Vector3);
             let center = boundingBox2.getCenter(new Vector3);
             let center = boundingBox2.getCenter(new Vector3);
             
             
-            object.position.z = z + size.z / 2 - center.z; 
+            model.position.z = z + size.z / 2 - center.z; 
         }
         }
     };
     };
 
 

文件差异内容过多而无法显示
+ 1 - 1
public/lib/potree/potree.js.map


+ 30 - 13
src/sdk/cover/index.js

@@ -31,7 +31,16 @@ export const enter = (dom) => {
             model.addEventListener('changeSelect',(e)=>{
             model.addEventListener('changeSelect',(e)=>{
                 bus.emit('changeSelect',e.selected)
                 bus.emit('changeSelect',e.selected)
             }) 
             }) 
-            model.addEventListener('positionChanged',(e)=>{
+            model.addEventListener('transformChanged',(e)=>{
+                bus.emit('transformChanged', {
+                    position : model.position.clone(),
+                    scale: model.scale.x,
+                    rotation: model.rotation.clone(),
+                    bottom: model.btmHeight
+                })
+            })
+            
+            /* model.addEventListener('positionChanged',(e)=>{
                 bus.emit('positionChanged', e.position) //点云不是直接使用
                 bus.emit('positionChanged', e.position) //点云不是直接使用
             })
             })
             model.addEventListener('scaleChanged',(e)=>{
             model.addEventListener('scaleChanged',(e)=>{
@@ -42,7 +51,7 @@ export const enter = (dom) => {
             })
             })
             model.addEventListener('bottomChanged',(e)=>{
             model.addEventListener('bottomChanged',(e)=>{
                 bus.emit('bottomChanged', model.btmHeight)
                 bus.emit('bottomChanged', model.btmHeight)
-            })
+            }) */
             bus.emit('loadDone')
             bus.emit('loadDone')
             console.log('loadDone' )
             console.log('loadDone' )
         }
         }
@@ -56,27 +65,35 @@ export const enter = (dom) => {
         return { 
         return { 
             bus,
             bus,
             changeSelect(state){
             changeSelect(state){
-                MergeEditor.selectModel(model, state, true)
+                if(model){
+                    MergeEditor.selectModel(model, state, true)
+                }
             },
             },
             changeScale(s){
             changeScale(s){
-                model.scale.set(s,s,s)
-                model.dispatchEvent("scale_changed")
+                if(model){
+                    model.scale.set(s,s,s)
+                    model.dispatchEvent("scale_changed")
+                }
             },
             },
             changeOpacity(opacity){
             changeOpacity(opacity){
-                model.travese(e=>e.material.opacity = opacity)
+                model && model.travese(e=>e.material.opacity = opacity)
             },
             },
             changeBottom(z){
             changeBottom(z){
-                MergeEditor.setModelBtmHeight(z)
+                model && MergeEditor.setModelBtmHeight(model,z)
             },
             },
             enterRotateMode(){
             enterRotateMode(){
-                viewer.transformObject(model);
-                viewer.transformationTool.setModeEnable('rotate',true)
-                viewer.transformationTool.setModeEnable('translation',false)
+                if(model){
+                    viewer.transformObject(model);
+                    viewer.transformationTool.setModeEnable('rotate',true)
+                    viewer.transformationTool.setModeEnable('translation',false)
+                }
             }, 
             }, 
             enterMoveMode(){
             enterMoveMode(){
-                viewer.transformObject(model);
-                viewer.transformationTool.setModeEnable('rotate',false)
-                viewer.transformationTool.setModeEnable('translation',true)
+                if(model){
+                    viewer.transformObject(model);
+                    viewer.transformationTool.setModeEnable('rotate',false)
+                    viewer.transformationTool.setModeEnable('translation',true)
+                }
             },
             },
             /* leaveRotateMode(){
             /* leaveRotateMode(){