delete associated label if object is removed

This commit is contained in:
Val Erastov 2022-07-16 05:21:16 -05:00
parent 9e1c723415
commit afe8853fe8
3 changed files with 19 additions and 8 deletions

View file

@ -265,15 +265,18 @@ class ParametricManager {
obj.constraints.clear();
obj.generators.clear();
this.viewer.dimLayer.traverseSketchObjects(dim => {
obj.accept(o => {
if (dim.dependsOn && dim.dependsOn(o)) {
this._removeObject(dim);
return false;
}
return true;
[this.viewer.dimLayer, this.viewer.labelLayer].forEach(l => {
l.traverseSketchObjects(dim => {
obj.accept(o => {
if (dim.dependsOn && dim.dependsOn(o)) {
this._removeObject(dim);
return false;
}
return true;
});
});
});
})
};
invalidate() {

View file

@ -21,6 +21,10 @@ export class Label extends SketchObject {
this.offsetY = 0;
}
dependsOn(other: SketchObject) {
return this.assignedObject === other;
}
translateImpl(dx, dy) {
this.offsetX += dx;
this.offsetY += dy;

View file

@ -27,6 +27,10 @@ export abstract class SketchObject extends Shape implements SolvableObject {
this.id = id || this.ref;
}
dependsOn(obj: SketchObject): boolean {
return false;
};
get isGenerated() {
let obj: SketchObject = this;
while (obj) {