refactor(section-managers): adapt to unified clipping API
SectionAxisDialogManager:
- Update activateSectionAxis → activeSection in callbacks
SectionBoxDialogManager:
- Update activateSectionBox → activeSection('box')
- Disable fitSectionBoxToModel and resetSectionBox (not supported)
SectionPlaneDialogManager:
- Add activeSection('face') to onDialogCreated
- Add deactivateSection() to onBeforeDestroy
- Wire onHide to engine.clipping.disabled()
- Keep onReverse/onReset as log-only (not supported)
This commit is contained in:
@@ -66,7 +66,7 @@ export class SectionAxisDialogManager extends BaseDialogManager {
|
||||
},
|
||||
onAxisChange: (axis) => {
|
||||
console.log('[SectionAxisDialogManager] 切换轴向:', axis);
|
||||
this.registry.engine3d?.activateSectionAxis(axis);
|
||||
this.registry.engine3d?.activeSection(axis);
|
||||
}
|
||||
});
|
||||
this.panel.init();
|
||||
@@ -84,7 +84,7 @@ export class SectionAxisDialogManager extends BaseDialogManager {
|
||||
}
|
||||
|
||||
// 自动激活默认轴向剖切(X轴)
|
||||
this.registry.engine3d.activateSectionAxis('x');
|
||||
this.registry.engine3d.activeSection('x');
|
||||
}
|
||||
|
||||
/** 对话框关闭时的回调,取消工具栏按钮激活状态 */
|
||||
@@ -94,8 +94,7 @@ export class SectionAxisDialogManager extends BaseDialogManager {
|
||||
|
||||
/** 销毁前的清理,销毁面板实例 */
|
||||
protected onBeforeDestroy(): void {
|
||||
// 停用轴向剖切
|
||||
this.registry.engine3d?.deactivateSectionAxis();
|
||||
this.registry.engine3d?.deactivateSection();
|
||||
|
||||
if (this.panel) {
|
||||
this.panel.destroy();
|
||||
|
||||
@@ -65,10 +65,10 @@ export class SectionBoxDialogManager extends BaseDialogManager {
|
||||
console.log('[SectionBoxDialogManager] 反向切换(底层暂不支持):', isReversed);
|
||||
},
|
||||
onFitToModel: () => {
|
||||
this.registry.engine3d?.fitSectionBoxToModel();
|
||||
console.log('[SectionBoxDialogManager] Fit to model not supported in new API');
|
||||
},
|
||||
onReset: () => {
|
||||
this.registry.engine3d?.resetSectionBox();
|
||||
console.log('[SectionBoxDialogManager] Reset not supported in new API');
|
||||
},
|
||||
onRangeChange: (range) => {
|
||||
this.registry.engine3d?.setSectionBoxRange(range);
|
||||
@@ -80,7 +80,7 @@ export class SectionBoxDialogManager extends BaseDialogManager {
|
||||
|
||||
/** 对话框创建后的回调,激活剖切盒并自适应高度 */
|
||||
protected onDialogCreated(): void {
|
||||
this.registry.engine3d?.activateSectionBox();
|
||||
this.registry.engine3d?.activeSection('box');
|
||||
this.dialog?.fitHeight(false);
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ export class SectionBoxDialogManager extends BaseDialogManager {
|
||||
|
||||
/** 销毁前的清理,停用剖切盒并销毁面板实例 */
|
||||
protected onBeforeDestroy(): void {
|
||||
this.registry.engine3d?.deactivateSectionBox();
|
||||
this.registry.engine3d?.deactivateSection();
|
||||
if (this.panel) {
|
||||
this.panel.destroy();
|
||||
this.panel = null;
|
||||
|
||||
@@ -49,18 +49,27 @@ export class SectionPlaneDialogManager extends BaseDialogManager {
|
||||
this.panel = new SectionPlanePanel({
|
||||
onHide: () => {
|
||||
console.log('[SectionPlaneDialogManager] 隐藏');
|
||||
if (this.registry.engine3d) {
|
||||
(this.registry.engine3d as any).engine?.clipping?.disabled();
|
||||
}
|
||||
},
|
||||
onReverse: () => {
|
||||
console.log('[SectionPlaneDialogManager] 反向');
|
||||
console.log('[SectionPlaneDialogManager] 反向 (not supported in new API)');
|
||||
},
|
||||
onReset: () => {
|
||||
console.log('[SectionPlaneDialogManager] 重置');
|
||||
console.log('[SectionPlaneDialogManager] 重置 (not supported in new API)');
|
||||
}
|
||||
});
|
||||
this.panel.init();
|
||||
return this.panel.element;
|
||||
}
|
||||
|
||||
/** 对话框创建后的回调 */
|
||||
protected onDialogCreated(): void {
|
||||
this.registry.engine3d?.activeSection('face');
|
||||
this.dialog?.fitHeight(false);
|
||||
}
|
||||
|
||||
/** 对话框关闭时的回调 */
|
||||
protected onDialogClose(): void {
|
||||
this.registry.toolbar?.setBtnActive('section-plane', false);
|
||||
@@ -68,6 +77,7 @@ export class SectionPlaneDialogManager extends BaseDialogManager {
|
||||
|
||||
/** 销毁前的清理 */
|
||||
protected onBeforeDestroy(): void {
|
||||
this.registry.engine3d?.deactivateSection();
|
||||
if (this.panel) {
|
||||
this.panel.destroy();
|
||||
this.panel = null;
|
||||
|
||||
Reference in New Issue
Block a user