diff --git a/src/model/ModelUtils.ts b/src/model/ModelUtils.ts index c01645c..c73e089 100644 --- a/src/model/ModelUtils.ts +++ b/src/model/ModelUtils.ts @@ -3,6 +3,7 @@ import type { ItemJson } from '@/model/itemTypeDefine/ItemTypeDefine.ts' import { getAllItemTypes, getItemTypeByName } from '@/runtime/DefineItemType.ts' export function loadSceneFromJson(scene: THREE.Scene, items: ItemJson[]) { + console.time('loadSceneFromJson') const object3ds = loadObject3DFromJson(items) // 通知所有加载的对象, 模型加载完成 @@ -20,6 +21,9 @@ export function loadSceneFromJson(scene: THREE.Scene, items: ItemJson[]) { getAllItemTypes().forEach(itemType => { itemType.clazz.afterAddScene(scene, object3ds) }) + + console.log('loadSceneFromJson:', items.length, 'items,', object3ds.length, 'objects') + console.timeEnd('loadSceneFromJson') } function loadObject3DFromJson(items: ItemJson[]): THREE.Object3D[] { diff --git a/src/model/WorldModel.ts b/src/model/WorldModel.ts index 2df41bd..931470e 100644 --- a/src/model/WorldModel.ts +++ b/src/model/WorldModel.ts @@ -18,14 +18,10 @@ export default class WorldModel { viewPorts: Viewport[] = [] constructor() { - this.init() - this.open() } init() { - window['worldModel'] = this - - Promise.all([ + return Promise.all([ MeasureMeta.clazz.init(this) ]).then(() => { diff --git a/src/model/itemTypeDefine/ItemTypeLineBase.ts b/src/model/itemTypeDefine/ItemTypeLineBase.ts index fa1c074..b1a8618 100644 --- a/src/model/itemTypeDefine/ItemTypeLineBase.ts +++ b/src/model/itemTypeDefine/ItemTypeLineBase.ts @@ -60,14 +60,13 @@ export default abstract class ItemTypeLineBase extends ItemTypeBase { const geom = line.geometry geom.setFromPoints([startPoint.position, endPoint.position]) - this.afterLoadLine(line) - if (startPoint.parent) { startPoint.parent.add(line) } else { scene.add(line) } + this.afterLoadLine(line) this.linkArray.push(line) } } diff --git a/src/views/ModelMainInit.ts b/src/views/ModelMainInit.ts index 15e00f7..be317b4 100644 --- a/src/views/ModelMainInit.ts +++ b/src/views/ModelMainInit.ts @@ -35,7 +35,12 @@ export function ModelMainInit() { ToolsMenu.install() Model3DView.install() - new WorldModel().init() + const worldModel = new WorldModel() + window['worldModel'] = worldModel + + worldModel.init().then(() => { + worldModel.open() + }) } export function ModelMainMounted() {