"rectangles" property

This commit is contained in:
Jörn-Michael Miehe 2023-01-19 00:27:38 +00:00
parent 93f31cd2b8
commit 9647132569

View file

@ -13,7 +13,7 @@
@dblclick.left="remove_rect" @dblclick.left="remove_rect"
> >
<Rect <Rect
v-for="(rect, index) in rectangles" v-for="(rect, index) in _rectangles"
:key="'rect' + index" :key="'rect' + index"
:rectangle="rect" :rectangle="rect"
/> />
@ -56,7 +56,7 @@ export default class RectPad extends Vue {
private dragging = false; private dragging = false;
private drag_rect?: Rectangle; private drag_rect?: Rectangle;
private drag_origin = new Vector2D(); private drag_origin = new Vector2D();
private rectangles: Rectangle[] = []; private _rectangles: Rectangle[] = [];
private get preview_visible(): boolean { private get preview_visible(): boolean {
return this.drawing || this.dragging; return this.drawing || this.dragging;
@ -69,14 +69,22 @@ export default class RectPad extends Vue {
).normalize(); ).normalize();
} }
public get rectangles(): Rectangle[] {
return this._rectangles; //.map((rect) => rect.normalize());
}
public set rectangles(rects: Rectangle[]) {
this._rectangles = rects; //.map((rect) => rect.normalize());
}
private pop_rectangle(point: Vector2D): Rectangle | undefined { private pop_rectangle(point: Vector2D): Rectangle | undefined {
const idx = this.rectangles.findIndex((rect) => rect.contains(point)); const idx = this._rectangles.findIndex((rect) => rect.contains(point));
if (idx === -1) { if (idx === -1) {
return; return;
} }
return this.rectangles.splice(idx, 1)[0]; return this._rectangles.splice(idx, 1)[0];
} }
private draw_start(event: MouseEvent) { private draw_start(event: MouseEvent) {
@ -100,7 +108,7 @@ export default class RectPad extends Vue {
return; return;
} }
this.rectangles.push(this.preview_rectangle); this._rectangles.push(this.preview_rectangle);
} }
private drag_start(event: MouseEvent) { private drag_start(event: MouseEvent) {
@ -128,7 +136,7 @@ export default class RectPad extends Vue {
} }
this.dragging = false; this.dragging = false;
this.rectangles.push(this.preview_rectangle); this._rectangles.push(this.preview_rectangle);
} }
private on_mousemove(event: MouseEvent) { private on_mousemove(event: MouseEvent) {