Commit Graph

53 Commits

Author SHA1 Message Date
yuding
837177f3f2 feat: add settings dialog with render mode selection
- Add SettingDialogManager with radio-style render mode picker (simple/balance/advanced)
- Add getRenderMode/setRenderMode API to Engine and EngineManager layers
- Wire setting toolbar button to toggle the settings dialog
- Add i18n keys for settings dialog (zh-CN/en-US)
- Add version display at bottom-right of engine wrapper
- Bump version to 1.1.7, rebuild and sync demo libs
2026-02-28 11:26:59 +08:00
yuding
7d7fbd9c14 fix(button-group): add horizontal scroll for bottom toolbar overflow
When container width is too small, the bottom toolbar now scrolls
horizontally. Also removes box-shadow on glass-pill sections to prevent
clipping artifacts and sets transparent background on root element.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-28 10:09:09 +08:00
yuding
2395dff81e refactor(components): accept registry in menu, engine, walk-path, button-group
Menu button factories, Engine component, WalkPathPanel, and BimButtonGroup
now accept registry via options/parameters. Engine component adds public
resize() method wrapping EngineKernel.handleWindowResize().

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-28 10:09:01 +08:00
yuding
bb1d18a4e7 refactor(toolbar): pass registry to all button factories
Toolbar component now receives registry from ButtonGroupManager options
and passes it to all 16 toolbar button factory functions.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-28 10:08:52 +08:00
yuding
fdc6f884aa 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
2026-02-26 16:03:38 +08:00
yuding
191c571f40 refactor: sync managers and section box actions
Wire section box scale/reverse/reset to clipping APIs and sync demo artifacts.
2026-02-04 18:20:30 +08:00
yuding
8fd1870f42 refactor(engine): update Engine layer to accept models parameter
- Add getHighlightModels() to retrieve selected models
- Rename hideSelectedModels → hideModels(models)
- Rename translucentSelectedModels → translucentModels(models)
- Rename isolateSelectedModels → isolateModels(models)
- Update translucentOtherModels to accept models parameter
- Update batch select methods to accept models parameter

Tasks 1-6 completed from refactor-model-operations plan.
2026-02-04 15:29:27 +08:00
yuding
a30e87e577 docs(engine): add JSDoc comments to all public methods
Add documentation for:
- saveMeasureSetting: 保存测量设置
- fitSectionBoxToModel: 剖切盒适应选中模型
- setWalkSpeed/Gravity/Collision: 漫游参数设置
- toggleMiniMap: 切换小地图
- getTypeTreeData/LevelTreeData/MajorTreeData: 模型树数据获取
- activateZoomBox: 框选放大
- getEngineInfo: 获取引擎信息
2026-02-04 15:17:23 +08:00
yuding
ad19934e19 feat(menu): add cancel translucent option to right-click menu
- Add cancelTranslucent i18n translations (zh-CN: 取消半透明, en-US: Cancel Translucent)
- Add unTranslucentModel() method to Engine layer
- Add unTranslucentModel() proxy to EngineManager
- Add menu item after 'Transparent Selected' (order: 4)
- Update menu item order numbers (5-8)
2026-02-04 15:10:51 +08:00
yuding
89783d0a9b feat(menu): implement right-click menu functions for model operations
- Add i18n translations for quick select menu (zh-CN, en-US)
- Add 8 model operation methods to Engine layer
- Add 8 proxy methods to EngineManager layer
- Implement right-click menu handlers for hide/translucent/isolate/show all
- Add quick select submenu (same type/level/level+type)
- Replace console.log placeholders with actual API calls
2026-02-03 18:01:31 +08:00
yuding
044cd0e034 refactor(measure): centralize measure type config and migrate API
- Add unified MEASURE_TYPES config in types/measure.ts
- Export MEASURE_MODES_ORDERED, ENGINE_TYPE_TO_MODE, MODE_TO_ENGINE_TYPE
- Refactor measure-dialog-manager to use centralized config
- Refactor measure-panel to use MEASURE_TYPES for icons/order/valueType
- Simplify engine/index.ts measureMap with dynamic key access
- Add measure settings API (saveMeasureSetting) with cache sync
- Add direct engine event listening for measure-changed and section-move
- Update i18n keys for 8 measure modes
2026-02-02 18:18:36 +08:00
yuding
316f42ae6b feat(clipping): add section-move event listener
Listen for 'section-move' event from underlying engine and emit as 'section:move'.
Currently outputs to console for debugging.

Event type: { x?: {min, max}, y?: {min, max}, z?: {min, max} }
2026-02-02 16:38:43 +08:00
yuding
4a09d52283 feat(clipping): implement hide/recover toggle for all section dialogs
Update all three section dialogs to support hide/show toggle:

SectionAxisDialogManager:
- onHideToggle now calls hideSection()/recoverSection()

SectionBoxDialogManager:
- onHideToggle now calls hideSection()/recoverSection()

