Browse Source

WorldModel open

master
修宁 7 months ago
parent
commit
9bb586e511
  1. 4
      src/model/ModelUtils.ts
  2. 6
      src/model/WorldModel.ts
  3. 3
      src/model/itemTypeDefine/ItemTypeLineBase.ts
  4. 7
      src/views/ModelMainInit.ts

4
src/model/ModelUtils.ts

@ -3,6 +3,7 @@ import type { ItemJson } from '@/model/itemTypeDefine/ItemTypeDefine.ts'
import { getAllItemTypes, getItemTypeByName } from '@/runtime/DefineItemType.ts' import { getAllItemTypes, getItemTypeByName } from '@/runtime/DefineItemType.ts'
export function loadSceneFromJson(scene: THREE.Scene, items: ItemJson[]) { export function loadSceneFromJson(scene: THREE.Scene, items: ItemJson[]) {
console.time('loadSceneFromJson')
const object3ds = loadObject3DFromJson(items) const object3ds = loadObject3DFromJson(items)
// 通知所有加载的对象, 模型加载完成 // 通知所有加载的对象, 模型加载完成
@ -20,6 +21,9 @@ export function loadSceneFromJson(scene: THREE.Scene, items: ItemJson[]) {
getAllItemTypes().forEach(itemType => { getAllItemTypes().forEach(itemType => {
itemType.clazz.afterAddScene(scene, object3ds) itemType.clazz.afterAddScene(scene, object3ds)
}) })
console.log('loadSceneFromJson:', items.length, 'items,', object3ds.length, 'objects')
console.timeEnd('loadSceneFromJson')
} }
function loadObject3DFromJson(items: ItemJson[]): THREE.Object3D[] { function loadObject3DFromJson(items: ItemJson[]): THREE.Object3D[] {

6
src/model/WorldModel.ts

@ -18,14 +18,10 @@ export default class WorldModel {
viewPorts: Viewport[] = [] viewPorts: Viewport[] = []
constructor() { constructor() {
this.init()
this.open()
} }
init() { init() {
window['worldModel'] = this return Promise.all([
Promise.all([
MeasureMeta.clazz.init(this) MeasureMeta.clazz.init(this)
]).then(() => { ]).then(() => {

3
src/model/itemTypeDefine/ItemTypeLineBase.ts

@ -60,14 +60,13 @@ export default abstract class ItemTypeLineBase extends ItemTypeBase {
const geom = line.geometry const geom = line.geometry
geom.setFromPoints([startPoint.position, endPoint.position]) geom.setFromPoints([startPoint.position, endPoint.position])
this.afterLoadLine(line)
if (startPoint.parent) { if (startPoint.parent) {
startPoint.parent.add(line) startPoint.parent.add(line)
} else { } else {
scene.add(line) scene.add(line)
} }
this.afterLoadLine(line)
this.linkArray.push(line) this.linkArray.push(line)
} }
} }

7
src/views/ModelMainInit.ts

@ -35,7 +35,12 @@ export function ModelMainInit() {
ToolsMenu.install() ToolsMenu.install()
Model3DView.install() Model3DView.install()
new WorldModel().init() const worldModel = new WorldModel()
window['worldModel'] = worldModel
worldModel.init().then(() => {
worldModel.open()
})
} }
export function ModelMainMounted() { export function ModelMainMounted() {

Loading…
Cancel
Save