|
|
|
@ -62,7 +62,7 @@ export default class WorldModel { |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
loadFloorToScene(scene: THREE.Scene, levelCode: string) { |
|
|
|
loadFloorToScene(viewport: Viewport, scene: THREE.Scene, levelCode: string) { |
|
|
|
let floor = _.find(this.data.items, r => r.name === levelCode && r.t === 'floor') |
|
|
|
if (!floor) { |
|
|
|
console.info(`新建楼层: ${levelCode}`) |
|
|
|
@ -74,7 +74,7 @@ export default class WorldModel { |
|
|
|
this.data.items.push(floor) |
|
|
|
} |
|
|
|
|
|
|
|
loadSceneFromJson(scene, floor.items) |
|
|
|
loadSceneFromJson(viewport, scene, floor.items) |
|
|
|
} |
|
|
|
|
|
|
|
open() { |
|
|
|
@ -99,13 +99,12 @@ export default class WorldModel { |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取当前楼层的场景, 如果没有则创建一个新的场景 |
|
|
|
* @param floor |
|
|
|
*/ |
|
|
|
getSceneByFloor(floor: string) { |
|
|
|
getSceneByFloor(viewport: Viewport, floor: string) { |
|
|
|
if (this.sceneMap.has(floor)) { |
|
|
|
return this.sceneMap.get(floor) |
|
|
|
} else { |
|
|
|
const scene = this.createScene(floor) |
|
|
|
const scene = this.createScene(viewport, floor) |
|
|
|
|
|
|
|
this.sceneMap.set(floor, scene) |
|
|
|
return scene |
|
|
|
@ -115,11 +114,11 @@ export default class WorldModel { |
|
|
|
/** |
|
|
|
* 创建一个新的场景 |
|
|
|
*/ |
|
|
|
createScene(floor: string) { |
|
|
|
createScene(viewport: Viewport, floor: string) { |
|
|
|
const scene = new Scene() |
|
|
|
scene.background = new THREE.Color(0xeeeeee) |
|
|
|
|
|
|
|
this.loadFloorToScene(scene, floor) |
|
|
|
this.loadFloorToScene(viewport, scene, floor) |
|
|
|
return scene |
|
|
|
} |
|
|
|
|
|
|
|
|