From 3211fd044d78a96c0f08842ec8467df9328c2549 Mon Sep 17 00:00:00 2001
From: jeje <jeremy.rioux@student-cs.fr>
Date: Wed, 12 Mar 2025 16:26:44 +0100
Subject: [PATCH] setting locked fait j'attends anneloutre

---
 .../gestion_clavier.cpython-311.pyc           | Bin 1341 -> 1343 bytes
 Objet/__pycache__/parameters.cpython-311.pyc  | Bin 7615 -> 7615 bytes
 Objet/__pycache__/ui.cpython-311.pyc          | Bin 23749 -> 25571 bytes
 Objet/gestion_clavier.py                      |   1 +
 Objet/main.py                                 |   2 +-
 Objet/ui.py                                   | 102 +++++++++++-------
 6 files changed, 65 insertions(+), 40 deletions(-)

diff --git a/Objet/__pycache__/gestion_clavier.cpython-311.pyc b/Objet/__pycache__/gestion_clavier.cpython-311.pyc
index a7b1fb79db747ef6d69c155959cc35292b00e1e8..124c2c9480caed225c6d0dfdae008f8d71ba09c3 100644
GIT binary patch
delta 59
zcmdnXwV#W3IWI340}#wycriV9BX0sTBlqS!W+q0~4{QuPqLYhR+W4gyr9Uvh39HE*
Gtfm0XOAgoo

delta 57
zcmdnbwU>)`IWI340}wb)x|p84kvD;vk#ln%GZQ2818$MYr7Ugyl8n+H7~q7(WG+@y
E0HyH`N&o-=

diff --git a/Objet/__pycache__/parameters.cpython-311.pyc b/Objet/__pycache__/parameters.cpython-311.pyc
index acab8178303e761a8a40957bd8f6b40be6dad88c..19264a5c389d48d0c0d2bad8fb832f43da817c38 100644
GIT binary patch
delta 19
ZcmdmQz2BN^IWI340}w<`-^jI9763P*1xEk?

delta 19
ZcmdmQz2BN^IWI340}wb)+Q_w4763N+1u6gl

diff --git a/Objet/__pycache__/ui.cpython-311.pyc b/Objet/__pycache__/ui.cpython-311.pyc
index b9a5bb884e9fee8e9c8148bd909b072fd6dd16f3..0c531f6e5aff67b0bd8815cfaeca7a7868e32057 100644
GIT binary patch
delta 6090
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

delta 4485
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
EZ`Z<%N&o-=

diff --git a/Objet/gestion_clavier.py b/Objet/gestion_clavier.py
index 8f6c608..84baf09 100644
--- a/Objet/gestion_clavier.py
+++ b/Objet/gestion_clavier.py
@@ -24,6 +24,7 @@ def update(key, vid_mana, session, ui, prev_mode, mode):
     
     if key == 13:
         ui.change_setting_mode()
+        
 
     return prev_mode, mode
 
diff --git a/Objet/main.py b/Objet/main.py
index 9f731bc..95bada3 100644
--- a/Objet/main.py
+++ b/Objet/main.py
@@ -58,7 +58,6 @@ class Main:
                     self.display.load_traj(self.traj)
                     self.session.next_video()
 
-            self.display.draw_shape()
             self.display.draw_traj()   
 
             if self.mode == "parameters":
@@ -66,6 +65,7 @@ class Main:
                 self.display.frame = (self.display.frame * darken_factor).astype(np.uint8)
 
             if self.ui.is_mouse_moving():
+                self.display.draw_shape()
                 self.display.draw_all_points()
 
             cv2.imshow('main', self.display.frame)
diff --git a/Objet/ui.py b/Objet/ui.py
index ff4b5d6..6d14687 100644
--- a/Objet/ui.py
+++ b/Objet/ui.py
@@ -33,7 +33,7 @@ class UI:
 
         self.point_pp = copy.copy(self.point_defaut)
 
-        self.linked = False
+        self.setting_locked = False
 
         
     def update_bar(self):
@@ -43,6 +43,8 @@ class UI:
     def move_parameters(self):
         cv2.setMouseCallback('main', self.mouse_event)
         self.update_bar()
+        if self.setting_locked:
+            self.update_linked()
         if self.dragging and self.point_near:
             self.actu_para()
         else :
@@ -88,9 +90,9 @@ class UI:
             self.point_pp = copy.copy(self.point_defaut)
     
     def change_setting_mode(self):
-        if not self.linked:
+        if not self.setting_locked:
             self.update_user_info()
-        self.linked = not self.linked
+        self.setting_locked = not self.setting_locked
 
     def update_user_info(self):
         def get_point(name):
@@ -172,7 +174,7 @@ class UI:
 
         point = self.point_pp
         name = point.name
-        if not self.linked:
+        if not self.setting_locked:
             if name == "net":          
                 update_ref("ant_tl")
                 update_ref("ant_bl")
@@ -182,14 +184,14 @@ class UI:
 
             if name == "ant_bl":
                 valid_to_right("ant_br")
-                update_ref("ant_tl")
-                update()
+                update_ref_x("ant_tl")
+                update_x()
                 update_center("net", "ant_bl", "ant_br")
             
             if name == "ant_br":
                 valid_to_left("ant_bl")
-                update_ref("ant_tr")
-                update()
+                update_ref_x("ant_tr")
+                update_x()
                 update_center("net", "ant_bl", "ant_br")
             
             if name == "ant_tl":
@@ -300,46 +302,68 @@ class UI:
                 valid_to_right("bar_point_right")
                 update_x()
         else:
-            net = get_point("net")
-            ant_height = net.y - get_point("ant_tl").y
             if name == "ant_tl":
                 valid_to_down("ant_bl")
                 valid_to_right("ant_tr")
