|
@@ -3,7 +3,7 @@ import mitt from 'mitt'
|
|
|
import axios from 'axios' //{ axios } from '@/api'
|
|
|
|
|
|
|
|
|
-export const enter = (dom) => {
|
|
|
+export const enter = (dom, isLocal) => {
|
|
|
|
|
|
Potree.settings.isOfficial = true //标记为正式、非测试版本
|
|
|
//Potree.fileServer = axios
|
|
@@ -25,8 +25,8 @@ export const enter = (dom) => {
|
|
|
window.THREE = THREE
|
|
|
|
|
|
let autoLoads = []
|
|
|
- let autoLoads2 = []
|
|
|
-
|
|
|
+ let autoLoadsDone = []
|
|
|
+
|
|
|
|
|
|
let sdk = {
|
|
|
sceneBus,
|
|
@@ -323,28 +323,42 @@ export const enter = (dom) => {
|
|
|
},
|
|
|
|
|
|
|
|
|
+ //scaleRange: { min, max }, opacityRange: { min, max }, bottomRange: { min, max } })
|
|
|
+
|
|
|
addModel(props){
|
|
|
let bus = mitt()
|
|
|
- console.log('addModel',props)
|
|
|
+ //console.log('addModel',props)
|
|
|
props.isFirstLoad = props.bottom == void 0 //在编辑时用户添加的
|
|
|
if(props.opacity == void 0) props.opacity = 1
|
|
|
-
|
|
|
-
|
|
|
+ props.scale /= 100
|
|
|
+ var oneByOne = !!isLocal;
|
|
|
+
|
|
|
if(!props.isFirstLoad){
|
|
|
autoLoads.push(props)
|
|
|
}
|
|
|
+
|
|
|
+ let startLoad = (prop)=>{
|
|
|
+ Potree.addModel(prop, prop.done , prop.progressFun, prop.onError)
|
|
|
+ console.log('startLoad', prop)
|
|
|
+ }
|
|
|
+
|
|
|
let spliceFromArr = (model,loaded)=>{
|
|
|
let index = autoLoads.indexOf(props)
|
|
|
if(index>-1){
|
|
|
autoLoads.splice(index,1)
|
|
|
+
|
|
|
if(loaded){
|
|
|
- autoLoads2.push(model)
|
|
|
- }
|
|
|
-
|
|
|
- if(autoLoads.length == 0){//设置相机位置:当自动开始加载第一个模型时(其余的也跟着自动加载),等这批加载完后;
|
|
|
- MergeEditor.focusOn(autoLoads2, 1000)
|
|
|
+ autoLoadsDone.push(model)
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(oneByOne && autoLoads[0]){
|
|
|
+ startLoad(autoLoads[0])
|
|
|
+
|
|
|
+ //this.addModel(autoLoads[0])
|
|
|
+ }else if(autoLoads.length == 0 && autoLoadsDone.length>0){//设置相机位置:当自动开始加载第一个模型时(其余的也跟着自动加载),等这批加载完后;
|
|
|
+ MergeEditor.focusOn(autoLoadsDone, 1000)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
let model
|
|
@@ -358,7 +372,7 @@ export const enter = (dom) => {
|
|
|
model.addEventListener('transformChanged',(e)=>{
|
|
|
bus.emit('transformChanged', {
|
|
|
position : model.position.clone(),
|
|
|
- scale: model.scale.x,
|
|
|
+ scale: model.scale.x * 100,
|
|
|
rotation: model.rotation.clone(),
|
|
|
bottom: model.btmHeight
|
|
|
})
|
|
@@ -375,7 +389,7 @@ export const enter = (dom) => {
|
|
|
let onError = function ( xhr ) {
|
|
|
bus.emit('loadError', xhr)
|
|
|
spliceFromArr(model,false)
|
|
|
- console.log('loadError!!!!!!!!!', props.url)
|
|
|
+ console.log('loadError!!!!!!!!!', props.url, props.size, xhr)
|
|
|
}
|
|
|
|
|
|
if(props.type == "glb"){////////////////////////////test
|
|
@@ -383,12 +397,19 @@ export const enter = (dom) => {
|
|
|
props.url = '/lib/potree/resources/models/glb/coffeemat.glb'
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+ //props.url += '5'
|
|
|
//props.url = 'http://localhost:5173/api/profile/datav1/1537680519838306304/data/glb/cloud_glb_24.glb'
|
|
|
}
|
|
|
-
|
|
|
|
|
|
- Potree.addModel(props, done , progressFun, onError)
|
|
|
+
|
|
|
+ props.done = done; props.progressFun = progressFun; props.onError = onError
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if(!oneByOne || autoLoads.length==1){
|
|
|
+ startLoad(props)
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
let result = {
|
|
|
bus,
|
|
@@ -407,6 +428,7 @@ export const enter = (dom) => {
|
|
|
},
|
|
|
changeScale(s){
|
|
|
if(model){
|
|
|
+ s /= 100
|
|
|
model.scale.set(s,s,s)
|
|
|
model.dispatchEvent("scale_changed")
|
|
|
}
|