Browse Source

fix: Merge branch 'master' of http://192.168.0.115:3000/bill/fuse-code

# Conflicts:
#	src/sdk/cover/index.js
xzw 2 years ago
parent
commit
26382cda77

+ 34 - 18
public/lib/potree/potree.js

@@ -63893,21 +63893,7 @@ void main() {
                 if(prop.scale){
                     model.scale.set(prop.scale,prop.scale,prop.scale);
                 }
-                 
-                
-                if(prop.isFirstLoad){
-                    modelEditing = model;
-                    MergeEditor.moveBoundCenterTo(model, new Vector3(0,0,0));  
-                    MergeEditor.setModelBtmHeight(model, 0); //初始加载设置离地高度为0
-                    
-                    viewer.addEventListener('global_mousemove', moveModel); 
-                    viewer.addEventListener('global_click', confirmPos, 3);
-                }else {
-                    //MergeEditor.setModelBtmHeight(model, prop.bottom || 0) //默认离地高度为0
-                    modelEditing = null;
-                }
-                
-                
+                  
                 if(model.isPointcloud){
                     model.renderOrder = Potree.config.renderOrders.model;  //same as glb
                 }
@@ -63973,9 +63959,37 @@ void main() {
                 
                 MergeEditor.getBoundCenter(model); //初始化
                 model.lastMatrixWorld = model.matrixWorld.clone();
-                done(model);
+                
+                done(model); // 先发送成功,因为2d界面会随机执行changePosition等初始化,然后这边再将模型移到中心地面上
+                
+                
+                if(prop.isFirstLoad){
+                    
+                    MergeEditor.moveBoundCenterTo(model, new Vector3(0,0,0));  
+                    MergeEditor.setModelBtmHeight(model, 0); //初始加载设置离地高度为0
+                    
+                    if(prop.mode != 'query'){//如果不是模型展示页,模型会随着鼠标位置移动
+                        viewer.addEventListener('global_mousemove', moveModel); 
+                        viewer.addEventListener('global_click', confirmPos, 3);
+                        modelEditing = model;
+                    }
+                    model.dispatchEvent("position_changed"); 
+                }else {
+                    //MergeEditor.setModelBtmHeight(model, prop.bottom || 0) //默认离地高度为0
+                    modelEditing = null;
+                }
+                
+                
+                
+                
             };
             
+            
+            
+            
+            
+            
+            
             if(prop.type == 'glb'){
                 
                 
@@ -117992,7 +118006,9 @@ ENDSEC
             
             
             viewer.addEventListener('global_single_click',(e)=>{
-                if( viewer.scene.cameraAnimations.some(c=>c.onUpdate) //正在播放
+                if(
+                    this.noNeedSelection  //如模型查看页
+                    || viewer.scene.cameraAnimations.some(c=>c.onUpdate) //正在播放
                     || e.drag && e.drag.notPressMouse   //在加测量线
                     || viewer.mainViewport.view.isFlying() //有其他校准
                     || this.split           //分屏中
@@ -129397,7 +129413,7 @@ ENDSEC
                     if(object.material){  
                         this.updateVisible(object, 'renderOpa', 
                             (params.renderBeforeCloud && (object.material.opacity<1 || !object.material.depthTest) || (!params.renderBeforeCloud) && (object.material.opacity==1 && object.material.depthTest))? false:true); 
-                        //点云之前渲染的话隐藏半透明的, 点云之后渲染的话隐藏不透明的
+                        //点云之前渲染的话隐藏半透明的, 点云之后渲染的话隐藏不透明的。  depthTest==false的也最后渲染
                     } 
                 });
                 //ground的材质中opacity为1,所以被当做不透明了

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


+ 2 - 0
src/sdk/association.ts

@@ -42,6 +42,7 @@ import type {
   Measure as SceneMeasure 
 } from '.'
 import { SceneStatus } from '@/api'
+import { currentLayout, RoutesName } from '@/router'
 
 let isUnSet = false
 const unSet = ((fn: () => void) => {
@@ -86,6 +87,7 @@ const associationModels = (sdk: SDK) => {
         sceneModel = sdk.addModel({
           ...itemRaw,
           ...modelRange,
+          mode: [RoutesName.show, RoutesName.signModel].includes(currentLayout.value!) ? 'query' : 'edit',
           isDynamicAdded: dynamicAddedModelIds.value.some(id => itemRaw.id === id),
           type: item.type === SceneType.SWSS ? 'laser' : item.modelType,
           url: item.type === SceneType.SWSS ? item.url : getResource(item.url)

+ 15 - 3
src/sdk/cover/index.js

@@ -472,10 +472,12 @@ export const enter = (dom, isLocal) => {
         //scaleRange: { min, max }, opacityRange: { min, max }, bottomRange: { min, max } })
         
         addModel(props){ 
-             
+ 
+            //console.log(props.isDynamicAdded, props.mode)
+ 
             let bus = mitt()  
             //console.log('addModel',props)
-            props.isFirstLoad = isLocal ? props.bottom == void 0 : props.isDynamicAdded  //离地高度去掉了这怎么办 // //在编辑时用户添加的
+            props.isFirstLoad = isLocal ? props.bottom == void 0 : (props.isDynamicAdded || props.mode == 'query')  // 在编辑时用户添加的 或 展示单个模型 (props.mode='query'模型展示页, props.mode='edit'融合页)
             if(props.opacity == void 0)  props.opacity = 1 
             if(props.type == 'obj') props.type = 'glb'
             props.scale /= 100
@@ -496,7 +498,7 @@ export const enter = (dom, isLocal) => {
                 autoLoads.push(props)
                 readyToAddModel = false               
             }else{
-                readyToAddModel = true
+                readyToAddModel = true 
             }
              
             
@@ -560,6 +562,16 @@ export const enter = (dom, isLocal) => {
                     })
                 }) 
                 spliceFromArr(model,true)
+                
+                                
+                if(props.mode == 'query'){//模型查看页
+                    MergeEditor.noNeedSelection = true
+                    setTimeout(()=>{
+                        MergeEditor.focusOn([model], 1000, true, true)
+                    },1) 
+                }
+
+                
                 bus.emit('loadDone')
                 
                 //console.log('loadDone' )

+ 2 - 2
src/sdk/sdk.ts

@@ -49,7 +49,7 @@ export type ModelAttrRange = {
 
 export type AddModelProps = Pick<FuseModel, 'url' | 'id'> 
   & FuseModelAttrs 
-  & { type: string, isDynamicAdded: boolean }
+  & { type: string, isDynamicAdded: boolean, mode: 'edit' | 'query' }
   & ModelAttrRange
 
 
@@ -133,7 +133,7 @@ export const initialSDK = async (props: InialSDKProps) => {
   await Promise.all(libs.map(loadLib))
   await loadLib(`./lib/potree/potree.js`)
 
-  const localSdk = cover(props.layout, true) as unknown as SDK
+  const localSdk = cover(props.layout, false) as unknown as SDK
 
   sdk = localSdk
   sdk.layout = props.layout

+ 16 - 1
src/views/record/shot-imitate.vue

@@ -18,12 +18,26 @@ import {
   showLeftCtrlPanoStack, 
   showLeftPanoStack,
   showRightCtrlPanoStack,
-  showRightPanoStack
+  showRightPanoStack,
+showTaggingsStack
 } from '@/env'
+import {
+  initialScenes,
+  initialViews,
+  initialRecords,
+  initialFloders,
+  initialFloderTypes
+} from '@/store'
 
 import type { Component } from 'vue'
 import { currentModel } from '@/model';
 
+
+initialScenes(),
+initialViews(),
+initialFloders(),
+initialFloderTypes()
+
 const activeName = ref(RoutesName.summaryShow)
 const component = shallowRef<Component | null>(null)
 
@@ -70,6 +84,7 @@ useViewStack(() => {
   document.head.appendChild(style)
 
   return togetherCallback([
+    showTaggingsStack.push(ref(true)),
     showLeftCtrlPanoStack.push(ref(true)), 
     showLeftPanoStack.push(showLeftPano),
     showRightCtrlPanoStack.push(ref(true)),