-                update_y()
+                update()
+                get_point("ant_bl").x = get_point("ant_tl").x
                 get_point("ant_tr").y = get_point("ant_tl").y
-                get_point("set_height").y = net.y - self.set_height * ant_height
-                get_point("set_margin_over").y = net.y - self.set_margin_over * ant_height
-                get_point("set_margin_under").y = net.y - self.set_margin_under * ant_height
-                get_point("wind_l_tl").y = net.y - self.wind_l_t * ant_height
-                get_point("wind_l_bl").y = net.y - self.wind_l_b * ant_height
-                get_point("wind_l_tr").y = net.y - self.wind_l_t * ant_height
-                get_point("wind_l_br").y = net.y - self.wind_l_b * ant_height
-                update_center("wind_l_m", "wind_l_tl", "wind_l_br")
-                get_point("wind_r_tl").y = net.y - self.wind_r_t * ant_height
-                get_point("wind_r_bl").y = net.y - self.wind_r_b * ant_height
-                get_point("wind_r_tr").y = net.y - self.wind_r_t * ant_height
-                get_point("wind_r_br").y = net.y - self.wind_r_b * ant_height
-                update_center("wind_r_m", "wind_r_tl", "wind_r_br")
-
             if name == "ant_tr":
                 valid_to_down("ant_br")
                 valid_to_left("ant_tl")
-                update_y()
+                update()
+                get_point("ant_br").x = get_point("ant_tr").x
                 get_point("ant_tl").y = get_point("ant_tr").y
-                get_point("set_height").y = net.y - self.set_height * ant_height
-                get_point("set_margin_over").y = net.y - self.set_margin_over * ant_height
-                get_point("set_margin_under").y = net.y - self.set_margin_under * ant_height
-                get_point("wind_l_tl").y = net.y - self.wind_l_t * ant_height
-                get_point("wind_l_bl").y = net.y - self.wind_l_b * ant_height
-                get_point("wind_l_tr").y = net.y - self.wind_l_t * ant_height
-                get_point("wind_l_br").y = net.y - self.wind_l_b * ant_height
-                update_center("wind_l_m", "wind_l_tl", "wind_l_br")
-                get_point("wind_r_tl").y = net.y - self.wind_r_t * ant_height
-                get_point("wind_r_bl").y = net.y - self.wind_r_b * ant_height
-                get_point("wind_r_tr").y = net.y - self.wind_r_t * ant_height
-                get_point("wind_r_br").y = net.y - self.wind_r_b * ant_height
-                update_center("wind_r_m", "wind_r_tl", "wind_r_br")
+            if name == "ant_bl":
+                valid_to_up("ant_tl")
+                valid_to_right("ant_br")
+                update()
+                get_point("ant_tl").x = get_point("ant_bl").x
+                get_point("ant_br").y = get_point("ant_bl").y
+            if name == "ant_br":
+                valid_to_up("ant_tr")
+                valid_to_left("ant_bl")
+                update()
+                get_point("ant_tr").x = get_point("ant_br").x
+                get_point("ant_bl").y = get_point("ant_br").y
             
+    def update_linked(self):
+        def get_point(name):
+            return self.param.get_point(name)
+        def update_center(name1, name2, name3):
+            get_point(name1).x = self.param.get_center_x(name2, name3)
+            get_point(name1).y = self.param.get_center_y(name2, name3)
+
+        net = get_point("net")
+        ant_height = net.y - get_point("ant_tl").y
+        ant_witdh = get_point("ant_tr").x - get_point("ant_tl").x
+        
+        get_point("set_height").y = net.y - self.set_height * ant_height
+        get_point("set_margin_over").y = net.y - self.set_margin_over * ant_height
+        get_point("set_margin_under").y = net.y - self.set_margin_under * ant_height
+        get_point("wind_l_tl").y = net.y - self.wind_l_t * ant_height
+        get_point("wind_l_bl").y = net.y - self.wind_l_b * ant_height
+        get_point("wind_l_tr").y = net.y - self.wind_l_t * ant_height
+        get_point("wind_l_br").y = net.y - self.wind_l_b * ant_height
+        
+        get_point("wind_r_tl").y = net.y - self.wind_r_t * ant_height
+        get_point("wind_r_bl").y = net.y - self.wind_r_b * ant_height
+        get_point("wind_r_tr").y = net.y - self.wind_r_t * ant_height
+        get_point("wind_r_br").y = net.y - self.wind_r_b * ant_height
+
+        get_point("wind_l_tl").x = get_point("ant_tl").x + self.wind_l_l * ant_witdh
+        get_point("wind_l_bl").x = get_point("ant_tl").x + self.wind_l_l * ant_witdh
+        get_point("wind_l_tr").x = get_point("ant_tl").x + self.wind_l_r * ant_witdh
+        get_point("wind_l_br").x = get_point("ant_tl").x + self.wind_l_r * ant_witdh
+        get_point("wind_r_tl").x = get_point("ant_tr").x - self.wind_r_l * ant_witdh
+        get_point("wind_r_bl").x = get_point("ant_tr").x - self.wind_r_l * ant_witdh
+        get_point("wind_r_tr").x = get_point("ant_tr").x - self.wind_r_r * ant_witdh
+        get_point("wind_r_br").x = get_point("ant_tr").x - self.wind_r_r * ant_witdh
+
+        update_center("wind_l_m", "wind_l_tl", "wind_l_br")
+        update_center("wind_r_m", "wind_r_tl", "wind_r_br")
+        update_center("net", "ant_bl", "ant_br")
+
 
 if __name__ == "__main__":
     subprocess.run(["python", "Objet/Main.py"])
\ No newline at end of file
-- 
GitLab