From fdc6f884aa5c76c29646695563dcdd73536acef1 Mon Sep 17 00:00:00 2001 From: yuding <1023798085@qq.com> Date: Thu, 26 Feb 2026 16:03:38 +0800 Subject: [PATCH] refactor: change loadModel parameter from string to string array - Update loadModel signature: url: string -> urls: string[] - Update validation logic for array parameter - Update all demo files to pass array instead of single string --- demo-vue/src/App.vue | 4 ++-- demo/index.html | 4 ++-- demo/viewer.html | 2 +- src/components/engine/index.ts | 14 +++++++------- src/managers/engine-manager.ts | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/demo-vue/src/App.vue b/demo-vue/src/App.vue index d0994b3..a9e7316 100644 --- a/demo-vue/src/App.vue +++ b/demo-vue/src/App.vue @@ -331,7 +331,7 @@ const loadModel = () => { // 加载模型文件(从 model 目录) const modelUrl = 'https://lyz-1259524260.cos.ap-guangzhou.myqcloud.com/iflow/models/8634e556-a94e-4ba7-be3e-2ea1507cced5/'; - engine.value.engine.loadModel(modelUrl, { + engine.value.engine.loadModel([modelUrl], { position: [0, 0, 0], // 初始位置 rotation: [0, 0, 0], // 初始旋转 scale: [1, 1, 1] // 初始缩放 @@ -361,7 +361,7 @@ const switchModel = () => { } try { - engine.value.engine.loadModel(newUrl.trim(), { + engine.value.engine.loadModel([newUrl.trim()], { position: [0, 0, 0], rotation: [0, 0, 0], scale: [1, 1, 1] diff --git a/demo/index.html b/demo/index.html index 39d74e5..56aaa20 100644 --- a/demo/index.html +++ b/demo/index.html @@ -398,7 +398,7 @@ // 加载模型文件(从 model 目录) const modelUrl = 'https://lyz-1259524260.cos.ap-guangzhou.myqcloud.com/iflow/models/417664a3-76c8-4d94-9344-1337246a5d4e/'; - engine.engine.loadModel(modelUrl, { + engine.engine.loadModel([modelUrl], { position: [0, 0, 0], // 初始位置 rotation: [0, 0, 0], // 初始旋转 scale: [1, 1, 1] // 初始缩放 @@ -455,7 +455,7 @@ } try { - engine.engine.loadModel(newUrl.trim(), { + engine.engine.loadModel([newUrl.trim()], { position: [0, 0, 0], rotation: [0, 0, 0], scale: [1, 1, 1] diff --git a/demo/viewer.html b/demo/viewer.html index f02eb0a..537822c 100644 --- a/demo/viewer.html +++ b/demo/viewer.html @@ -129,7 +129,7 @@ // 加载模型文件(从 model 目录)- 使用与 index.html 相同的模型路径 const modelUrl = 'https://lyz-1259524260.cos.ap-guangzhou.myqcloud.com/iflow/models/8634e556-a94e-4ba7-be3e-2ea1507cced5/'; - engine.engine.loadModel(modelUrl, { + engine.engine.loadModel([modelUrl], { position: [0, 0, 0], // 初始位置 rotation: [0, 0, 0], // 初始旋转 scale: [1, 1, 1] // 初始缩放 diff --git a/src/components/engine/index.ts b/src/components/engine/index.ts index 9e4e399..7e98004 100644 --- a/src/components/engine/index.ts +++ b/src/components/engine/index.ts @@ -7,8 +7,8 @@ import type { MeasureUnit, MeasurePrecision } from '../measure-panel/types'; import type { SectionBoxRange } from '../section-box-panel/types'; import { ManagerRegistry } from '../../core/manager-registry'; // 导入第三方 SDK 的 createEngine 函数(从 npm 包引入) -// import { createEngine as createEngineSDK } from 'iflow-engine-base'; -import { createEngine as createEngineSDK } from '../../../../bim_engine_base/dist/bim-engine-sdk.es'; +import { createEngine as createEngineSDK } from 'iflow-engine-base'; +//import { createEngine as createEngineSDK } from '../../../../bim_engine_base/dist/bim-engine-sdk.es'; import "../../../../bim_engine_base/dist/iflow-engine-base.css" export type { EngineOptions, ModelLoadOptions, EngineInfo }; @@ -175,19 +175,19 @@ export class Engine implements IBimComponent { /** * 加载 3D 模型 - * @param url 模型文件 URL + * @param urls 模型文件 URL 数组 * @param options 加载选项(位置、旋转、缩放) */ - public loadModel(url: string, options?: ModelLoadOptions): void { + public loadModel(urls: string[], options?: ModelLoadOptions): void { if (!this._isInitialized || !this.engine) { console.error('[Engine] Engine not initialized. Please call init() first.'); return; } - if (!url) { - console.error('[Engine] Model URL is required.'); + if (!urls || urls.length === 0) { + console.error('[Engine] Model URLs are required.'); return; } - this.engine.loaderModule.loadModels([url], options); + this.engine.loaderModule.loadModels(urls, options); } /** diff --git a/src/managers/engine-manager.ts b/src/managers/engine-manager.ts index 99a704a..8b2627e 100644 --- a/src/managers/engine-manager.ts +++ b/src/managers/engine-manager.ts @@ -234,15 +234,15 @@ export class EngineManager extends BaseManager { /** * 加载模型 - * @param url 模型 URL + * @param urls 模型 URL 数组 * @param options 加载选项 */ - public loadModel(url: string, options?: ModelLoadOptions): void { + public loadModel(urls: string[], options?: ModelLoadOptions): void { if (!this.engineInstance) { console.warn('[EngineManager] 3D Engine not initialized.'); return; } - this.engineInstance.loadModel(url, options); + this.engineInstance.loadModel(urls, options); } /**