|
@@ -30,7 +30,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
Potree.settings.mergeType2 = true //标识新版
|
|
|
Potree.settings.modelSkybox = true //是否将全景图贴在模型上(会导致卡顿)。若不显示模型将不显示Reticule
|
|
|
Potree.settings.tiles3DMaxMemory = 300 //稍微增加点
|
|
|
- Potree.settings.mergeTransCtlOnClick = true
|
|
|
+ //Potree.settings.mergeTransCtlOnClick = true
|
|
|
Potree.settings.canWalkThroughModel = true
|
|
|
|
|
|
let { THREE } = Potree.mergeEditStart(dom, mapDom)
|
|
@@ -484,8 +484,8 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
pose.panoId = viewer.images360.currentPano.originID
|
|
|
pose.model = viewer.images360.currentPano.pointcloud.result_
|
|
|
|
|
|
- pose.posInModel = Potree.Utils.datasetPosTransform({ toDataset: true, position: camera.position.clone(), model:pose.model })
|
|
|
- pose.rotInModel = Potree.Utils.datasetRotTransform({ toDataset: true, quaternion: camera.position.clone(), getQuaternion: true, model:pose.model }) //拿第一个数据集
|
|
|
+ pose.posInModel = Potree.Utils.datasetPosTransform({ toDataset: true, position: camera.position.clone(), object:pose.model })
|
|
|
+ pose.rotInModel = Potree.Utils.datasetRotTransform({ toDataset: true, quaternion: camera.position.clone(), getQuaternion: true, object:pose.model }) //拿第一个数据集
|
|
|
|
|
|
}
|
|
|
|
|
@@ -495,19 +495,36 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
comeTo(o = {}) {
|
|
|
//console.log('comeTo',o.position, o.target)
|
|
|
//飞到某个点
|
|
|
- if (o.modelId) {
|
|
|
+ /* if (o.modelId) {
|
|
|
['position', 'target'].forEach(e => {
|
|
|
if (o[e]) {
|
|
|
o[e] = Potree.Utils.datasetPosTransform({ fromDataset: true, datasetId: o.modelId, position: o[e] })
|
|
|
}
|
|
|
})
|
|
|
+ } */
|
|
|
+ let deferred = $.Deferred()
|
|
|
+ if(o.displayMode == 'showPanos'){
|
|
|
+ let pano = o.model.panos.find(a=>a.originID == e.panoId)
|
|
|
+ if(pano){
|
|
|
+ let quaternion = Potree.Utils.datasetRotTransform({ fromDataset: true, quaternion: o.rotInModel, getQuaternion: true, object:o.model })
|
|
|
+
|
|
|
+ o.model.result_.flyInPano(pano, {quaternion, callback(){
|
|
|
+ o.callback && o.callback()
|
|
|
+ deferred.resolve(true)
|
|
|
+ }})
|
|
|
+ return deferred.promise()
|
|
|
+
|
|
|
+ }else{
|
|
|
+ console.warn('没有找到漫游点',o)
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
|
|
|
if (o.distance) {
|
|
|
let position = o.target || o.position
|
|
|
return viewer.focusOnObject({ position }, 'tag', null, { distance: o.distance }).promise
|
|
|
}
|
|
|
- let deferred = $.Deferred()
|
|
|
+
|
|
|
|
|
|
viewer.scene.view.setView($.extend({}, o, {
|
|
|
duration: o.dur,
|
|
@@ -737,9 +754,9 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
})
|
|
|
spliceFromArr(model, props, true)
|
|
|
|
|
|
- model.addEventListener('changeSelect', (e) => {
|
|
|
+ /* model.addEventListener('changeSelect', (e) => {
|
|
|
e.selected ? MergeEditor.transformControls.attach(model, e.clickPos) : MergeEditor.transformControls.detach()
|
|
|
- })
|
|
|
+ }) */
|
|
|
|
|
|
|
|
|
if (props.mode == 'single') {//模型查看页
|
|
@@ -794,7 +811,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
supportPano() { //是否支持全景图
|
|
|
return model.panos && model.panos.length > 0
|
|
|
},
|
|
|
- flyInPano(pano, {dontFly}={}) {// 飞入全景图
|
|
|
+ flyInPano(pano, {dontFly, quaternion}={}) {// 飞入全景图
|
|
|
requestInPano = model
|
|
|
pano = pano || viewer.images360.findNearestPano(null, model.panos)
|
|
|
if (pano) {
|
|
@@ -820,7 +837,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
}
|
|
|
}, { once: true })
|
|
|
|
|
|
- dontFly || viewer.images360.flyToPano({ pano, canCancelLast: true })
|
|
|
+ dontFly || viewer.images360.flyToPano({ pano, canCancelLast: true, quaternion })
|
|
|
Potree.settings.displayMode = 'showPanos'
|
|
|
|
|
|
|