|
@@ -44,7 +44,7 @@ export const enter = (dom, isLocal) => {
|
|
let readyToAddModel
|
|
let readyToAddModel
|
|
let maxLoadingCount = /* isLocal ? 1 : */2; //正在加载模型的最大数目
|
|
let maxLoadingCount = /* isLocal ? 1 : */2; //正在加载模型的最大数目
|
|
|
|
|
|
-
|
|
|
|
|
|
+ let mainBackground = viewer.background
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -287,125 +287,20 @@ export const enter = (dom, isLocal) => {
|
|
}))
|
|
}))
|
|
return deferred.promise()
|
|
return deferred.promise()
|
|
},
|
|
},
|
|
- /* getPose(o={}) {
|
|
|
|
- //获取相对于第一个数据集的初始画面。(当数据集校准后,如果初始画面设置在被修改的数据集上,且该数据集非初始数据集的话,还是会偏移的)
|
|
|
|
- var deferred = o.deferred || $.Deferred();
|
|
|
|
- console.log('getPose')
|
|
|
|
- if(viewer.mainViewport.view.isFlying()){
|
|
|
|
- let f = ()=>{
|
|
|
|
- this.getPose(o)
|
|
|
|
- viewer.mainViewport.view.removeEventListener('flyingDone', f)
|
|
|
|
- }
|
|
|
|
- viewer.mainViewport.view.addEventListener('flyingDone', f) //once
|
|
|
|
- o.deferred = deferred
|
|
|
|
- return deferred.promise()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- var camera = viewer.scene.getActiveCamera()
|
|
|
|
- var rotation = camera.rotation
|
|
|
|
- var pos_In_dataset = Potree.Utils.datasetPosTransform({ toDataset: true, position: camera.position.clone(), datasetId: Potree.settings.originDatasetId })
|
|
|
|
- var rot_In_dataset = Potree.Utils.datasetRotTransform({ toDataset: true, rotation, getRotation: true, datasetId: Potree.settings.originDatasetId }) //拿第一个数据集
|
|
|
|
-
|
|
|
|
- var view = viewer.scene.view.clone()
|
|
|
|
- view.rotation = rot_In_dataset //获取yaw pitch
|
|
|
|
-
|
|
|
|
- var pose = {
|
|
|
|
- //displayMode: Potree.settings.displayMode,
|
|
|
|
- position: pos_In_dataset,
|
|
|
|
- yaw: view.yaw,
|
|
|
|
- pitch: view.pitch,
|
|
|
|
- displayMode : Potree.settings.displayMode,
|
|
|
|
- panoSid: viewer.images360.currentPano.sid
|
|
|
|
- }
|
|
|
|
- //return pose
|
|
|
|
-
|
|
|
|
- setTimeout(()=>{
|
|
|
|
- deferred.resolve(pose)
|
|
|
|
- console.log('getPose resolve',pose)
|
|
|
|
- },1)
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- return deferred.promise()
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- setPose(o = {}, duration=0) {
|
|
|
|
- //设置相机位置和朝向
|
|
|
|
- var deferred = o.deferred || $.Deferred();
|
|
|
|
- console.warn('setPose 初始画面', o)
|
|
|
|
- var quaternion
|
|
|
|
- let view = viewer.scene.view.clone()
|
|
|
|
-
|
|
|
|
- if(viewer.mainViewport.view.isFlying()){
|
|
|
|
- let f = ()=>{
|
|
|
|
- this.setPose(o, duration)
|
|
|
|
- viewer.mainViewport.view.removeEventListener('flyingDone', f)
|
|
|
|
- }
|
|
|
|
- viewer.mainViewport.view.addEventListener('flyingDone', f) //once
|
|
|
|
- o.deferred = deferred
|
|
|
|
- return deferred.promise()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- var getQuaternion = ()=>{
|
|
|
|
- view.pitch = o.pitch
|
|
|
|
- view.yaw = o.yaw
|
|
|
|
-
|
|
|
|
- quaternion = Potree.Utils.datasetRotTransform({ fromDataset: true, rotation: view.rotation, getQuaternion: true, datasetId: Potree.settings.originDatasetId }) //拿第一个数据集
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- viewer.images360.cancelFlyToPano()//防止旧的在之后继续执行
|
|
|
|
- let pano
|
|
|
|
- if(o.panoSid != void 0){//好像都不存这个
|
|
|
|
- pano = viewer.images360.panos.find(e=>e.sid == o.panoSid)
|
|
|
|
- if(pano == void 0)return deferred.reject('没有找到该panoSid').promise()
|
|
|
|
- getQuaternion()
|
|
|
|
- viewer.images360.flyToPano({pano, duration, quaternion},()=>{
|
|
|
|
- deferred.resolve()
|
|
|
|
- })
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ setBackdrop(sky){//天空盒背景
|
|
|
|
+ console.log('天空盒背景', sky)
|
|
|
|
+ if(sky == 'none'){
|
|
|
|
+ viewer.setBackground(mainBackground)
|
|
|
|
+ }else if(sky[0] == '#'){
|
|
|
|
+ viewer.setBackground(new THREE.Color(sky))
|
|
}else{
|
|
}else{
|
|
- if(Potree.settings.displayMode == 'showPanos'){
|
|
|
|
- return deferred.reject('全景模式下不允许设置位置').promise()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- let position = Potree.Utils.datasetPosTransform({ fromDataset: true, position: o.position, datasetId: Potree.settings.originDatasetId })
|
|
|
|
- //view.position.copy(position)
|
|
|
|
- getQuaternion()
|
|
|
|
-
|
|
|
|
- pano = viewer.images360.panos.find(e=>Potree.math.closeTo(e.position, position))
|
|
|
|
-
|
|
|
|
- if(pano){//如果原来在某pano上最好也使currentPano为此pano,否则isAtPano会返回false
|
|
|
|
- viewer.images360.flyToPano({pano, duration, quaternion},()=>{
|
|
|
|
- deferred.resolve()
|
|
|
|
- })
|
|
|
|
- }else{
|
|
|
|
-
|
|
|
|
- viewer.scene.view.setView({position,quaternion,duration, callback:()=>{
|
|
|
|
- //setTimeout(()=>{
|
|
|
|
- deferred.resolve()
|
|
|
|
- console.log('setPose resolve')
|
|
|
|
- //},1)
|
|
|
|
- } })
|
|
|
|
- viewer.mapViewer.moveTo(position, null, duration) //初始位置在地图居中
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ viewer.setBackground('skybox', sky)
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- return deferred.promise()
|
|
|
|
|
|
+
|
|
},
|
|
},
|
|
- */
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
|
|
enterSceneGuide(pathArr){//导览 (不需要修改参数)
|
|
enterSceneGuide(pathArr){//导览 (不需要修改参数)
|
|
let editor = viewer.modules.CamAniEditor
|
|
let editor = viewer.modules.CamAniEditor
|