diff --git a/src/main/angular/src/app/editor/circuit/Parts.ts b/src/main/angular/src/app/editor/circuit/Parts.ts index bc195f7..3b3e130 100644 --- a/src/main/angular/src/app/editor/circuit/Parts.ts +++ b/src/main/angular/src/app/editor/circuit/Parts.ts @@ -46,6 +46,11 @@ export class Parts { } } + rotate(part: Part) { + part.rotate = (part.rotate + 1) % 4; + setTimeout(() => part.updateJunctionPositions(), 0); + } + private reset() { this.part = null; this.partStart = null; diff --git a/src/main/angular/src/app/editor/parts/Part.ts b/src/main/angular/src/app/editor/parts/Part.ts index 88fe403..e814214 100644 --- a/src/main/angular/src/app/editor/parts/Part.ts +++ b/src/main/angular/src/app/editor/parts/Part.ts @@ -12,6 +12,8 @@ export abstract class Part { y: number; + rotate: number = 0; + protected constructor( readonly circuit: Circuit, readonly type: PartType, @@ -40,6 +42,10 @@ export abstract class Part { this.resetCalculations2(); } + transform(): string { + return `rotate(${this.rotate % 4 * 90} ${RASTER * 1.5} ${RASTER * 1.5})`; + } + resetCalculations2(): void { // } diff --git a/src/main/angular/src/app/editor/parts/part.component.svg b/src/main/angular/src/app/editor/parts/part.component.svg index f773ff8..5b688e4 100644 --- a/src/main/angular/src/app/editor/parts/part.component.svg +++ b/src/main/angular/src/app/editor/parts/part.component.svg @@ -7,18 +7,23 @@ [attr.height]="RASTER * 3 + 'px'" [class.partDrag]="parts.isDragged(part)" (mousedown)="parts.mouseDown(part, $event)" + (contextmenu)="parts.rotate(part); $event.preventDefault()" > - + - + - + - + - + - + + + + + diff --git a/src/main/angular/src/app/editor/parts/part.component.ts b/src/main/angular/src/app/editor/parts/part.component.ts index 416076f..e0942b6 100644 --- a/src/main/angular/src/app/editor/parts/part.component.ts +++ b/src/main/angular/src/app/editor/parts/part.component.ts @@ -71,4 +71,5 @@ export class PartComponent { } protected readonly RASTER = RASTER; + } diff --git a/src/main/angular/src/app/editor/wire/wire.component.svg b/src/main/angular/src/app/editor/wire/wire.component.svg index 476dedb..c6d081a 100644 --- a/src/main/angular/src/app/editor/wire/wire.component.svg +++ b/src/main/angular/src/app/editor/wire/wire.component.svg @@ -1,6 +1,6 @@ - + diff --git a/src/main/angular/src/app/editor/wire/wire.component.ts b/src/main/angular/src/app/editor/wire/wire.component.ts index 89d934a..e9f9fe7 100644 --- a/src/main/angular/src/app/editor/wire/wire.component.ts +++ b/src/main/angular/src/app/editor/wire/wire.component.ts @@ -169,8 +169,7 @@ export class WireComponent { return fadeColor((ratio - 0.5) * 2, 'magenta', 'red'); } - click($event: MouseEvent) { - console.log($event); + rightclick($event: MouseEvent) { $event.preventDefault(); if ($event.button === 2 && this.wire) { this.wire.disconnect();