mirror of
https://code.lenaisten.de/Lenaisten/advent22.git
synced 2024-11-23 00:03:07 +00:00
"rectangles" property
This commit is contained in:
parent
93f31cd2b8
commit
9647132569
1 changed files with 14 additions and 6 deletions
|
@ -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) {
|
||||||
|
|
Loading…
Reference in a new issue