From 073d4053b32f63ff6f422283a807966a2bd23cf2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20=C5=A0toura=C4=8D?= <525032@mail.muni.cz>
Date: Sat, 18 May 2024 14:28:46 +0200
Subject: [PATCH] fix mutual orientation to be the same as rofi-tool

---
 src/edit/src/editor.cpp    | 6 ++----
 src/rofi/src/connector.cpp | 5 +----
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/src/edit/src/editor.cpp b/src/edit/src/editor.cpp
index 3eb5925..9388074 100644
--- a/src/edit/src/editor.cpp
+++ b/src/edit/src/editor.cpp
@@ -2680,11 +2680,9 @@ void Editor::teleportModulesByConnectors(const connector_ptr source_connector, c
     const auto oriented_angle = glm::orientedAngle(source_north, destination_north, destination_facing);
 
     source_parent->rotateRotationQuat(glm::angleAxis(oriented_angle, destination_facing));
+    
     // Rotate to selected cardinality
-    // Have to use -radians because cardinality is from destination to source and this needs to rotate the source to the destination
-    auto orientation = source_is_head || destination_is_head 
-                       ? glm::radians(rofi::cardinal_to_degree(selected_cardinality)) 
-                       : -glm::radians(rofi::cardinal_to_degree(selected_cardinality));
+    auto orientation = glm::radians(rofi::cardinal_to_degree(selected_cardinality));
 
     source_parent->rotateRotationQuat(glm::angleAxis(orientation, destination_facing));
 
diff --git a/src/rofi/src/connector.cpp b/src/rofi/src/connector.cpp
index cf6d6c3..b863f9f 100644
--- a/src/rofi/src/connector.cpp
+++ b/src/rofi/src/connector.cpp
@@ -94,10 +94,7 @@ cardinal Connector::get_mutual_orientation(connector_ptr source_connector, conne
 
     auto oriented_angle = glm::degrees(glm::orientedAngle(destination_north, 
                                                           source_north, 
-                                                          source_connector->getNode()->getRotationAxisZWorld()));
-
-    if (source_is_head || destination_is_head)
-        oriented_angle = -oriented_angle;                                                    
+                                                          destination_connector->getNode()->getRotationAxisZWorld()));                                                 
 
     return degree_to_cardinal(oriented_angle);
 }
-- 
GitLab