SectionPlanePanel:
- Add isHidden state tracking
- Change onHide to onHideToggle(isHidden)
- Add setHiddenState/getHiddenState methods
- Update button to toggle active state

SectionPlaneDialogManager:
- Switch to onHideToggle callback
- Call hideSection()/recoverSection() based on toggle state

Behavior: Click hide button to hide section, click again to recover.
2026-02-02 16:36:17 +08:00
yuding
41abd9ed67 feat(clipping): add hideSection and recoverSection methods
Add new methods for temporary section plane visibility control:
- hideSection(): Hide section plane temporarily (calls engine.clipping.disabled())
- recoverSection(): Recover hidden section plane (calls engine.clipping.recover())

Update SectionPlaneDialogManager to use hideSection() instead of direct API call.
2026-02-02 16:32:22 +08:00
yuding
6db24d23bb docs(code): add JSDoc comments for clipping API methods
Add comprehensive documentation for:
- activeSection(mode): Unified activation API with mode descriptions
- getCurrentSectionMode(): Current mode getter
- setSectionBoxRange(range): Box range setter with percentage format
- deactivateSection(): Unified deactivation

Includes @param, @returns, @remarks, and @example sections in Chinese.
2026-02-02 16:30:07 +08:00
yuding
76da6cf3ac refactor(engine): migrate clipping to unified activeSection API
- Replace old state variables with currentSectionMode
- Implement unified activeSection(mode) for all clipping types (x/y/z/box/face)
- Remove deprecated methods: activateSectionAxis, activateSectionBox, etc.
- Use new underlying API: engine.clipping.active(mode)
- Code reduction: ~175 lines → ~38 lines (78% reduction)
2026-02-02 16:25:24 +08:00
你的用户名
45d3035d8a 引入css 2026-01-29 17:03:25 +08:00
yuding
0b8dcd36fa feat(tree,menu,docs): 对接目录树三类数据并中文化文档 2026-01-28 17:19:36 +08:00
yuding
3ab9d4b0ea style(collapse): 深色模式下使用更深的边框颜色 border-strong 2026-01-28 16:07:49 +08:00
yuding
bf4d4ff3c9 style(collapse): 使用更深的边框颜色 border-default 2026-01-28 16:06:01 +08:00
yuding
ff0ca20e96 style(collapse): 为 ghost 模式表头添加下边框分隔
- 添加 border-bottom: 1px solid var(--bim-border-subtle)
- 修复 setTheme 中的 CSS 变量命名,使用标准名称
- 折叠的多个面板现在有明显的视觉分隔
2026-01-28 16:03:07 +08:00
yuding
c66e34422f fix(collapse): 添加缺失的 CSS 变量 --bim-component-bg-hover
- BimCollapse.setTheme() 现在设置标准的 component 变量
- 修复 ghost 模式下背景色无法显示的问题
- 添加 --bim-component-bg, --bim-component-bg-hover, --bim-component-bg-active
2026-01-28 15:57:47 +08:00
yuding
b884109b9e refactor(component-detail): 移除 PropertyPanelManager,统一使用 ComponentDetailManager
- 删除 PropertyPanelManager 文件(移至 .recycle/2026-01-28/)
- 修改 Toolbar 按钮调用 componentDetail.show() 而非 propertyPanel.show()
- 修复折叠面板 ghost 模式样式:添加背景色和左边距
- 清理 BimEngine 和 ManagerRegistry 中的 PropertyPanelManager 引用
- 构建验证通过
2026-01-28 15:46:01 +08:00
yuding
89789e003b feat(registry): 注册 ComponentDetailManager 到全局 Registry 和 BimEngine 2026-01-28 12:00:55 +08:00
yuding
cf20389a30 feat(engine): 监听构件点击事件并记录选中状态 2026-01-28 11:55:57 +08:00
yuding
0e38f58052 feat(engine): 新增漫游功能方法 2026-01-28 11:24:31 +08:00
yuding
5e62c8fdc3 feat(engine): add section axis clipping methods 2026-01-27 17:58:56 +08:00
yuding
89ae01ffd7 feat: upgrade iflow-engine-base to v1.0.5, add pause/resume rendering API
- Update iflow-engine-base from 1.0.1 to 1.0.5
- Change default engine version from v1 to v2
- Add pauseRendering() and resumeRendering() methods
- Add switch model feature in demos
- Update model URLs in demos
- Add new documentation files
2026-01-23 16:27:04 +08:00
yuding
31b60e84ce refactor: 重构 Manager 架构,引入 ManagerRegistry 和 BaseManager 基类
- 新增 ManagerRegistry 单例注册表,统一管理所有 Manager 实例
- 新增 BaseManager 基类,自动管理事件订阅清理
- 新增 BaseDialogManager 基类,统一对话框生命周期管理
- 重构 15 个 Manager 使用新基类
- 重构 Toolbar 按钮和 Menu 按钮移除 engine 参数依赖
- 删除 BimComponent 基类(已不再使用)
- 为所有 Manager 和核心模块添加中文 JSDoc 注释
2026-01-22 15:23:57 +08:00
yuding
f2460fb981 refactor: 重命名SDK为iflow-engine,使用npm包引入第三方引擎
- 将包名从 @fishdingding/bim-engine-sdk 改为 iflow-engine
- 将构建输出文件从 bim-engine-sdk.*.js 改为 iflow-engine.*.js
- 将全局变量从 LyzBimEngineSDK 改为 IflowEngine
- 将第三方引擎SDK从本地引入改为npm包引入 (iflow-engine-base)
- 移除本地 src/engine_base 目录,移至回收站
- 更新所有文档和demo中的引用
2026-01-22 11:29:51 +08:00
yuding
70523e54e5 fix(theme): 优化深色模式二级菜单悬浮颜色
- 二级菜单使用主题变量替代硬编码颜色
- hover 背景使用 floatingBtnBg 增强与背景区分度
- 同步 floating 变量到 dropdown 元素
2026-01-21 16:50:00 +08:00
yuding
99aece7b89 refactor(theme): 使用通用 floating 变量替代 glassPill overrides
- 新增 ThemeConfig 浮动组件层变量 (floatingBg, floatingBtnBg 等)
- 移除 overrides.glassPill,改用主层级通用变量
- 优化深色模式配色增强容器与按钮区分度
- CSS 变量名统一为 --bim-floating-*

