|
@@ -35,11 +35,14 @@ export const enter = ({dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
Potree.settings.compassDom = dom.querySelector('#direction')
|
|
|
Potree.settings.showObjectsOnMap = true
|
|
|
Potree.settings.mergeType2 = true //标识新版
|
|
|
+ Potree.settings.modelSkybox = false //是否将全景图贴在模型上(会导致卡顿)。若不显示模型将不显示Reticule
|
|
|
+
|
|
|
+
|
|
|
|
|
|
let {THREE} = Potree.mergeEditStart(dom, mapDom)
|
|
|
let MergeEditor = viewer.modules.MergeEditor
|
|
|
Potree.settings.unableNavigate = false
|
|
|
- Potree.settings.showCesium = true
|
|
|
+ Potree.settings.showCesium = false
|
|
|
if(Potree.settings.showCesium){
|
|
|
|
|
|
viewer.backgroundOpacity = 0
|
|
@@ -91,7 +94,7 @@ export const enter = ({dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
if (e.viewport.name == 'MainView') {
|
|
|
sceneBus.emit('cameraChange', { x: pos.x, y: pos.y, z: pos.z, rotate: camera.rotation })
|
|
|
|
|
|
- if(Potree.settings.showCesium){
|
|
|
+ if(Potree.settings.showCesium && Potree.settings.displayMode == 'showPointCloud'){
|
|
|
|
|
|
let pPos = new THREE.Vector3(0, 0, 0).applyMatrix4(camera.matrixWorld);
|
|
|
let pRight = new THREE.Vector3(600, 0, 0).applyMatrix4(camera.matrixWorld);
|
|
@@ -340,7 +343,7 @@ export const enter = ({dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
viewer.removeEventListener('camera_changed', camera_changed)
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ let requestInPano = false
|
|
|
|
|
|
|
|
|
|
|
@@ -662,8 +665,12 @@ export const enter = ({dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
prop.maximumScreenSpaceError = 60
|
|
|
Potree.addModel(prop, prop.done , prop.progressFun, prop.onError)
|
|
|
prop.loading = true
|
|
|
- console.log('-------开始加载 id:', prop.id, 'title:', prop.title, ', filename:', Potree.Common.getNameFromURL(prop.url), prop )
|
|
|
- }
|
|
|
+
|
|
|
+ Potree.Log(`--开始加载--`, {
|
|
|
+ font: {color: '#f68' }
|
|
|
+ });
|
|
|
+ console.log('id:', prop.id, 'title:', prop.title, ', filename:', Potree.Common.getNameFromURL(prop.url), prop )
|
|
|
+ }
|
|
|
|
|
|
let spliceFromArr = (model,loaded)=>{
|
|
|
//let autoLoads.find()
|
|
@@ -784,33 +791,39 @@ export const enter = ({dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
return model.panos && model.panos.length > 0
|
|
|
},
|
|
|
flyInPano(){// 飞入全景图
|
|
|
- let pano = viewer.images360.findNearestPano(null,model.panos)
|
|
|
- if(pano){
|
|
|
+ requestInPano = model
|
|
|
+ let pano = viewer.images360.findNearestPano(null, model.panos)
|
|
|
+ if(pano){
|
|
|
viewer.removeEventListener('camera_changed', camera_changed)
|
|
|
viewer.images360.panos.forEach(pano=>{
|
|
|
pano.setEnable(pano.pointcloud == model )
|
|
|
})
|
|
|
viewer.setControls(viewer.fpControls)
|
|
|
- viewer.images360.flyToPano({pano, canCancelLast:true})
|
|
|
-
|
|
|
+ MergeEditor.transformControls.detach(model)
|
|
|
+ Potree.Utils.updateVisible(MergeEditor.boxHelper,'showPanos',false)
|
|
|
+
|
|
|
let changeVisi = (object)=>{
|
|
|
- Potree.Utils.updateVisible(object, 'showPanos', object == model)
|
|
|
+ Potree.Utils.updateVisible(object, 'showPanos', object == model && Potree.settings.modelSkybox )
|
|
|
}
|
|
|
+
|
|
|
|
|
|
+ let eventName = Potree.settings.displayMode != 'showPanos' ? 'endChangeMode' : 'flyToPanoDone'
|
|
|
+ viewer.images360.addEventListener(eventName,(e)=>{
|
|
|
+ if(Potree.settings.displayMode == 'showPanos' && requestInPano == model) {
|
|
|
+ //Potree.Utils.updateVisible(viewer.objs, 'showPanos', false)
|
|
|
+ viewer.objs.children.forEach(changeVisi)
|
|
|
+ }
|
|
|
+ },{once:true})
|
|
|
|
|
|
+ viewer.images360.flyToPano({pano, canCancelLast:true})
|
|
|
Potree.settings.displayMode = 'showPanos'
|
|
|
- MergeEditor.transformControls.detach(model)
|
|
|
- Potree.Utils.updateVisible(MergeEditor.boxHelper,'showPanos',false)
|
|
|
-
|
|
|
+
|
|
|
|
|
|
- viewer.images360.addEventListener('endChangeMode',()=>{
|
|
|
- //Potree.Utils.updateVisible(viewer.objs, 'showPanos', false)
|
|
|
- viewer.objs.children.forEach(changeVisi)
|
|
|
- },{once:true})
|
|
|
|
|
|
}
|
|
|
},
|
|
|
flyOutPano(){// 飞出全景图(就是切换到正常融合视角)
|
|
|
+ requestInPano = false
|
|
|
let panoPos = viewer.images360.position.clone()
|
|
|
//Potree.Utils.updateVisible(viewer.objs, 'showPanos', true)
|
|
|
let changeVisi = (object)=>{
|
|
@@ -820,10 +833,13 @@ export const enter = ({dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
viewer.images360.panos.forEach(pano=>{
|
|
|
pano.setEnable(true)
|
|
|
})
|
|
|
-
|
|
|
- Potree.settings.displayMode = 'showPointCloud'
|
|
|
- Potree.Utils.updateVisible(MergeEditor.boxHelper,'showPanos',true)
|
|
|
-
|
|
|
+
|
|
|
+ setTimeout(()=>{//在下一帧再变,因为3dtiles需要更新一下才会显示tiles
|
|
|
+ if(!requestInPano){
|
|
|
+ Potree.settings.displayMode = 'showPointCloud'
|
|
|
+ Potree.Utils.updateVisible(MergeEditor.boxHelper,'showPanos',true)
|
|
|
+ }
|
|
|
+ },50)
|
|
|
|
|
|
viewer.addEventListener('camera_changed', camera_changed)
|
|
|
},
|