初始化

This commit is contained in:
yuding
2025-12-25 15:47:57 +08:00
parent 04a5e74284
commit 9b6959585d
28 changed files with 6464 additions and 4197 deletions

206
dist/index.d.ts vendored
View File

@@ -191,6 +191,8 @@ export declare class BimEngine extends EventEmitter {
sectionPlane: SectionPlaneDialogManager | null;
sectionAxis: SectionAxisDialogManager | null;
sectionBox: SectionBoxDialogManager | null;
walkControl: WalkControlManager | null;
map: MapDialogManager | null;
constructor(container: HTMLElement | string, options?: {
locale?: LocaleType;
theme?: ThemeType;
@@ -349,6 +351,11 @@ export declare interface ButtonGroupOptions extends ButtonGroupColors {
declare type ButtonType = 'button' | 'menu';
/**
* 角色模型类型
*/
declare type CharacterModel = 'office-male' | 'construction-worker';
export declare interface CollapseItemConfig {
/** 唯一标识符 */
id: string;
@@ -587,6 +594,26 @@ export declare interface EngineEvents {
'sys:locale-changed': {
locale: string;
};
'walk:path-mode-toggle': {
isActive: boolean;
};
'walk:walk-mode-toggle': {
isActive: boolean;
};
'walk:plan-view-toggle': {
isActive: boolean;
};
'walk:speed-change': {
speed: number;
};
'walk:gravity-toggle': {
enabled: boolean;
};
'walk:collision-toggle': {
enabled: boolean;
};
'map:opened': {};
'map:closed': {};
}
/**
@@ -704,6 +731,33 @@ declare type Listener<T = any> = (payload: T) => void;
*/
declare type LocaleType = 'zh-CN' | 'en-US';
/**
* 地图弹窗管理器(独立通用组件)
*/
declare class MapDialogManager extends BimComponent {
private dialogId;
private dialog;
private panel;
constructor(engine: BimEngine);
init(): void;
/**
* 显示弹窗
*/
show(): void;
/**
* 隐藏弹窗
*/
hide(): void;
/**
* 检查地图是否打开
*/
isOpen(): boolean;
/**
* 销毁弹窗和面板
*/
destroy(): void;
}
/**
* 测量配置项(由组件内部维护默认值,并读取/写入缓存)
*/
@@ -881,6 +935,7 @@ declare interface OptButton extends ButtonConfig {
*/
declare class PropertyPanelManager extends BimComponent {
private dialogId;
private dialog;
constructor(engine: BimEngine);
init(): void;
/**
@@ -898,6 +953,14 @@ declare class PropertyPanelManager extends BimComponent {
private createBaseInfoContent;
private createAdvancedInfoContent;
private createMaterialContent;
/**
* 检查属性面板是否打开
*/
isOpen(): boolean;
/**
* 隐藏属性面板
*/
hide(): void;
destroy(): void;
}
@@ -1134,6 +1197,18 @@ declare class ToolbarManager extends BimComponent {
setVisible(visible: boolean): void;
setBackgroundColor(color: string): void;
setColors(colors: ButtonGroupColors): void;
/**
* 隐藏工具栏
*/
hide(): void;
/**
* 显示工具栏
*/
show(): void;
/**
* 获取工具栏容器
*/
getContainer(): HTMLElement | null;
}
/**
@@ -1206,4 +1281,135 @@ export declare interface TreeOptions {
renderActions?: (node: TreeNodeConfig) => HTMLElement | string;
}
/**
* 漫游控制管理器
*/
declare class WalkControlManager extends BimComponent {
panel: WalkControlPanel | null;
private pathManager;
constructor(engine: BimEngine);
init(): void;
/**
* 显示漫游控制面板
*/
show(): void;
/**
* 隐藏漫游控制面板
*/
hide(): void;
/**
* 销毁管理器
*/
destroy(): void;
}
/**
* 漫游控制模式
*/
declare type WalkControlMode = 'none' | 'path' | 'walk';
declare class WalkControlPanel implements IBimComponent {
element: HTMLElement;
private options;
private state;
private planViewBtn;
private pathModeBtn;
private walkModeBtn;
private settingsContainer;
private speedControl;
private speedDecreaseBtn;
private speedIncreaseBtn;
private speedDisplay;
private gravityCheckbox;
private gravityLabel;
private collisionCheckbox;
private collisionLabel;
private characterModelSelect;
private characterModelLabel;
private walkModeSelect;
private walkModeLabel;
private exitBtn;
private unsubscribeLocale;
private unsubscribeTheme;
constructor(options?: WalkControlPanelOptions);
init(): void;
setPlanViewActive(active: boolean): void;
setPathModeActive(active: boolean): void;
getState(): WalkControlState;
private createPanel;
private createLeftButtons;
private createSettingsContainer;
private createSpeedControl;
private createIconButton;
private createExitButton;
private setMode;
private updateButtonStates;
private updateSettingsView;
private updateSpeedDisplay;
private updateSpeedButtonStates;
private getIconSVG;
setLocales(): void;
setTheme(theme: ThemeConfig): void;
destroy(): void;
}
/**
* 漫游控制面板配置选项
*/
declare interface WalkControlPanelOptions {
/** 平面图切换回调 */
onPlanViewToggle?: (isActive: boolean) => void;
/** 路径漫游模式切换回调 */
onPathModeToggle?: (isActive: boolean) => void;
/** 漫游模式切换回调 */
onWalkModeToggle?: (isActive: boolean) => void;
/** 速度变化回调 */
onSpeedChange?: (speed: number) => void;
/** 重力切换回调 */
onGravityToggle?: (enabled: boolean) => void;
/** 碰撞切换回调 */
onCollisionToggle?: (enabled: boolean) => void;
/** 角色模型变化回调 */
onCharacterModelChange?: (model: CharacterModel) => void;
/** 行走模式变化回调 */
onWalkModeChange?: (mode: WalkMode) => void;
/** 退出回调 */
onExit?: () => void;
/** 默认速度 (0-100) */
defaultSpeed?: number;
/** 默认重力状态 */
defaultGravity?: boolean;
/** 默认碰撞状态 */
defaultCollision?: boolean;
/** 默认角色模型 */
defaultCharacterModel?: CharacterModel;
/** 默认行走模式 */
defaultWalkMode?: WalkMode;
}
/**
* 漫游控制状态
*/
declare interface WalkControlState {
/** 当前模式 */
mode: WalkControlMode;
/** 平面图是否激活 */
isPlanViewActive: boolean;
/** 移动速度 (0-100) */
speed: number;
/** 重力是否启用 */
gravity: boolean;
/** 碰撞是否启用 */
collision: boolean;
/** 当前角色模型 */
characterModel: CharacterModel;
/** 当前行走模式 */
walkMode: WalkMode;
}
/**
* 行走模式类型
*/
declare type WalkMode = 'walk' | 'run';
export { }