From b9ad5293bfd2978a42ac9090b705695118268069 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 27 Jun 2026 03:13:40 +0200 Subject: [PATCH] blocker not showing --- resources/block.svg | 73 +++++++++++++++++++++++++++++------ resources/blocker_closed.png | Bin 0 -> 3036 bytes resources/blocker_open.png | Bin 0 -> 3069 bytes src/graph-manager.cpp | 39 ++++++++++--------- src/graph-manager.h | 2 + 5 files changed, 84 insertions(+), 30 deletions(-) create mode 100644 resources/blocker_closed.png create mode 100644 resources/blocker_open.png diff --git a/resources/block.svg b/resources/block.svg index 47ef9f8..be9e339 100644 --- a/resources/block.svg +++ b/resources/block.svg @@ -7,7 +7,7 @@ viewBox="0 0 512 512" version="1.1" id="svg1" - inkscape:export-filename="round-delete.png" + inkscape:export-filename="blocker_open.png" inkscape:export-xdpi="24" inkscape:export-ydpi="24" inkscape:version="1.4.4 (dcaf3e7d9e, 2026-05-05)" @@ -35,7 +35,7 @@ inkscape:window-x="2560" inkscape:window-y="1106" inkscape:window-maximized="1" - inkscape:current-layer="layer1"> + inkscape:current-layer="g5"> - + id="layer1" + style="display:none"> + + + + + + + + + diff --git a/resources/blocker_closed.png b/resources/blocker_closed.png new file mode 100644 index 0000000000000000000000000000000000000000..27d304e2938f0bf1c4699c5502a16a49e66d6254 GIT binary patch literal 3036 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 Bh7$k) literal 0 HcmV?d00001 diff --git a/resources/blocker_open.png b/resources/blocker_open.png new file mode 100644 index 0000000000000000000000000000000000000000..488e189e85cb0167ca05f2c328e6971de4c9138c GIT binary patch literal 3069 zcmd6p={wX97skIcnX(l!vWzUF5Lp^xWbZe&Fvc>(V>cwSWH8FU%TmcQ7)rK;VuXoo zA#27yB)e=wlVr(K9=|uw-|)P+&wX9zetXV+eI8-ZdS_V$SOEYyYoL!ZJMoBr#eDi? zwre=`ofwO+zBL{IPF4LYkVFT^o0BEKzs_xcb00TRv+(VX3ez==|*U3&n`xL)e*S86Uw$zuo_$wJKNR@pf^0=U$dkK~@yi6&` z5++&o?pfKI>zj9*_Gj-U(MHbA%5_S#7*TOGByDo;L*s6PIE1*FIQLq*$L^uB`?y`^ zciXXtlk+xn8hwM27JX}j2=yhjNx=|*>o%7rjg(PP=eqjg7RfuLOK^YEYT zotx6DECy@0V+RBHzWg1uF0xZXj9#*uA zR~^I!q5f*^#CQax?B=^FT(P6s1{G!C$sJwJj z1_F@|D>leRTDwDOKF&OI`<*&2+ATgA%C|}g!AW-_Ipw9Yy!jt|9dh9mCbJGMy+2j- z87}?QEY5J-@H7wNkyadkv4J&l)1|N~jEe*WjH;+K#1F(EsHjWAEsrtc+-H9s5!OqS zzN>Xu2I-E>dqSx-z0&whi6v-lM}?P`INHafsaL+rq~kY_$ZVaFbnjxp%K#bEKacM^ z3MUuNC}%+$Q6n z=iFxElow|B306Pe$ds+Eyj(hDqd%LV4RCS(>UuwUbcU8XJwBYbob6G^M^oOCZ7oY7 zgt3%XQTyqSB?C7@Ksr4SgFz9!uEvDrP!8M-q&vVBodj1d%B%2x0zXiw+4qV;{krO& znzTHzjhcaA$j9rN=p={u^V8hci7O}VW*3Hrt13;W5&PaUiuJ)RMd@Ya+H&P7$ijKa#2!r)87!HkbXx`d<^r`VfEJliv*9zd=dCku0=#l8tYSEGthao zlvbMoL?8M86FM_-M(Jy)PVjGmk%@e3WmnSPJ^Z7v`OhYzqTiWH;5_@NZ zH4~!ZiRP7L|1pcz{f(cV?&HgnlhVv_8_bw1=6u4R*SdO+H6zmz8d-+LB_=mTi^&rl&y9d3GG)C>zyyH)_b4S zgAu~2@y98^+txun?zpZJ)h$`A5=n|?qOGW7QTgMOJ52T+feSe0_vzv9J%s-Nf39C0 zdh#(0DtS_lw<=s(w6s`?WuJLQMk^bI`V*iZ)w$Ze@}*W=XX!^Oy|{t^++J-}<>jg` zYBjtaiX0-aH{9{{wesKZ}i4*iBvOz6*1djG*HKokGRxK8avMhY@mmf0>w5JRc0T zUp4e?DX-rqH@QXr5!t<{4a&Y8(IXUD5yrW;`=%mHpY{WBYvi8nijWfPx-yv!W8M_R zyL!s7P23eQk(>7N6@@e6_Z*=yfU?Q!@9Y-dXN=y)srqa7&-*p7?^>OdMo#;kwT=z& zNbrtkY4-N*c-#m1D8jTgn{nq&_)Z2j>; z*~1S%o`KBd!2nK~aa8Y2kvvc53Oppg7_*p()f}B$KjMj7pzMPk2yJ};GaR7C_&OR8tz!iSc zSDsn6Hn&^n*NY!3qUyWVZI_IMmjNGISdX9U(y03H9`p+dgt^ zex&FDRf0Gn@iXc1e_;eUb<;sGVC&F?Bf)47RJzSiU?+H+|E2r#l%dcUA%euK0uedz z2bWJ@*?dlgu|et4hjt=+{gpNcgJe4s$Uy#iV6J|LO}sph8=9`jhmFu zauVc1od#Kap{YE^giyAOGm#3;-fl#Zz0c(~Ta>KBRo-Zeh{FE?9(>E((eHVmkJZx9 zdstart.lock()->picked_up && !c->end.lock()->picked_up){ // On/Off switches on both sides - if(ViButton(mouse_pos, from_to_handle.x, from_to_handle.y, 8.0f, c->pass_forward ? (Color){120, 210, 115, opacity_from} : (Color){232, 50, 32, opacity_from} )) c->pass_forward = !c->pass_forward; - if(ViButton(mouse_pos, to_from_handle.x, to_from_handle.y, 8.0f, c->pass_backward ? (Color){120, 210, 115, opacity_to} : (Color){232, 50, 32, opacity_to} )) c->pass_backward = !c->pass_backward; + Texture2D tex_forward; + Texture2D tex_backward; - if(!c->pass_forward){ - Vec2Df block_point1 = (v1_position - v2_position).norm().orth()*4.0f + from_to_handle; - Vec2Df block_point2 = (v1_position - v2_position).norm().orth()*-4.0f + from_to_handle; - DrawLineEx(block_point1, block_point2, 2.0f, (Color){232,232,232,opacity_from}); - } + if(c->pass_forward) tex_forward = tex_blocker_open; + if(!c->pass_forward) tex_forward = tex_blocker_closed; - if(!c->pass_backward){ - Vec2Df block_point1 = (v1_position - v2_position).norm().orth()*4.0f + to_from_handle; - Vec2Df block_point2 = (v1_position - v2_position).norm().orth()*-4.0f + to_from_handle; - DrawLineEx(block_point1, block_point2, 2.0f, (Color){232,232,232,opacity_to}); - } + if(c->pass_backward) tex_backward = tex_blocker_open; + if(!c->pass_backward) tex_backward = tex_blocker_closed; if(IsWindowReady()){ + + if(ViTexButton(mouse_pos, from_to_handle, HELPER::GetRotation(from_to_handle, to_from_handle), 8.0f, tex_forward, ColorLerp(Fade(VS_COLOR_WHITE, .0f), Fade(VS_COLOR_WHITE, 1.0f), opacity_from_normalized))) c->pass_forward = !c->pass_forward; + + if(ViTexButton(mouse_pos, to_from_handle, HELPER::GetRotation(to_from_handle, from_to_handle), 8.0f, tex_backward, ColorLerp(Fade(VS_COLOR_WHITE, .0f), Fade(VS_COLOR_WHITE, 1.0f), opacity_to_normalized))) c->pass_backward = !c->pass_backward; + if(ViTexButton(mouse_pos, center_handle, HELPER::GetRotation(from_to_handle, to_from_handle) + 90.0f, 8.0f, tex_split, ColorLerp(Fade(VS_COLOR_WHITE, .0f), Fade(VS_COLOR_WHITE, 1.0f), opacity_normalized) )) splitEdge(c); } } @@ -437,8 +440,8 @@ namespace VISEQ::GRAPH{ DrawLine(v1_position.x, v1_position.y, v2_position.x, v2_position.y, VS_COLOR_BLUE); } if(IsWindowReady()){ - if(ViTexButton(mouse_pos, middle_handle, HELPER::GetRotation(from_to_handle, to_from_handle), 8.0f, tex_delete, ColorLerp(Fade(VS_COLOR_WHITE, .0f), Fade(VS_COLOR_WHITE, 1.0f), opacity_normalized) )) removeEdge(c); - if(ViTexButton(mouse_pos, middle_handle_2, HELPER::GetRotation(from_to_handle, to_from_handle), 8.0f, tex_delete, ColorLerp(Fade(VS_COLOR_WHITE, .0f), Fade(VS_COLOR_WHITE, 1.0f), opacity_normalized) )) removeEdge(c); + if(ViTexButton(mouse_pos, middle_handle, HELPER::GetRotation(from_to_handle, to_from_handle), 8.0f, tex_delete, ColorLerp(Fade(VS_COLOR_WHITE, .0f), Fade(VS_COLOR_WHITE, 1.0f), opacity_from_normalized) )) removeEdge(c); + if(ViTexButton(mouse_pos, middle_handle_2, HELPER::GetRotation(from_to_handle, to_from_handle), 8.0f, tex_delete, ColorLerp(Fade(VS_COLOR_WHITE, .0f), Fade(VS_COLOR_WHITE, 1.0f), opacity_to_normalized) )) removeEdge(c); } } } diff --git a/src/graph-manager.h b/src/graph-manager.h index ef25773..1eeb9a6 100644 --- a/src/graph-manager.h +++ b/src/graph-manager.h @@ -88,6 +88,8 @@ namespace VISEQ::GRAPH { Texture2D tex_delete; Texture2D tex_split; + Texture2D tex_blocker_open; + Texture2D tex_blocker_closed; }; }