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 @@