Optim object picker & isDelete flag

This commit is contained in:
2022-03-16 12:45:47 +08:00
parent d7386bce68
commit f358ac07c6
10 changed files with 182 additions and 61 deletions
+25
View File
@@ -52,6 +52,31 @@ class CtrlObject extends LabelObject {
public delete() {
this.model.deleteObject([this]);
}
/**
* 判断是否为相同对象
*/
public equal(obj: CtrlObject): boolean {
return this === obj || this.id === obj.id;
}
/**
* 删除标记
*/
private deleteFlag: boolean = false;
/**
* 是否被删除
*/
public isDeleted(): boolean {
if (this.deleteFlag) return true;
for (let i = 0; i < this.model.objectPool.length; i++) {
if (this.model.objectPool[i].equal(this)) return false;
}
this.deleteFlag = true;
return true;
}
}
export default CtrlObject;
+7
View File
@@ -44,13 +44,20 @@ class Label {
return this === label || this.id === label.id;
}
/**
* 删除标记
*/
private deleteFlag: boolean = false;
/**
* 是否被删除
*/
public isDeleted(): boolean {
if (this.deleteFlag) return true;
for (let i = 0; i < this.model.labelPool.length; i++) {
if (this.model.labelPool[i].equal(this)) return false;
}
this.deleteFlag = true;
return true;
}
}