BREAKING CHANGE: glassPill overrides 已移除,使用 floating* 变量替代
2026-01-21 16:46:14 +08:00
yuding
19f7e3ffbc feat(theme): 重构主题系统,新增 glass-pill 按钮样式
- ThemeConfig 接口扩展至 60+ 语义化属性
- 新增深浅主题预设 (glassPill overrides)
- button-group 支持 glass-pill 样式变体
- 默认主题改为浅色
- 移除 toolbar 容器硬编码定位
- 统一组件 CSS 变量命名规范
- 暂时隐藏下拉箭头
2026-01-21 15:50:07 +08:00
yuding
a930bc8a50 feat: 更新 SDK 构建产物和文档
- 更新 SDK 构建文件 (es/umd)
- 更新 SDK 使用文档
- 删除 gujianzhu.glb 模型文件
- 更新 package.json 配置
- 调整 tab 组件样式和 vite 配置

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 16:46:53 +08:00
yuding
f6257f5162 feat: 优化测量功能架构与引擎组件
- 重构测量激活逻辑,在 Engine 组件中添加统一的 activateMeasure(mode) 方法
- 简化 MeasureDialogManager,移除冗余的 handleMeasureTypeChange 方法
- 添加 EngineManager.activateMeasure 转发方法
- 修复 loadModel 错误,正确调用 Engine 组件方法
- 为 Engine 组件设置固定背景渐变色
- MeasurePanel 初始化时触发 onModeChange 回调
- 添加 MeasureMode 共享类型定义

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 14:13:13 +08:00
yuding
cd1f8186d0 初始化 2025-12-26 17:08:02 +08:00
yuding
bb82a1c555 初始化 2025-12-25 18:57:09 +08:00
yuding
9b6959585d 初始化 2025-12-25 15:47:57 +08:00
yuding
04a5e74284 初始化 2025-12-24 19:02:34 +08:00
yuding
4b5eb78bbb 增加测量窗口 2025-12-23 11:31:16 +08:00
yuding
7d522afb70 增加测量窗口 2025-12-22 18:48:38 +08:00
yuding
e1bb5558ff feat: enhance description component, update property panel with tabs, and refine docs 2025-12-22 16:41:24 +08:00
yuding
ed0414c75b 添加折叠面板 2025-12-22 15:39:58 +08:00
yuding
005535a26d 修改 2025-12-22 14:31:23 +08:00
yuding
9d1ebfd817 添加测试信息 2025-12-16 11:57:44 +08:00
yuding
2a2258cb9c feat(tree): implement tree component with checkbox support and manager pattern
- Added core Tree component (BimTree, BimTreeNode)
- Added TreeManager for lifecycle management
- Added ModelTreeManager for business logic encapsulation (Tree + Dialog)
- Integrated into BimEngine and updated demos
- Added internationalization support
2025-12-10 18:34:14 +08:00
yuding
ef79b5b370 refactor(right-key): move interaction logic to component and trigger on mouseup 2025-12-10 10:10:09 +08:00
yuding
9903a71015 style(menu): remove default list style bullets from menu 2025-12-10 09:42:05 +08:00
yuding
9ae1d9d809 fix(menu): refactor menu system to use pure config objects and fix submenu click events 2025-12-09 18:34:43 +08:00
yuding
c112c87dad 添加测试信息 2025-12-08 10:02:24 +08:00