From 959c4dbabc7dc33066e3b0c5dffd50d6a89016d0 Mon Sep 17 00:00:00 2001
From: jeje <jeremy.rioux@student-cs.fr>
Date: Mon, 17 Mar 2025 15:54:33 +0100
Subject: [PATCH] affichage mi smooth + appuyer sur echap pour plein ecran

---
 Objet/__pycache__/display.cpython-311.pyc     | Bin 7197 -> 7900 bytes
 .../gestion_clavier.cpython-311.pyc           | Bin 1343 -> 1456 bytes
 Objet/__pycache__/parameters.cpython-311.pyc  | Bin 7615 -> 8163 bytes
 Objet/__pycache__/ui.cpython-311.pyc          | Bin 25571 -> 26195 bytes
 Objet/display.py                              |  17 +++++++++------
 Objet/gestion_clavier.py                      |   5 ++++-
 Objet/main.py                                 |  20 ++++++++----------
 Objet/parameters.py                           |   8 +++++++
 Objet/ui.py                                   |   9 +++++++-
 9 files changed, 40 insertions(+), 19 deletions(-)

diff --git a/Objet/__pycache__/display.cpython-311.pyc b/Objet/__pycache__/display.cpython-311.pyc
index 696fe0c14ae595903f24b7cb38ee0af0fa6dd156..47c03061a540418584efdf3d7ea6e7fdba203caa 100644
GIT binary patch
delta 1954
zcmah}Urbw77(eIU-qPN-w}0q`{voV`l~R}!5z8M#M8}KEBy(N1(1~5$DNvxLIk$6@
zl#B<AkdTFWwqT4V#0QMo%dqcibPxKl1QHTSb%`%#F~)>NqYu9Lo!fS{lw_y({_b~v
z=R4my=R5s<pAP&ytbA^>$q3r-efv`@?%T@OvdFv8{v@}5JUQ$n4a+!YBBo^&GZW(!
zBIeKVq(Ed~W#S@M_*#e!My*5vv=KX?LL5;PZe$UB1)nZ#;IEAM3wF_z5vZ4CWUpYw
zOfmJ5MIn!7gwk>d%~V!KqiAAaQOt`ohRPVhv-&9Qu3?2T8>nH$GOOm%ro^5!t5?M>
zjL<!JOAVv7!JMtqgOwX9c3vQcJYIm5z|JZp%3~sJNe}_vQp=-w#Y6<bS&b}f?rfr7
zU@1RQ*hF32b^x%C&E2oiR<Mee1R<A_sj2B)l7tP^%sKfT%85);)4)z#ot>id*D|Ci
zW#?0woW^qy2(W!~r1^a?m(afIy%XDre;D6YJNDF$6`8r^u@jF}&z<;Y?7s7UY`gUv
z_XFSev7PbQu6lV-y}V*rlULx!=Hx<eSkRZHy%0>}TMY!L1wQl?z=CTurDf+5@0}tv
zaXqf@;3PX^8OI{q6y1Ry*v$uM1FfJ*Oz^U4QCzLc(<X*&yV-$3X<0Png;BJQCmt?J
zd5H+K`Zd$8RkSH^Cy#*gA~|#~oMR4a&@K^Uc|!Er6SCGI>sLIgNDQ^ttcUy78nj77
zE{DsnBDO6zjp(ae>fMR;2+mf|u`{+H`%+e4(*rr`9f<P?&UFOW$j;gV?sdGTK$_g;
zZN}l$2A(E^eg>Bk#8usMwcT4v2omNiPrXo^Fn|4$>_7>X6L#!~(NTNnxg7sPl-rE4
zV&x6wcu5@9mk#1+s};xUVR5uGYER?m*e`Y!53|4RUATuGcZ6_+z3%W^Mj*bf8QRb0
z9Ug`Ei^fDI7tc{T!0tNw@d$h9c&T-e56D_F7oXN86c#D>EdvWUTiV{>eGWwj_e&?}
zR4Nk(H6<w>;$vOxZD+8%8_cly8{y2GPvL*@HdKq(+4-_AUiv(rWh|+u2kfGpP0&O-
zK9|yRbeM;EfwPh}oyaCNp0+C>+{eyNBcG{lGu74Z^3`g0Up-bBbVY@>U!S4h14H4K
zyB&MZL#PF3jY{WInPjx^gZeJUy=<hp$#;SKG}igVZ(J;7n_tB)9;0%Qaj<EOedh_|
zDEq_X$K%ZGO|u84COpLKg8wGL)kS&>bbL?OGR#A`RQ!aoq9L6~W#B^eDrZckwdwim
zr6hKMpT<jXsmv4`NU6ds*q?5&MDU8LwE!%kM<&afydL?e?~|e6uBl_s)Ui`}D6iXN
zVXT*0`1qh3wzDPg;E52J^hFN5l+jBZ_)#g(2aR$dY~S08|7HJpCnA#c7Cu0A=)%%z
z;H%JxLY+I2iPFPv`l22ymO|X+FtDF|la?ebR21p844r0Y{T@8elK%5O;~0bY(fCB?
N|EeCn!5;e~{{c3Zr#S!s

delta 1385
zcmah|O>Yxd6n$^THul&v{+OhWoi7Js;t3(4q6C7Pwy7d2RU$w_sfd(1hG!g8+lihX
zK5daoky<JiL3aT~MTJ(Ps#uyuSFQK~MeL9)s;bMXLNcYRcG2EDV^XA8>S%P{^}Xku
zxxVkcr<1o27~kr;#_$O?ALRzk>&B0oLO=0&F@OEZ$X?GnoA-)sh`t;X-mm!?E_~~J
zUK2s#$JH+aSPKXpQ5VJ>vqJC=U*xCjcli$<Zo#6r)PI^gmNvQ&Rr23JxWTIIEDR{7
zHq90e)OeMjRba|zj^S#v5rpzF@tI6ebu+8BvYl0SM}>iSC*+i%#@V$A!LSV%{OwCA
zxJ+of%<mNGLt(?cvYanf%47oHXycxF4AvMlwV6QEt@wtT3_<Gf*c*eI|E4KNkzmsk
z3F*gJ?uM~Il&9dmz)7ya-9U%+0Gs<1|Hx+yN5j{>HKod@*#=+usisy{Y~F5J4qt_4
zEZU{8sv^{TIFS3BL!lhJttSJj@U+--|HJ-DPr@IuPRGvG#_qYE45~tF*;TKyI~-@!
z;RyU~1jh`sQxSTb%0(l|ZSlKy^P#O25pI)<w8@!p*+_&o_%#D3)6r@!4G;Bh9OhIo
z35P;m7+rB9RS_}xB$$9-f^M8myv0BM%51u~egyhML;uaDzYU=rN_p%vG627aiqR3;
zS2`ZfMz1*=eGrzz!+Zp8g@+FB#bU#gDOJ*^3awRI>Tmy$aFT$wSiZ5zsuV2M$=L;>
zII@bA`@o3o=aX<KvafHP3R*c^NiSvdxupuKY&!?wi%8G*_sN-{5h7kOBXjvudbK37
zQtqdk1y3T$=rD%Zk)X`XOR!WJGE+&*<s5!(B_lJ%bRl1^$b-mfxXVkKm28<V<RW}-
zraZeaDzCx!<_?~yKQrePrK#0Vy|#mQ9l^?_@N~YsQpj8!6*6-keM;FQ_1n>N{Pi)c
z$^jD7MNPcCE5}G=ZV{y~%+{x4Q#?YZmd9>Rp1@ds2sh#uKMD`y-TVXiIbPIeEH2|j
zGa%73(Z7>edkA(D948<bNuQEOq1MyKe}yl57J{l9FY_j75bo{p&hW=O5914Cy>mY1
za*s9%;8yRM!H-biP~~b#X2?k=p!@!p_s!z6SS@7Vl1nhyH@jz+bCk8m=XU<jSF0ts
H*Ejwz(U2%Y

diff --git a/Objet/__pycache__/gestion_clavier.cpython-311.pyc b/Objet/__pycache__/gestion_clavier.cpython-311.pyc
index 124c2c9480caed225c6d0dfdae008f8d71ba09c3..23521c0e6553991526708d81d478d2fe60dcd60c 100644
GIT binary patch
delta 401
zcmdnbwSk*=IWI340}v>f-$>s$kvC7A9mInI79h<G#Ge(ICQe$+&z8cP%><GvW~*UK
zVViu6(U6<1mNkXFmMu@FhHY{Kqp=`sEn5vk3I{}8kt0y_2&1t$NEI7Ul@drF!VHiO
zW}uGAE=;EU3@KbtT_QCs3s@%yG73-DXA<IMtzk=J3TDvcp4`M_&HhpvXul@g<o!&#
zVz-2nGZORCQ{&4s^HTE5<8$*<QZ?Bpzhjb>Wi3c7O3b~*Sx}T(1{S}?0+KBT`A%W7
z0<#Mj$Q+R0iq$sfF*7krKVawTNNTEVsJy|!d!0k!5{JS?4y7v`N*6ekCKs?cMuF7d
z;)svWOUzA;kH5uSRGPPvp-2WOS|kM|esS0UEhx=NwJTBvav6cRI2cHLU}j`wyul!N
Z0fs)X$TCWQV1N@2jFY)o4Ou`20RWW$U`zl2

delta 315
zcmdnMy`PJBIWI340}#wycriV9B5$5J8;A!5EI^tWh(Et!oH%JQKWhqWHWNsyn5~92
zg>CXNMni7aT9y>{TGl+78rI1TjK+d2wX8J^DI5@WMUFtxBaFu4AXRKYRZ1Xz2s1!B
zn1MPbyD*t@vedAqF$FVda!uaGWX+_>I{62aE|VtPWNT(wQO<&*)Ux>8{FKyNEFiKN
z<jTpV%r0CKKnBQ(#oU_@Gcz$xe!$`w2@<=-5g(tIn420Oe~Y=OG;bwCkt9&GNE}G~
z;;;dlQJRx#SEK;sG6HdN5Rmx5%*e=igF)~D41HjcVwC>C04J;_SF;+jfXo2^^npkB

diff --git a/Objet/__pycache__/parameters.cpython-311.pyc b/Objet/__pycache__/parameters.cpython-311.pyc
index 19264a5c389d48d0c0d2bad8fb832f43da817c38..9997445863ed0721673cbb0b8a9d416fd5347fe2 100644
GIT binary patch
literal 8163
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
I5D~Th1KYxEnE(I)

delta 2524
zcmbuB&2Jl35Wx4@yLReb+jW}QaqPrSAZZPuC6p$L;*b)hd<c}#q6#Gvs!~5IYDH}G
z){$B(s<|MLI6yRqNE}cO5ENDA0Dk}ii4&(toGgKm%7qIGQZH~o%skt>-nC;>@vI#`
z&%F7~$Bw;zxcKdS=*wU*px|2DJKF3I?}mP2%exP+sBbD69iC(3tPI!LU)Ay;ovAPG
z-BE7$S)bI3t|(kX-KnOoqM@d)_Z_H;av!hya&Y_(PM`ET)sa?h;sRZ8x&vp}xYpEo
zQ0hZ6OgCD%l~(1aZQO~qcEd$lalGHA{io!r*gZ$<&Ny%yRpS5|vc7>X-5TscsNasL
z<ix67Ktnx1s;spEa&k8Nc9a{KdVL|s+V2}pt$c^iqW-gv2E@718dt`U6So5!S}e)E
z2Mp&9ull+jYVNoXe)W&(Es<b1I?(Tc5AP`ZVNy?WFOMI1kc3x#VN`3*xokX7bRvcw
z#H36s(U#U}3rlIkFTRN0BU2}Lq`{55%Kg9G(FWJwm7C<c%Wfwh=-rf5BZwQ~Og_oo
zNjz4NbR$UEm8m;O#ASc1AY+XnZiqXGJBc1aoKrd8oXRNoW8+;@xgVi{9cVZ4j(5U|
ze!@nFdE_K?n@OV6a8rxY<OZy2WH+*H!*1Ct_{70)et&cLxq^?ICs%6f*2b-ZpsyPI
zp<iYOTrjTc^h+S>0zNXvd<puTfUk`SUqkz|vBu88Z18>fK4`KW%!ID8D0~=N|K|75
z4=R|^LHK-d>7{9Otf_^Kt$fBS=7@5cG+L>6t57z*xKF3kVx9~aQB(%r*bsQQoEPT#
z&3yTWJohwAMVHtD6r+WSMLd=9$ip>nsc0U0Y^+ID5Dq-CDfTQ}h-IW#9L^8TkCG>z
zrZ8fL#4-xo<;U1Lb`c)M(kHk)-|q6k&^cX_UM1TC9K}D59C}s+{mzM(Q5<5;upS@w
z$pSCIz2SuC&K&H;=P<}o{F9LtI{6xjRTR#C%;NE+o+aZo5)1If@SRkn{!65pCE;|0
zY+{lvLM}0b5k5`)lc5M1wdN_5YO49JD2rFf>Gckt-zCS{68x6D>t8_YO2z;_GEtTB
zWzVjVkL_(|aGeZmC=M}6+RJKvv?D?PTFeJ1-m_lEo|LxAj+GX<%)Hvjv0{k;)1Eq3
z7$iq4Sjpb#RPGr9zDR<`M$q3IaTY~QD{OC-?uxf)A27FXmP9d^H%%E_tdrI&whQ8I
xa<KCIyDz&{<lFD$Ul2Jo&_m070F$ZJ=`6d3sdbirO8ui&>pccvrKVK^{|hMUl?(s?

diff --git a/Objet/__pycache__/ui.cpython-311.pyc b/Objet/__pycache__/ui.cpython-311.pyc
index 0c531f6e5aff67b0bd8815cfaeca7a7868e32057..9f56049622caeb7b188824a768688d08eaa6bf5b 100644
GIT binary patch
delta 2074
zcmZ{ldrZ?;6vuzJr9X$IEd_kSpeS=z98+65`k+ui9#N+Z*%Cx+p%qXpdJCDW25N@R
z=wifE<_m`C=9tdcI$z7C&Mhu8dw?Sul5BHv$+ADpbX&G$f9;%GKymJu_VYWxbH3;F
z-gEEo_Ri<*+b@~+9gSw9gjcC$sP1%rhxQJ8vE%phiS1IA)~l(IjM_*E`$oflfhoGS
zCmAV6E+yXS`^Rkb?vuO>TnV$_u2!2;tJtJiC!}2Vj#}w{1(W=#BO+a_GN_WI3dtKY
znwBck&?!lnrdk)ZGDKSX16f-ThwB~9mT`m=p63cosyldqu1k5p(tNn<f$LTtSL2gW
z!JnqcY=RjPpfMVF7IIiy=WBM?@P@kjX1^~G2<j`#vc|jYl<}t2CP^V_NFCQ16OQdr
zht>PNgQ*J!;urL*t@ybqc&0XbkNS|`Cru5Pbu0=mI-D^$!!nR$xu_UOwDrf?hSb{5
zjIgmIGn{!iX3$_BNHF)S?fAJVcu^U>M}5elr1UA><}T|2dzZa0Y0#KEkeoY^<h+XI
z3i{&;hIH{eHb(a7lnPcD3G0_C*b?|TaWN~4%ul+aU@t}PPd>_6ZKQLmdIGD2-n2=~
z4HwcfSp(cj`#@cbQ{+Cv8aQHDo$012Q*T#CyTq%|4klu2S~hq+%|3Taz{lMU{xwbY
zk!RB1*H2$XxvLQ(%McR1<x~drc~f=N&<#xu{^m`j^MJwB%Ytyt)WTkY9J5v4Lhdc-
zPK8dhQ{GIEt#Hen&00a1eO_Hj4ywk3(4Sq(w!$>aHcbc}xV9qL4ks*&*sJij<vQ~6
zbA_?nNxlsM<(4Jmv^!Co0->B|<sGEi0q1h66GCVjl_SN-y%T0yoopA>SX;+s?}oe9
z61E$%ZGCJx{9sGQPWCt^fzCdYb%4o!RK1tdfe?nD>^51L`yt)2QA4438Fxm5J&qi?
zlS~Tw;D$Xen%gy+I|=-`Ps#g6C8?mzH^S}QS>t{}@3gT4u-Mr%&ij|sAs?c|BUt;9
z#F6@X=VZ8^mmzmQEL%Em2=)1n*d7r^z>luIkmrg`5MzD=J;N%$XT8tF-B9IP%6j3r
z>uYub+^!jLs9?5yloC(D7X{vw5Sm66A4}x#QS2n)ER+=%v$tVSVRy98Ba5&PvWh3e
zvLX}fgZ85CDd$KWLX57`L2~p$&cb5+&9;S)QHY84fvGq@_7sUPAaFM%!|fv1f9r{P
z9)sVCi>zl!{UKo<p@!f^49gxro)(R~{=oz1brfzOtcAvsY4SQU8(~+;w7KiaeCX|>
z$0WpZt|v1QVU+nCvMZs#B&}^LnXeIEC+s0a2<Hix2p<tH6DkSfwGdlGOjmS8OeILs
zUcxcLTZBGBwC!Z=CbScF5;jXQ$X4K`4)${7bg3&L<^Nyo;7o8<Pfr+owO_zPm3y!Z
zZj)rFSn;v(IMp-}&Je_=KY><&PI!aC5E?lqB4DkaD=)|VKslUt&4JG9d2M4o7rlP8
zhoa?csjBGvHL^t8KP9V?AX@(kS)UQE5UwJOn&?Qxz#dte4J6t~$ZRII5d4HD0w)9z
zxMp+77AsQ&O)KdT*tK#FE03IC*`;JUsPLGx3P`e$u!LYE<Pug8st67O{lV}MobjZv
zA^6I(EM8Wr^!KDO#6xP$MLaLRtI5c?f!bjuZ}E#)A-X;3f9#(p9P69BEsZ`WAAq#l
ZRr4BEZ2mpz@w_kme?A;t1t)7Q{{nOi8-@S?

delta 1632
zcmaKsUrbwd6vumDTwz_AKwxuYY@yTGjUdYeN@+`h0s}^%F2O{g1=bGPXn_l*hA<0p
zq7paO9cFY0`vVGFG{n`B#p&3CnK9~&@r}Kh?7<fw#$uw;X#9PDmoch~efZ?ubH3km
z?>+Z-`s25B?<-24GZ;4N#4mN`hmOILNb)^uh&*s@IHWTfqILAWfjW4{=5X{u%3nm*
z=>4?%II3nx#z88Jp3GQ^qlReRQ!_-((UoobC$_jmCpAZ)FHT_Bu$qfR6Q^bGrFJgK
z{#5Tlq77*0zq4CYn?xwZt-CaFBlj4$Qd{&b<JFYRmmq9@C|T<#5`#Or*OtNl{3N9p
zq81*?zes(YRS={gPZSg>L8M<1=`3C;uqz>44sw2BK85&L;i6tXD{ik2aE|!^4RX-@
zx?xBpOmV6#4)ZNbCL4>Mqai+2beqDw&z!|(%hO62wh>M#PUj_aag1qHm}->~2u=t=
zbE@nZzuFP$Q4SZ|=>*>_el^B9#?{s;dV?d@d1_#bZ96q_qs>fXJZ_uOpMrH9IL$V@
zMR^<H1RuBe8c@1Ss$DDoX*VlUjG~XHOEziVceV1h5{q*Bp*M?<mYLY<cqXR3-(jIM
zJnuLklYODos!YH*E&Be;xY~PDnMHYLy`(<o)?b!c6{(!&NJ|zsIzv2Jo|GDa<BY&^
zLZHp>+b_<`VtGBCW5s!g=J-Z=Hvi^)R(T(?E5e!1mWujJIo1Sq&8*I&ei`_fKd7jr
zY5t{RDrWkO;su_pbkarssd8$|CrGUSKJwwGc%rJ3X8CT_V-)YfGRxx!9LgNR=;|Rz
zVn?N8tNNdglMr3v+G=O`3c^Jo4{!sm0?SHUpx@KprFtJ-sOn*qeZUc<6GNQ=ucyo7
zUrt($+Euj!<(E;`lB(#ks#HCGwG-vFg^Lp#_hij>a&b=0&hT;6UIX3)<Y`(!bQQP;
zTn9b_T!35^IYK!DIV$;f1E@{`mw*evETDZ1L}S1(Fbafp8w3aWPK}j%qWap>)c@Ob
zBcF3`+uY&n_w;mk2KsABcw59dxSReVn(YTZ0^|bB@rXN(7Wk|?N2wFiJ{Rkqdw9j2
z7hapVob;o~sO@mefn(O%)Ndk^171ReDQg4$0?{qt2JpFn$)Md^KFZp_wYFUl`GLJX
zU@veKI0giOZUK`b|2S3o5#0QZ2kZZ{XV1nOyu`_Po$hyz7&D`Vt)X~I=7q!0n@ZuW
z1}uOLcoAp>tUxg^#3|lP`kHgS4V1{Iyw_=ft9-k6-xkH?cr_T1JD{D)T#@@D(dzH^
h2D^NA^*bK-x$}GpwC}#|@m!JlU)NU~c*l`~e*nPPr*!}T

diff --git a/Objet/display.py b/Objet/display.py
index f733da1..60f08b5 100644
--- a/Objet/display.py
+++ b/Objet/display.py
@@ -32,18 +32,23 @@ class Display():
     def unprocessed_frame_copy(self):
         return self.unprocessed_frame.copy()
     
-    def draw_all_points(self):
+    def draw_all_points(self, brightness = 1):
+        background = self.frame.copy()
         for point in self.param.interesting_points:
             if point.name != "curs" and point.name != "bar_point_left" and point.name != "bar_point_right":
                 self.draw_point(point)
+        self.frame = cv2.addWeighted(background, 1 - brightness, self.frame, brightness, 0)
+
+        
     
     def draw_point(self, point):
         cv2.circle(self.frame, point.pos_int(), 3, point.color, 3)
 
-    def draw_shape(self, param_list = ["net", "ant", "wind", "height", "bar"]):
+    def draw_shape(self, brightness = 1, param_list = ["net", "ant", "wind", "height", "bar"]):
         def get_point(name):
             return self.param.get_point(name)
-
+        
+        background = self.frame.copy()
         for shape in param_list:
             if shape == "net":
                 self.draw_line(get_point("ant_bl"), get_point("ant_br"), (255, 255, 0))
@@ -61,8 +66,7 @@ class Display():
                 self.draw_line(get_point("bar_point_left"), get_point("bar_point"), (0, 0, 0), 5)
                 self.draw_line(get_point("bar_point_right"), get_point("bar_point"), (100, 100, 100), 5)
 
-                
-
+        self.frame = cv2.addWeighted(background, 1 - brightness, self.frame, brightness, 0)
 
         '''cv2.line(display.frame, (0, int(info[5])), (s_w, int(info[5])), (255, 255, 255), 2)
         cv2.putText(display.frame, "Hauteur de mire : " + str(round(hau_mire, 1)),(0, 20), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 0), 2)
@@ -88,7 +92,8 @@ class Display():
         self.draw_line(point3, point4, color)
         self.draw_line(point4, point1, color)
 
-    
+    def display(self):
+        cv2.imshow('main', self.frame)
     
     
 if __name__ == "__main__":
diff --git a/Objet/gestion_clavier.py b/Objet/gestion_clavier.py
index 84baf09..5de1973 100644
--- a/Objet/gestion_clavier.py
+++ b/Objet/gestion_clavier.py
@@ -1,6 +1,6 @@
 import subprocess
 
-def update(key, vid_mana, session, ui, prev_mode, mode):
+def update(key, vid_mana, session, ui, param, prev_mode, mode):
     if key == ord('q'):
         return "over", "over"
     if key == ord('s'):
@@ -24,6 +24,9 @@ def update(key, vid_mana, session, ui, prev_mode, mode):
     
     if key == 13:
         ui.change_setting_mode()
+    
+    if key == 27:
+        param.change_window_mode()
         
 
     return prev_mode, mode
diff --git a/Objet/main.py b/Objet/main.py
index 95bada3..07664f7 100644
--- a/Objet/main.py
+++ b/Objet/main.py
@@ -42,7 +42,7 @@ class Main:
         while self.mode != "over":
             self.display.load_frame(self.vid_mana.frame)
             key = cv2.waitKey(1) & 0xFF 
-            self.prev_mode, self.mode = gc.update(key, self.vid_mana, self.session, self.ui, self.prev_mode, self.mode)    
+            self.prev_mode, self.mode = gc.update(key, self.vid_mana, self.session, self.ui, self.param, self.prev_mode, self.mode)    
             self.ui.move_parameters()    
 
             if self.mode == "video":
@@ -51,25 +51,23 @@ class Main:
                     break
                 all_ball = self.im_proc.get_all_ball(self.vid_mana.frame)
                 self.traj.update(all_ball) 
-            
                 if self.traj.is_over:
                     self.session.load_traj(self.traj)
                     self.traj = Trajectory(self.param)
                     self.display.load_traj(self.traj)
                     self.session.next_video()
-
-            self.display.draw_traj()   
-
-            if self.mode == "parameters":
+            elif self.mode == "parameters":
                 darken_factor = 0.5 
                 self.display.frame = (self.display.frame * darken_factor).astype(np.uint8)
 
+            print(self.ui.get_brightness())
             if self.ui.is_mouse_moving():
-                self.display.draw_shape()
-                self.display.draw_all_points()
-
-            cv2.imshow('main', self.display.frame)
-            self.session.load(self.display.frame)
+                self.display.draw_shape(self.ui.get_brightness())
+                self.display.draw_all_points(self.ui.get_brightness())
+            
+            self.display.draw_traj()   
+            self.display.display()
+            #self.session.load(self.display.frame)
             #cv2.imshow('main', im_proc.processed_frame_difference)
 
         cv2.destroyAllWindows()
diff --git a/Objet/parameters.py b/Objet/parameters.py
index dea29ba..3d7fe79 100644
--- a/Objet/parameters.py
+++ b/Objet/parameters.py
@@ -13,6 +13,7 @@ class Parameters:
         screen = screeninfo.get_monitors()[0]
         self.width = screen.width
         self.height = screen.height
+        self.mode = "full"
         
         # Liste des points intéressants
         self.interesting_points = [
@@ -39,6 +40,13 @@ class Parameters:
 
         self.ant_height = self.get_point("net").y - self.get_point("ant_tl").y
 
+    def change_window_mode(self):
+        if self.mode == "full":
+            cv2.setWindowProperty('main', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_NORMAL)
+            self.mode = "normal"
+        else:
+            cv2.setWindowProperty('main', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
+            self.mode = "full"
 
     def get_point(self, name):
         for point in self.interesting_points:
diff --git a/Objet/ui.py b/Objet/ui.py
index 6d14687..cc0275b 100644
--- a/Objet/ui.py
+++ b/Objet/ui.py
@@ -55,8 +55,15 @@ class UI:
 
     def is_mouse_moving(self):
         return time.time() - self.last_mouse_move < 0.5 or self.point_near
-            
 
+    def get_brightness(self):
+        if 0 <= time.time() - self.last_mouse_move <= 0.1:
+            return (time.time() - self.last_mouse_move)*10
+        if 0.5 >= time.time() - self.last_mouse_move >= 0.4:
+            return (0.5 - (time.time() - self.last_mouse_move))*10
+        return 1
+            
+        
     def set_bar(self, x): 
         self.vid_mana.current_frame = int((x - self.bar_left) * self.vid_mana.total_frames / (self.bar_right - self.bar_left))
         self.vid_mana.start_time = time.time() - self.vid_mana.current_frame / self.vid_mana.fps
-- 
GitLab