初始化

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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 { }