feat: 优化测量功能架构与引擎组件

- 重构测量激活逻辑,在 Engine 组件中添加统一的 activateMeasure(mode) 方法
- 简化 MeasureDialogManager,移除冗余的 handleMeasureTypeChange 方法
- 添加 EngineManager.activateMeasure 转发方法
- 修复 loadModel 错误,正确调用 Engine 组件方法
- 为 Engine 组件设置固定背景渐变色
- MeasurePanel 初始化时触发 onModeChange 回调
- 添加 MeasureMode 共享类型定义

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
yuding
2026-01-15 14:13:13 +08:00
parent cd1f8186d0
commit f6257f5162
101 changed files with 31269 additions and 29937 deletions

33
dist/index.d.ts vendored
View File

@@ -654,6 +654,23 @@ declare class EngineManager extends BimComponent {
* 用于直接调用第三方引擎的其他 API
*/
getEngine(): any;
/**
* 回到主视角
*/
CameraGoHome(): void;
/**
* 激活测量功能
* @param mode 测量类型
*/
activateMeasure(mode: MeasureMode): void;
/**
* 停用测量功能
*/
deactivateMeasure(): void;
/**
* 获取当前激活的测量类型
*/
getCurrentMeasureType(): MeasureMode | null;
/**
* 销毁 3D 引擎实例
*/
@@ -667,8 +684,8 @@ declare class EngineManager extends BimComponent {
export declare interface EngineOptions {
/** 容器元素 */
container: HTMLElement;
/** 背景颜色(十六进制数字如 0x333333 */
backgroundColor?: number;
/** 背景颜色(十六进制数字如 0x333333,或 CSS 字符串如 'linear-gradient(...)' */
backgroundColor?: number | string;
/** WebGL 版本 */
version?: 'v1' | 'v2';
/** 是否显示性能统计 */
@@ -824,18 +841,18 @@ declare class MeasureDialogManager extends BimComponent {
}
/**
* 测量面板 - 类型定义
* 测量相关的通用类型定义
*
* 注意
* - 本次只实现 UI不实现真实测量逻辑拾取、画线、计算等
* - 这里的类型以“可读性优先”为原则,尽量直观、易扩展。
* 说明
* - 这些类型定义在通用 types 目录下,避免组件间直接耦合
* - Engine 组件、MeasurePanel 组件、Manager 都可以引用这些类型
*/
/**
* 测量方式8 种)
*
* 说明:
* - id 采用英文驼峰/小写,便于程序内部使用
* - 显示名称必须通过国际化 key 获取(见 locales
* - id 采用英文驼峰/小写,便于程序内部使用
* - 显示名称必须通过国际化 key 获取(见 locales
*/
declare type MeasureMode = 'distance' | 'minDistance' | 'angle' | 'elevation' | 'volume' | 'laserDistance' | 'slope' | 'spaceVolume';