|
@@ -7,7 +7,7 @@ export const enter = (dom, isLocal) => {
|
|
|
|
|
|
Potree.settings.isOfficial = true //标记为正式、非测试版本
|
|
|
//Potree.fileServer = axios
|
|
|
- Potree.settings.libsUrl = isLocal ? './lib/' : '../lib/' //local的话只有从本地那个页面进入才能访问
|
|
|
+ Potree.settings.libsUrl = /* isLocal ? './lib/' : */ '../lib/' //local的话只有从本地那个页面进入才能访问
|
|
|
|
|
|
Potree.settings.notAdditiveBlending = true
|
|
|
|
|
@@ -60,14 +60,14 @@ export const enter = (dom, isLocal) => {
|
|
|
if(hopeModelId != void 0){//隐藏其他的模型
|
|
|
let models = MergeEditor.getAllObjects()
|
|
|
models.forEach(model=>{
|
|
|
- viewer.updateVisible(model, 'forPick', model.dataset_id == hopeModelId)
|
|
|
+ Potree.Utils.updateVisible(model, 'forPick', model.dataset_id == hopeModelId)
|
|
|
})
|
|
|
}
|
|
|
let intersect2 = Handler.onMouseMove(pos2d)
|
|
|
if(hopeModelId != void 0){//恢复
|
|
|
let models = MergeEditor.getAllObjects()
|
|
|
models.forEach(model=>{
|
|
|
- viewer.updateVisible(model, 'forPick', true)
|
|
|
+ Potree.Utils.updateVisible(model, 'forPick', true)
|
|
|
})
|
|
|
}
|
|
|
if(intersect2 && intersect2.location){
|
|
@@ -133,21 +133,22 @@ export const enter = (dom, isLocal) => {
|
|
|
|
|
|
screenshot: (width, height) => {
|
|
|
//截图
|
|
|
- var promise = viewer.startScreenshot({ type: 'default' }, width, height)
|
|
|
- promise.done(() => {
|
|
|
-
|
|
|
+ var {getImagePromise, finishPromise} = viewer.startScreenshot({ type: 'default' }, width, height)
|
|
|
+ var deferred = $.Deferred();
|
|
|
+ finishPromise.done(({dataUrl}) => {
|
|
|
+ deferred.resolve(dataUrl)
|
|
|
})
|
|
|
- return promise
|
|
|
+ return deferred.promise()
|
|
|
},
|
|
|
getPose() {//获取当前点位和朝向
|
|
|
const camera = viewer.scene.getActiveCamera()
|
|
|
const target = viewer.scene.view.getPivot().clone()
|
|
|
const position = viewer.scene.view.position.clone()
|
|
|
- console.log('getPose',position, target)
|
|
|
+ //console.log('getPose',position, target)
|
|
|
return { position, target }
|
|
|
},
|
|
|
comeTo(o = {}) {
|
|
|
- console.log('comeTo',o.position, o.target)
|
|
|
+ //console.log('comeTo',o.position, o.target)
|
|
|
//飞到某个点
|
|
|
if(o.modelId){
|
|
|
['position','target'].forEach(e=>{
|
|
@@ -304,7 +305,7 @@ export const enter = (dom, isLocal) => {
|
|
|
}
|
|
|
*/
|
|
|
|
|
|
- console.log('enterSceneGuide',pathArr)
|
|
|
+ //console.log('enterSceneGuide',pathArr)
|
|
|
|
|
|
let data = {
|
|
|
duration: pathArr.slice(0,pathArr.length-1).reduce(function(total, currentValue ){return total+currentValue.time}, 0), //总时长(要去掉最后一个,因为已到终点,该点time无意义)
|
|
@@ -364,11 +365,18 @@ export const enter = (dom, isLocal) => {
|
|
|
|
|
|
addModel(props){
|
|
|
|
|
|
+
|
|
|
let bus = mitt()
|
|
|
//console.log('addModel',props)
|
|
|
props.isFirstLoad = props.bottom == void 0 //在编辑时用户添加的
|
|
|
if(props.opacity == void 0) props.opacity = 1
|
|
|
+ if(props.type == 'obj') props.type = 'glb'
|
|
|
props.scale /= 100
|
|
|
+ if(props.rotation){
|
|
|
+ if(props.rotation._x == void 0 && props.rotation.x != void 0){
|
|
|
+ props.rotation = new THREE.Euler().setFromVector3(props.rotation)
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
@@ -378,7 +386,7 @@ export const enter = (dom, isLocal) => {
|
|
|
let sizes = autoLoads.map(e=>e.size)
|
|
|
console.log('需要请求加载的模型大小为', sizes, '总大小', sizes.reduce(function(total, currentValue ){
|
|
|
let current = parseFloat(currentValue)
|
|
|
- return total + (currentValue.includes('M') ? current : current / 1024)
|
|
|
+ return total + ((typeof currentValue == 'number' || currentValue.includes('M')) ? current : current / 1024)
|
|
|
}, 0))
|
|
|
|
|
|
readyToAddModel = true //准备开始加载
|
|
@@ -386,6 +394,7 @@ export const enter = (dom, isLocal) => {
|
|
|
},30)
|
|
|
}
|
|
|
autoLoads.push(props)
|
|
|
+ readyToAddModel = false
|
|
|
}else{
|
|
|
readyToAddModel = true
|
|
|
}
|
|
@@ -399,7 +408,7 @@ export const enter = (dom, isLocal) => {
|
|
|
|
|
|
Potree.addModel(prop, prop.done , prop.progressFun, prop.onError)
|
|
|
prop.loading = true
|
|
|
- console.log('startLoad',getName(prop.url), prop )
|
|
|
+ console.log('-------开始加载 id:', prop.id, 'title:', prop.title, ', filename:', getName(prop.url), prop )
|
|
|
}
|
|
|
|
|
|
let spliceFromArr = (model,loaded)=>{
|
|
@@ -421,11 +430,12 @@ export const enter = (dom, isLocal) => {
|
|
|
//this.addModel(autoLoads[0])
|
|
|
}else if(autoLoads.filter(e=>!e.loadFinish).length == 0 && autoLoads.filter(e=>e.loaded).length>0 && !props.isFirstLoad){//设置相机位置:当自动开始加载第一个模型时(其余的也跟着自动加载),等这批加载完后;
|
|
|
let autoLoadsDone = autoLoads.filter(e=>e.loaded).map(e=>e.model)
|
|
|
- console.log('所有模型加载完毕')
|
|
|
- autoLoads.filter(e=>e.loaded && e.show).forEach(e=>e.visible = true)
|
|
|
+ console.
|
|
|
+ log('所有模型加载完毕')
|
|
|
+ autoLoads.filter(e=>e.loaded && e.show).forEach(e=>e.model.visible = true)
|
|
|
|
|
|
MergeEditor.focusOn(autoLoadsDone, 1000, true, true)
|
|
|
-
|
|
|
+ autoLoads.length = 0
|
|
|
|
|
|
}
|
|
|
}
|
|
@@ -464,15 +474,7 @@ export const enter = (dom, isLocal) => {
|
|
|
spliceFromArr(model,false)
|
|
|
}
|
|
|
|
|
|
- if(props.type == "glb"){////////////////////////////test
|
|
|
- if(props.url.includes('coffeemat')){
|
|
|
- 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'
|
|
|
- }
|
|
|
-
|
|
|
+
|
|
|
|
|
|
props.done = done; props.progressFun = progressFun; props.onError = onError
|
|
|
|
|
@@ -491,7 +493,8 @@ export const enter = (dom, isLocal) => {
|
|
|
changeShow(show){
|
|
|
props.show = show //for autoLoads show model
|
|
|
if(model){
|
|
|
- viewer.updateVisible(model, 'changeShow', show)
|
|
|
+ Potree.Utils.updateVisible(model, 'changeShow', show)
|
|
|
+ viewer.dispatchEvent('content_changed')
|
|
|
}
|
|
|
},
|
|
|
changeSelect(state){
|
|
@@ -549,6 +552,7 @@ export const enter = (dom, isLocal) => {
|
|
|
|
|
|
destroy(){
|
|
|
model && MergeEditor.removeModel(model)
|
|
|
+ viewer.dispatchEvent('content_changed')
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -569,7 +573,7 @@ export const enter = (dom, isLocal) => {
|
|
|
}
|
|
|
|
|
|
|
|
|
- console.log('版本: 2022.9.27-0')
|
|
|
+ console.log('版本: 2023.3.24-0')
|
|
|
|
|
|
return sdk
|
|
|
}
|