refactor(engine): update EngineManager layer to accept models parameter

- Add getHighlightModels() to retrieve selected models
- Update hideSelectedModels → hideModels(models)
- Update translucentSelectedModels → translucentModels(models)
- Update isolateSelectedModels → isolateModels(models)
- Update translucentOtherModels to accept models parameter
- Update batch select methods to accept models parameter
- Update right-click menu handlers to use new API pattern

Tasks 7-9 completed from refactor-model-operations plan.
This commit is contained in:
yuding
2026-02-04 15:28:50 +08:00
parent a30e87e577
commit 1ff331e0e0
5 changed files with 157 additions and 24 deletions

View File

@@ -76,7 +76,10 @@ export class EngineManager extends BaseManager {
group: 'component',
order: 2,
onClick: () => {
this.hideSelectedModels();
const models = this.getHighlightModels();
if (models) {
this.hideModels(models);
}
this.rightKey?.hide();
}
});
@@ -88,7 +91,10 @@ export class EngineManager extends BaseManager {
group: 'component',
order: 3,
onClick: () => {
this.translucentSelectedModels();
const models = this.getHighlightModels();
if (models) {
this.translucentModels(models);
}
this.rightKey?.hide();
}
});
@@ -117,7 +123,10 @@ export class EngineManager extends BaseManager {
id: 'hideOthers',
label: 'menu.hideOthers',
onClick: () => {
this.isolateSelectedModels();
const models = this.getHighlightModels();
if (models) {
this.isolateModels(models);
}
this.rightKey?.hide();
}
},
@@ -125,7 +134,10 @@ export class EngineManager extends BaseManager {
id: 'transparentOthers',
label: 'menu.transparentOthers',
onClick: () => {
this.translucentOtherModels();
const models = this.getHighlightModels();
if (models) {
this.translucentOtherModels(models);
}
this.rightKey?.hide();
}
}
@@ -143,7 +155,10 @@ export class EngineManager extends BaseManager {
id: 'selectSameType',
label: 'menu.selectSameType',
onClick: () => {
this.batchSelectSameTypeModel();
const models = this.getHighlightModels();
if (models) {
this.batchSelectSameTypeModel(models);
}
this.rightKey?.hide();
}
},
@@ -151,7 +166,10 @@ export class EngineManager extends BaseManager {
id: 'selectSameLevel',
label: 'menu.selectSameLevel',
onClick: () => {
this.batchSelectSameLevelModel();
const models = this.getHighlightModels();
if (models) {
this.batchSelectSameLevelModel(models);
}
this.rightKey?.hide();
}
},
@@ -159,7 +177,10 @@ export class EngineManager extends BaseManager {
id: 'selectSameLevelType',
label: 'menu.selectSameLevelType',
onClick: () => {
this.batchSelectSameLevelTypeModel();
const models = this.getHighlightModels();
if (models) {
this.batchSelectSameLevelTypeModel(models);
}
this.rightKey?.hide();
}
}
@@ -540,17 +561,27 @@ export class EngineManager extends BaseManager {
// ==================== 构件操作 ====================
/**
* 隐藏选中构件
* 获取当前高亮(选中)的模型
* @returns 高亮模型对象,未选中时返回 null
*/
public hideSelectedModels(): void {
this.engineInstance?.hideSelectedModels();
public getHighlightModels(): any {
return this.engineInstance?.getHighlightModels() ?? null;
}
/**
* 半透明选中构件
* 隐藏指定模型
* @param models 要隐藏的模型对象
*/
public translucentSelectedModels(): void {
this.engineInstance?.translucentSelectedModels();
public hideModels(models: any): void {
this.engineInstance?.hideModels(models);
}
/**
* 半透明指定模型
* @param models 要半透明的模型对象
*/
public translucentModels(models: any): void {
this.engineInstance?.translucentModels(models);
}
/**
@@ -561,17 +592,19 @@ export class EngineManager extends BaseManager {
}
/**
* 隔离选中构件(隐藏其他)
* 隔离指定模型(隐藏其他)
* @param models 要隔离的模型对象
*/
public isolateSelectedModels(): void {
this.engineInstance?.isolateSelectedModels();
public isolateModels(models: any): void {
this.engineInstance?.isolateModels(models);
}
/**
* 半透明其他构件
* @param models 基准模型对象
*/
public translucentOtherModels(): void {
this.engineInstance?.translucentOtherModels();
public translucentOtherModels(models: any): void {
this.engineInstance?.translucentOtherModels(models);
}
/**
@@ -583,23 +616,26 @@ export class EngineManager extends BaseManager {
/**
* 批量选择同类模型
* @param models 基准模型对象
*/
public batchSelectSameTypeModel(): void {
this.engineInstance?.batchSelectSameTypeModel();
public batchSelectSameTypeModel(models: any): void {
this.engineInstance?.batchSelectSameTypeModel(models);
}
/**
* 批量选择同层模型
* @param models 基准模型对象
*/
public batchSelectSameLevelModel(): void {
this.engineInstance?.batchSelectSameLevelModel();
public batchSelectSameLevelModel(models: any): void {
this.engineInstance?.batchSelectSameLevelModel(models);
}
/**
* 批量选择同层同类模型
* @param models 基准模型对象
*/
public batchSelectSameLevelTypeModel(): void {
this.engineInstance?.batchSelectSameLevelTypeModel();
public batchSelectSameLevelTypeModel(models: any): void {
this.engineInstance?.batchSelectSameLevelTypeModel(models);
}
// ==================== 结束:构件操作 ====================