From 9d4d31fd2c9336ba0b1d95f09aebdf105f2225fe Mon Sep 17 00:00:00 2001 From: fenix-hub Date: Sat, 8 Jan 2022 18:46:03 +0100 Subject: [PATCH] refactor scatter_chart and line_chart --- .../Containers/.gdignore => .gitattributes | 0 .gitignore | 28 +- .tmp | Bin 0 -> 15840 bytes LICENSE | 2 +- README.md | 6 - .../2DChart/LineChart2D/line_chart2D.gd | 469 ------------------ .../2DChart/ScatterChart2D/scatter_chart2D.gd | 448 ----------------- .../ColumnChart2D/column_chart2D.gd | 34 +- .../ColumnChart2D/column_chart2D.tscn | 21 +- .../2d_charts/LineChart2D/line_chart2D.gd | 469 ++++++++++++++++++ .../LineChart2D/line_chart2D.tscn | 19 +- .../ScatterChart2D/scatter_chart2D.gd | 448 +++++++++++++++++ .../ScatterChart2D/scatter_chart2D.tscn | 17 +- .../3DChart/ScatterChart3D/scatter_chart3D.gd | 309 ------------ .../ScatterChart3D/scatter_chart3D.gd | 309 ++++++++++++ .../ScatterChart3D/scatter_chart3D.tscn | 17 +- .../ControlChart/PieChart/pie_chart.gd | 226 --------- .../ControlChart/RadarChart/radar_chart.gd | 287 ----------- .../ScatterChart/scatter_chart.gd | 28 -- .../Utilities/Containers/ChartContainer.gd | 40 -- .../Utilities/Containers/ChartContainer2D.gd | 40 -- .../easy_charts/Utilities/Data/data_frame.gd | 101 ---- addons/easy_charts/Utilities/Data/matrix.gd | 61 --- .../Utilities/Legend/color_label.tscn | 12 - .../easy_charts/Utilities/Point/point_data.gd | 69 --- .../Utilities/Point/point_data.tscn | 85 ---- addons/easy_charts/Utilities/Rect/.gdignore | 0 .../{Scripts => classes/base}/chart.gd | 287 +++++------ .../{Scripts => classes/base}/chart2d.gd | 18 +- .../base}/scatter_chart_base.gd | 43 +- .../classes/structures/data_frame.gd | 190 +++++++ .../Utilities/classes/structures/matrix.gd | 85 ++++ .../structures}/matrix_generator.gd | 17 +- .../{Point => components/point}/point.gd | 0 .../{Point => components/point}/point.tscn | 4 +- .../{Rect/Rect.gd => components/rect/rect.gd} | 0 .../Rect.tscn => components/rect/rect.tscn} | 3 +- .../{Slice => components/slice}/slice.gd | 0 .../legend}/function_legend.gd | 0 .../legend}/function_legend.tscn | 7 +- .../utilities.gd => scripts/ec_utilities.gd} | 7 +- .../ColumnChart/column_chart.gd | 274 +++++----- .../ColumnChart/column_chart.tscn | 17 +- .../LineChart/line_chart.gd | 1 - .../LineChart/line_chart.tscn | 27 +- .../control_charts/PieChart/pie_chart.gd | 226 +++++++++ .../PieChart/pie_chart.tscn | 19 +- .../control_charts/RadarChart/radar_chart.gd | 286 +++++++++++ .../RadarChart/radar_chart.tscn | 29 +- .../ScatterChart/scatter_chart.gd | 29 ++ .../ScatterChart/scatter_chart.tscn | 22 +- .../linechart (columns).csv.import | 12 +- addons/easy_charts/file.samples/linechart.csv | 2 + .../file.samples/linechart.csv.import | 10 + addons/easy_charts/plugin.gd | 9 +- imgs/code_snapshot.gif | Bin 0 -> 782582 bytes imgs/screensho_2t.png | Bin 0 -> 10896 bytes imgs/screensho_2t.png.import | 34 ++ imgs/screenshot.png | Bin 0 -> 11448 bytes imgs/screenshot.png.import | 34 ++ imgs/screenshot_2.png | Bin 0 -> 38127 bytes imgs/screenshot_2.png.import | 34 ++ imgs/screenshot_3.png | Bin 0 -> 10896 bytes imgs/screenshot_3.png.import | 34 ++ imgs/screenshot_4.png | Bin 0 -> 10030 bytes imgs/screenshot_4.png.import | 34 ++ imgs/snapshot.html | 278 +++++++++++ 67 files changed, 2967 insertions(+), 2650 deletions(-) rename addons/easy_charts/Utilities/Containers/.gdignore => .gitattributes (100%) create mode 100644 .tmp delete mode 100644 addons/easy_charts/2DChart/LineChart2D/line_chart2D.gd delete mode 100644 addons/easy_charts/2DChart/ScatterChart2D/scatter_chart2D.gd rename addons/easy_charts/{2DChart => 2d_charts}/ColumnChart2D/column_chart2D.gd (94%) rename addons/easy_charts/{2DChart => 2d_charts}/ColumnChart2D/column_chart2D.tscn (77%) create mode 100644 addons/easy_charts/2d_charts/LineChart2D/line_chart2D.gd rename addons/easy_charts/{2DChart => 2d_charts}/LineChart2D/line_chart2D.tscn (78%) create mode 100644 addons/easy_charts/2d_charts/ScatterChart2D/scatter_chart2D.gd rename addons/easy_charts/{2DChart => 2d_charts}/ScatterChart2D/scatter_chart2D.tscn (72%) delete mode 100644 addons/easy_charts/3DChart/ScatterChart3D/scatter_chart3D.gd create mode 100644 addons/easy_charts/3d_charts/ScatterChart3D/scatter_chart3D.gd rename addons/easy_charts/{3DChart => 3d_charts}/ScatterChart3D/scatter_chart3D.tscn (66%) delete mode 100644 addons/easy_charts/ControlChart/PieChart/pie_chart.gd delete mode 100644 addons/easy_charts/ControlChart/RadarChart/radar_chart.gd delete mode 100644 addons/easy_charts/ControlChart/ScatterChart/scatter_chart.gd delete mode 100644 addons/easy_charts/Utilities/Containers/ChartContainer.gd delete mode 100644 addons/easy_charts/Utilities/Containers/ChartContainer2D.gd delete mode 100644 addons/easy_charts/Utilities/Data/data_frame.gd delete mode 100644 addons/easy_charts/Utilities/Data/matrix.gd delete mode 100644 addons/easy_charts/Utilities/Legend/color_label.tscn delete mode 100644 addons/easy_charts/Utilities/Point/point_data.gd delete mode 100644 addons/easy_charts/Utilities/Point/point_data.tscn delete mode 100644 addons/easy_charts/Utilities/Rect/.gdignore rename addons/easy_charts/Utilities/{Scripts => classes/base}/chart.gd (86%) rename addons/easy_charts/Utilities/{Scripts => classes/base}/chart2d.gd (92%) rename addons/easy_charts/Utilities/{Scripts => classes/base}/scatter_chart_base.gd (96%) create mode 100644 addons/easy_charts/Utilities/classes/structures/data_frame.gd create mode 100644 addons/easy_charts/Utilities/classes/structures/matrix.gd rename addons/easy_charts/Utilities/{Data => classes/structures}/matrix_generator.gd (82%) rename addons/easy_charts/Utilities/{Point => components/point}/point.gd (100%) rename addons/easy_charts/Utilities/{Point => components/point}/point.tscn (83%) rename addons/easy_charts/Utilities/{Rect/Rect.gd => components/rect/rect.gd} (100%) rename addons/easy_charts/Utilities/{Rect/Rect.tscn => components/rect/rect.tscn} (75%) rename addons/easy_charts/Utilities/{Slice => components/slice}/slice.gd (100%) rename addons/easy_charts/Utilities/{Legend => containers/legend}/function_legend.gd (100%) rename addons/easy_charts/Utilities/{Legend => containers/legend}/function_legend.tscn (66%) rename addons/easy_charts/Utilities/{Scripts/utilities.gd => scripts/ec_utilities.gd} (84%) rename addons/easy_charts/{ControlChart => control_charts}/ColumnChart/column_chart.gd (65%) rename addons/easy_charts/{ControlChart => control_charts}/ColumnChart/column_chart.tscn (80%) rename addons/easy_charts/{ControlChart => control_charts}/LineChart/line_chart.gd (99%) rename addons/easy_charts/{ControlChart => control_charts}/LineChart/line_chart.tscn (79%) create mode 100644 addons/easy_charts/control_charts/PieChart/pie_chart.gd rename addons/easy_charts/{ControlChart => control_charts}/PieChart/pie_chart.tscn (64%) create mode 100644 addons/easy_charts/control_charts/RadarChart/radar_chart.gd rename addons/easy_charts/{ControlChart => control_charts}/RadarChart/radar_chart.tscn (73%) create mode 100644 addons/easy_charts/control_charts/ScatterChart/scatter_chart.gd rename addons/easy_charts/{ControlChart => control_charts}/ScatterChart/scatter_chart.tscn (73%) create mode 100644 addons/easy_charts/file.samples/linechart.csv create mode 100644 addons/easy_charts/file.samples/linechart.csv.import create mode 100644 imgs/code_snapshot.gif create mode 100644 imgs/screensho_2t.png create mode 100644 imgs/screensho_2t.png.import create mode 100644 imgs/screenshot.png create mode 100644 imgs/screenshot.png.import create mode 100644 imgs/screenshot_2.png create mode 100644 imgs/screenshot_2.png.import create mode 100644 imgs/screenshot_3.png create mode 100644 imgs/screenshot_3.png.import create mode 100644 imgs/screenshot_4.png create mode 100644 imgs/screenshot_4.png.import create mode 100644 imgs/snapshot.html diff --git a/addons/easy_charts/Utilities/Containers/.gdignore b/.gitattributes similarity index 100% rename from addons/easy_charts/Utilities/Containers/.gdignore rename to .gitattributes diff --git a/.gitignore b/.gitignore index 0c60b9e..f822639 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,18 @@ +# Plugin Specific ignores +default_env.tres +/icon.png +/icon.png.import +project.godot +scn/ +/screenshot.png +/snapshot.png +*.tpm + +# Godot-specific ignores .import/ export.cfg export_presets.cfg -# Imported translations (automatically generated from CSV files) -*.translation -# Plugin specific ignores -.github/ -file-editor/ -scn/ -default_env.tres -icon.png -icon.png.import -project.godot + # Mono-specific ignores .mono/ -data_*/ -mono_crash.*.json -# System/tool-specific ignores -.directory -*~ +data_*/ \ No newline at end of file diff --git a/.tmp b/.tmp new file mode 100644 index 0000000000000000000000000000000000000000..e33057dfd4626dc33a73018157e1b6ed2d363a11 GIT binary patch literal 15840 zcmdtJWmJ{n+BLf9Zji2pih>GAcZ1R(f`F8OpmcXggM@&TG)Q;DqFGYXAl)I&qPxz` z-upXW?EQ}M{y68yIga4~)_UU3>zdb`^A1r_lEuTO!iGQ~c&}ecsX-t}4dDMXOmy&x zHa6{F@B_(SO;!R@GC;ElfiOT`ONpzyB=63-zE?kM61|rHdgijPjtY?q zG<~PHY_IR)7OAiAix!dzUt{Xio@9R0fs4Mx&BnDO{`Ec`K8I^xOehpe`3Bb+B{(=3 z!4*hLMASnEj|dJnjx>~&lB(z`V}e4bj3$YQqINiTf`eb3QaDLTJ#@zvghHc*|G#!Q zO;7_8T%5FH$qJb$N|zYburA3)wp(Ne*Dst=R?1j!Z~dp?Mh_#zgwm;rE$-p06j7J} z6v`R`9U`&Ie6odX{S!T{s9lN54(gya!L~u+E+y4@f=UBvW7u~?46|{!ODI1uWX7tW zHyA}r7T*y6zDmOs8Jw3S0{fMUmBBpkCQ-t>{Sb-IPQvB97oD;m19`$86#Z(3jbQ zy+4KdH+{0nw#(qH)T)N2FE<_<<`VG2XK=v)^*Wdugd$62)H+X?z8l?tM;k_vFr~8? zo>0d5z>dAK)OynPNlb9JlW$0Bav~zd5LXUSo7GCqVVFB%k1V&~eR*=~CRsA*=zQr7 zhC$ymqW45ltAqXE(m2uJb094Rks;Q>OU4O*ZTa`pVIM_6LE&y^fBKj5pol z$)ZU}ii#)fBGgdm)%xyAkQT=gQCbxRK0f}<+8KQb>7$rTgpBg}l=uc#P=tQj_HZL& zaYW)z=#X5yLSaiWH^)ybqWY=$a_7M=Tz)8&+V$%ELkHZPh=>vm2^qDmJFVSDJENg^ zsQ=BR^yHLhww)&%-nY{&+&~V+YkS1;Ymf7@S_%g#DU|g5{LUb6Z=7|dG_DK&!j@)A z_BuoM#gFtiPaE(BH17d5+)%JTeavtKb3N;P+!R_=*1 zNO8sgy2A=S@Qm}Ss668qQSBFO_WhHE8N2Z4fSY}wjKZW=C4n?V+j1hs3Y%y+FMG^M z`^MEm8GJ!RM1)8BkN7u;@Wynj>w6%ru)&{xSGU%gYsGC`^V#D2)5US- z0VjXHj4KT70P6;ZWFs^TDD(}5lP9>zVs}g8T^eVQ6*jUOEsX_!(^M3+res%Qa#CcQ z^})AGHjE@m<>cMqlHw9V_|F!p7qdIQlAm!TBZIp!@r|ewo`;@$nwqwxqxh7ix>j29 zc{+hNFSJZfv28#YEZ(0rPDPEE-alYq!TlIV073|-fvxwiosmN`n<<>oYn-%1Vn%1)$pO8Hc)i^``&X8f(I&ycGSq=7U+jH-?(7`6rr`}! zoP%*+e-E1AoR{*_*p7Cy|Lu=PxYoQ^f04ZHzv9hJwY!AH+W=cH*OZm|Loleix01}T zh$Y*_cvW9!KZTrnp1tzz=6!-q2}y)9*Zz8YaIi&d8Ryb0;Wb^3vFDWEov?yrd%Y4m z4N+7qU)byamvW#L>14$&XBbvE4dNr=FuPj5dV+|jK#p=6eykk#Y=8YWg%ipu0uk}; z8zG;dAi<_v?(=t8Y3T=&FePZ_(2$CYn_K(nC`m>}27E5LA;ORsfeRyDj--;X0BHEFJlykYE|Xz&VKe+qZL3CkU@?=KJP*oU~c1 zYJV$k@SeUQV6^xxv;)3?_+%$}2j;+7-V1xS7F=r?t7FXs0dLAi6u%`}im?3h-fuCk@6IUx*;#y} z=|rQnYkFc0OKJ64yDF~nCBKEAi_`URo3q052NQv=|^l4(LLu5HuTCiCa2|jI$ zK|HxpNT%6-Zh%H%%k$IO@z80+Rh4jWFmwbTAwAu81E2GNLbbH(TqqyB&_fDf5F;cd zBt=FQ_mNN$BlJ(*M9g6O%`|z#1K2Z7_`8moW*8iEBQskeA$B_}5*VP*9K{D43V4Gmqu^-F*M z2Ebqf*C(ak(q3M-->m#Llnf`Qy20Aq-Q68BFLkU&(kX^>=JZ%U{7P^8jnZh z!8b13#kDHBy5Z$UUF{PSXC)TiqdAJ;^Ye>AZ+vHGXaB&!h>di62L~xTyO*J%p$=zr zjjkl#=WzP{->jvJClmVg$L{l!Ji!Rkz?ATU!oo+RczAe{mtR;gkv}}JZf)WuPIu7E zSe;>=Y*``8>YW#4LgFOWg!l4dI*ysVTDW=e8@mJv(&;Y^wfcLuNJ0@do`b%ctPGzj zz4iWjq%Z|m_|C!s_S$XN%Kjns*B=!UG&ie*c`u%qO~yT+5rH?i+!1rg^R)At2~ly8 z@f}>~XE+@F+L7K~MEnif8cE{2+!M{pd4Jc&%j)_(^Mj@sA?m9BfLP~zOIBr8zuDCT zHa%Q&a`K-!Ihk2mC=i>KPQ2MVTgh5|de>E=U!9%Ekde{RgAQ{24dkBTVIpcCi`KqG z&WvHRZ>g#C*3|OxFQh+wfTD`Gc6=p2=wVJvZ)&225Yo_ul{R0>X-Z@l6)Bw6{rRH~ zUa*`IL?bl)uN)1EPFM;)e25w;a+x>0 z`(uWgt#KdO!^300k8?1+vXbQa^XD#q$yW9xsjZ--8Iuzf&5bbDQ~@neG__@b4&P- zP-vglF$KbVgYtU2pBxF&vwcf4F+lf=-1~xGT}0f*&UQ?AU{=WfgQiFbyrCwmyoMO7 zFb#e~AnYe>-C|Mx971@u_~zBsI=!lTMJXYaZz z&v$mykRgchh_0U-s2;cRX<1FxlmtSjlE0qmMTU6_hSgYJ9&hs5F8jaOxRg^;>O9^Y zE%&@~g0xl+ir|2)w$c@e0*QO3<$FJJwJkT#!Bm|!p9%M@toJ4Q@!PL0_VX@CnVYk! zsi~EH=)j&M{N(7!ouiZz+8fVCJ$L(q+q}%E3;)lbKL+qXymz%$w0hn*ju0_jU0SEz z>41ugm(O%+aJR>c;f1Bm1@1c)CcXQoGu9}O8jC64NAht73(cMopZ+A?mDQdYKBpau z>zkVlb(TjnimzU=*X!C}8DE|5zEV`|5Zr4t8dJ%xUpFlXu|yu7@B zd$pHUQ9(REKd;de_|RHN+=LJWE4ge5NlEy(;-luNo^F8)G^@Y5AbeAX9))|mAdA_0 zJ&?nx7#^PuzV2mSBB3ZsTHo05Eh$l|s^-e5;G=)EpjZAmm0zn%RQB&Kwb`d4$u@#r2F%o zEE7zv7PE-#c@3X zoF)4xQdvRa*AhHPRZY$J#}BHX+1Z9`eTlG(G_T92YlCT#^w*0Rm^e7wwKr8&T%->k zWM*U_ZEkL2;*am8&Cb4GU0=`2&&MKX)00wB`LNsb;T-S_W@ z#>N8T;vSHakukEd4Q}mfPczrB*V4*c?)2X8f#Qp!^_A`@rtX0O855IiW1ToX$!Olw z9rU)rK>}J@S~Cj^nhM8)n=XkrALlr5mG>aOid~4sGtR^}b9~c>yq)iO5#9D7^H4|-;!pS_;QJ*5x&#XZPm+kbQ! z`;HI&BZ49^EiG-8;*E*PBV=S`htcNd=DfVTZ+*O^6coYX)Vv>7I>TjZo&WwOyS|)g z>12u&@{QMX!=m@tM;b`x&q}hU_+@En2_s2%t8H>S`K*w@jzmXCr*b^y{PykJXs3&- zZTBmB?`sY^?`vBr8JXqQFDTvp{joyhvrf-f-P5!ak#Ke4hVsxK1fhC69 zfOL3r5+ITB%|i?yO;mjs^1wyFHO!d)R2mS6L`LbXTXExzfk8IfL*Nt%P&7UV<1VP+J_H#K9q zPplU7_4jsmzI*I{s-70vCE5pj6i-Vlr-edYU41dddA_aSZQ=dKd_C#-W6C*+$I@4$ zup{mEm^p9kv(Vl3QS`;yv?pSgALK|zetyb9;WHY1I-%eu_cQHkUHPkD57ugo^20r~ zrs>yeOc4CF=>ZO(Jq~3|ZNgg#{KC zmWPHLdwXn~V`f}bAg*ub;8~;0HHCl-3o?x4p=lqO)kTEWjR+oU5omIq=`xqgMTGdqD*xkn%aT%Y zgZ+nfg&rIx^J;T9ppOY$oLE+=^ES3eJ`0mrW_iU`eAes=)h6jLviI8lO#V$EB*P)7 zrbqVOlb-zJ`Z!+HW)T81#QySEwh!0m2P!PF`zI$Iv-S2!kgiC2Sq~4P&M-&6 zMn)t`N=jIl>Bo;y@VmIUI3^~hn1@HB@r}Os4L30f3AhT^#oe8Wi;Hx4co+gJ-Am%N zrV|npO4leXH)unC-{Lj5wXUtB^A*7Dys<5>88nzO3=$}{e#>U1Xy;4T`|1pGNVYm+;Jz|7H zk#BEr!6F#x=RBi|z6O=AOloQ>WN2^3NKvu>8%@L2+AmX^ljHXGYPR-{ev*KRfy_ni zoM97X&kGS^P0J2X`v*&tx%rs5A&{XPOIN!-lwj{wEr^(jtw{527ya`AYA|nMT{&)fsttn5F~CZTW9< z!7v<*$g?3qB53%1Ntl&3=HGIIY)_QRT39?2x!lO|Vy;W( zw@25hvG}50Ec5Z>WAM7nBmj$oWa&LgeHqe0i}sq%QpaYhtCXD(vmqzj6HFW&L;&i! zoXt5O{CT5{1o7JUqkreAT3^p|I@j6D)?#7noe&cjhaM{z0MZ|PZjM$G2@t5D|0{+_C2O4(~VRL(lPJ6YdG*vSV62R?vDI8c0+dZ-C% zUBMd1?Qy^xMm^iNQ22N5lZTRoDg=N+YQ)D`)u&Hq2q`E8X8Rd38Gn(eTdZzvVaLj$ z0Wcn%8C+At19oR+%Y<{Sf=(H6t+jDRPLWMr(uZiZ&4`T+X$nyF6dZ-?`36VpwG{X@9*!|TpQq!Vq++zxQP}NS`&!NhrF@^ zn|Z{HD|$00=P^L*xSKo*Z#VRgHwYHD@;d>tqMxfE5V^trv1Oiqi0>aXO)t-LgE~E+ zR8`BfLSHIs?d0k67kd>yLh04J6Potij*RjW?5W(A?^R=Q1?#G+ST+t0of(pQ8HI&c z7%siN)|rjhk9`pO*=fS=l#dm+ZiR=;CzO`j1N_94$%4Osx8(D1!T30EP2l2sk&%;w z%dG5$9G*ieA1{LE?9Bb(#Vl%Z4Ja^*C!4MufBv+9rwUs$hdynZg z>8~GTqfKcPm&Vs)uYz*HXvhEQ`Ptnq1Z0tDJkjW?3DBXHE@g4Oc`ejb$f>B!iO6fIj@Cu}Z>|CQNIs95Uiv)Pk%?*W_|8+J4FeL+G|i}8i&tH|OhwUgP=QS$2Q zob9`Spg}PuCG^kcy5m`|vDb@74eMCz7 zUPf0pdu)ag>S{P>1+iLaF5aGU1?#M~ZGK#9qWIUMc>J_d?+QN&-z2~aN<|6Cf>*u_xSy)+Yg>#%g*|E)v+oUTjpo37pJAjmX>2jGqv`FL_{b7?QI*^ zmzSSkQ@FWZ%DEZDX=!S?@6Rx1Mg@ZH2Le9eW#DaX;+nek_4TgZS?uQ`_`Z6h$QM8q%A zl$7M^>hl#|@J{X$4tK*16{z_I1fUEI5D-8Cm)qappI2B&U2y^y5-ligKn*K)`!_7r zL>c<>BgZoRyssqv4PBSWh3Lbg>Cn8ozW|iOFT069>vij}|Iui&~|5T*V+dyz< zWMs5)s<}4$B_+k>0f@7Qn8@lZu?X3Wkl=1Fjve$@*=pczu`LP8Qe4RFJLs)#ZTCnO z49UH)6%GNAQ>AbWK<-t-$3(-JZDo~Fm6eg&Y|$1>~dDYc88y3MDte0?r@TfTNs-{RbJLOmUL z9SeHn{R@EeQJ-)A@`&0yY?4eF`poVHi`CzZ>~am>yS1^=cNb0i3?C2B-wV`GL)ZbU z6K8SF@$q4a?{8+zj*Iw=F{hwoKs%Lfl+#0wa|~5pqUjFBSZN31QjxGm3go9T=&~B z4$fC1SK2V>fB9pPd`nFHbW($ZgY%DO_W$5c;IX8_#>O5R8uGcj9=zk4jz~zL`1$jv z!C1lD1Yvg`z-2jJadC6Mt%&R|UYIo>y6Pz3Yvy;@P-$7e8%?_<#d+|o6;Ll>JG4Y^ za_1upHI>uPP$V-{7+zT6Ra8V|*3{4dq^6?nhN7r=dDeft+4HW>hAA_XcxiLfucE@E z4pvZRyTWFBw8m>@ZjKIl__(CY^Q<2pPE8Jhq^62YmMxLjdEL{uW(<7Z9LXZrpRmZol@y-(MlH z)|t@Pk4b75`2qr=jkxy$aG1!^JXZYS2l8}qgi>IOH~T5#MilG|Ak2{{Dpn7f$rVoz zhy?^Jd@b95O^9kJ1{h;uL27Z0j=N#5Jw~H9WDeyUQ>w zTi=a$JR&dgBwBC2rQkLRfcUs)t#CXQKuWv&yKZJ}*@*%cEyvdhCZh#>h}eI{!~Hv0 zLWWfFjIDru6P(aQ2v8NwQnpV!*w@^2ctkz7p)@-mA8lgb!$_Ev`Yh~)*6G?9r2Kwj`8mmT8 zYi^nssHd^-NeB}Y6O|{V07nZ+srrBYiZeYuO-M%Dq7j*d_NHPTD&(&39g)|Y` znObWMh|tweC5T;oUe|Rc&p}Pt8L#gZ5*|}e5NBDx0bn%(-1Yv!!50Y*hXz|Pr|)|v2^24$oBg(4 z+RDEPPKbS`^?3VyJ+ILd<$1Vcw}>aiYvu8)HT@O`+y%V>F~Dj-7+9>(K;ooRpX(>51&sJwRB`h{?+#y|qoQxG%~8{qnk)YU=x#)!8K(&chm1aG9qvIB zb7r$yKE8^Iajjc8`rRWG7BYM$nXyrVl4oP{>(?h7o99R0I(R7Dl>%SBe97*9YB9Hc zPsM0eeq>}~f^Uc@{U=^S*45Px{lRr_DE~Iv{^TAnkCt?d~-994vxP zI1~`FAiFPt>4%*_#1s^8BWMK!M@H1X$Hgs!4--Van}0q}OiZkEIav1jE!m$YN-rBh zBkttH!@|n?NSN2WCM7N|u)SS^i;IgvSeUl0t<95{F)AtP>-Dt<2y{!!9bW%wuFHVf%`^6nY@5nwK>R z_|?ocM+L;?xcSR=K+oEV{AC8DHBALW4__R+>q)zkrvnv!|0m^>KK`Jg9{Zu;`OujO zHZ2Rk@^#}Uf`Zh#y1Kz(VZUNoHQ61v)B*kRTB1kAz<`0rYWAN0q}qu<+}uyE(D|Yt z#3wKB2^i%pAhNv4Q4rVAcmO8E}*9&l(KcClH z&Aq&6e1?UI$v(AR{&6Odab$cP9bm=EnIk}5ZH*Oj7`CIjxVXH#jyAQrS<~~=^PA#@ zd`t5t!orGNKHfx3m|vgg^SK=}#q_$nUNC{&wY)q|F*`Gtv%I{Wz-^8NVc_E|Bh;K@MRL}W7;&sGqi^a|6}02e4M?5U!!|2%Q;Z?^XWL`<=NQ5m=5 zqhJ;mK&OFSn=lv*%sPg?{sJS8peiYnpRJ|%#@&~Zv8hi^w7Q;wT4>^5?yCge(o}BP zHQ=Pg3U}M@nSr`|kFw<+eF}?0N#ZbVc#N$S5r1M3A%`GkJ$b}pvldR2y9i!p)Jj68 z#@9w1S)08uRMNF%_|L?UZvL}s1j@jB>M&tuN$uhXxyorWVB3_uulKFDUtj){|K@Q} zJrGS6ZcllQO-xRb;^X6ke0(5vFc=i9TI=SE$Dq|^9v61^pD-|pjrb8iER8*O@qZHf zaUF%?&$qhz75Z_DhSBz`yi&y^9smKCmAx-X{(R<6^}cnj>`l^Xsh>!nFd!iR9yjl! zQ7EmVLID9ClhR78Uou3Jjr8)*%q+ZF`yTsOGW*c4vXZ#1Eyi}SwSiFjd5*GjU}Yt% zI!lX47yRed{C<;JzqwJt*{8g6RTO1q{g|WTsR6Tg!#;6fGf@=cZJXydI`%SJ=KtqEdl!?i9 z>(A4e-njU9qn*j}jg5_O*GOXW@;D$*vU^@SfPd*ZIp`oM0dyk?xJm%F9>yo0Uu?FN zW1ynGa(hEYMi!l#+S1Zu+|1!An%&MpV?)kTo?m3nxs% z>L(2H0KH}1(&WFm_zK_}alj)~c3o_3u`KP<1_Sx0haOT@Tbl`kQ7|&T0s6=nfaC#R zl2utrdrzpm9eeKJu(3d%ntItAqs}7A#YJ&iR`7`N@8%}!=9felo*TW$f7a$%f?Pur ztu;*gxPsLA>MVTx{NfoZtw7|~)6+AvvZAXvF-^P0ezVTz=WM_ZYJtK$UiQdj}8dOVo{!rMY>v%fI9lCQtIjS39dlNT>K{Rl*Y zsd=ry=ytAF{71SOb^*$^;ICide|s-04Js=u?-}RS)zw$yv7jhRPiH_yLjzSUQm*ng z!7aV07YzXB6r3M%@9AxSf7F;RBKNl%8c+cND!FW8(Cd%!{oUPS0FeMU=i=U8WZsh- z+l((3GirjL&CQ9ZsIUPqdw%Y6KTiN@P_eaKzw|ncNlVauEP99B8J^_tjtCL+x|Oc% z)oc0@(Gz0??m+`g+x3kfhu5|G+;w#HHZX{`73*9s9V{;kNlEod+m;{W?ss?d0g6tt z7{3)DLoC4*teHkz}c6OwUjIvf8w%TA$2=>_~kNxgA#8+)nfDj^{_Fc7`* z`mpzLyrR6kpImnPT7S|K@BtMSJ<}B(gyFkJ2HRlQP zMuGr0o#`MVwulw11v(c7G%G8;?!lHxdn~Ei#zuP^`=j>5zd8_yw7%#h_fCr$rPOQG z^72Ai4@T%j5Fx&qE|0dMg zTiLzz!b+3{J^p}7{aqTw;~rwka5FP@@HN$T!2x1${GFakXN}dIz^o#JV3ko@I^O7forI7e2MM7hBj_V+QlASww@KRZ$WdVgROq zx<*A+)m9d}Ze*yumSuVkw?^&4EPu!|H!SDux7jbbzdXQK2AKChXessdakQ8kET-9Z z^0B{V-2)I`sKWPR_0|feXF|aTSRjZ4ggIA!QmMwz8mm*FE;7yPK>dU3Q*;l`-jyB( zKh*+jQ{UTa`sXfv12Uj9gs4bHonhiOHtaw-TwFA0{M9K|_K$mC-rouHx)IQGSwhS5 z?hLCrlVh`gyDN)xx?}NEj6uRa2Y<_f0!&qf#V;Nvl@n!{fz`H zTSZMxx-TvARh|SMKP3C-Grib*{&8UtxbQ-cLvzfl%3yLTue_WH#7!Gp+b@8TQfDF4 z)($MG!n=QReYV`+EO1N4yrF`TcMcfKe>ERGKM$z>pz|_(LZP@v*6Q*0YS=gS_otzE`N^@rkuEeh=y3U)G{Ijoph?UXY(<}~fyEx(KlXRX z4vu8M5WW#HQPh~s7SJR9(@Kho(#ZGV%g)Jx3N?B&zU7ZGuigU+2_`NsE#l)41CXPr z1N{9dn$o06Kjl3F$|5hX^Q3p{gx)mAJGpGZ%q()l>+`3er?T?$DA?F9m^kgz{$db( z`TiY2A3F58+RUm1zB|Lu=Y7jsRZDOiozmTn_T+gJQh1KV&~`K{@K#;k($52@j$HQ0 zuMsH}BevK)OTgV}T>TgNQeA`N96s%(;O}0XbPbGqwqNC=egk+~!|Xeu9p%7&R7GxL3}NzV&wpe2v$gnK?y- zvZ5E91@br!N1|RUXb(%>i4ZLMJLh975EyH$Y)6R?17>$i@|UnC?}@j>EzUB?fSC)7 zww=>67w_53@T!ySI6Uls|mhH%jSCtI_kLW$E&AaKe#lkwbHV2F61tw%2xe_C9S^6~q?fweV{u~viQ5Q!=TbW)jGR!n5N|HBvtw7%`3(R)uBvJ=R#T7Ts#&Yv4n+PBi%Uyi8XJXx2TXf5BKyXufHv+laj7)m-SnN9 zGxz?lUs9O9K7hVkj!_m7cXw|<9JE~YTbH>WeFP?l>kV1at+Q+I%h5CmQt24STR@J1 zayd*gXnypq#uK)dki)|ym?xL}=}UzlTo@3W-RYud;{vLnKFt?her|4o{Mz}y{a zX)W`L8UuRcBR?Q!F&=HFhzL_gMU_MRQ}x#M9GsjsYJfND17LE%iW8KRZvo<^V41__ zsExCx(NeqO&}YHn`T5Yf27TUX#Bi7)FQ%216$nQ_|wnYNOU@a@_CQK-}ev|`3WDN98%i#JzY z>VnU9E1Uavz3s&9}c2y)`pQ< zVte4!z{bHD21Mxbu>&el&(r=lPT)o^BcYI8IAK@&P0FBD-U1p0u6Ev~NmcXoC%>azW-u_CwUMnbpeEBD3p7Zi+d zNlC1U*5`~<|EzT9s!B`QfHxo| z$KwI9QHVajt)%Y2Yph7-s1wht;dt`}BXwv_#D2}**fi~rVp1W+f?!LHlL2%3r1r3G z1kihas^tSmB5H9|!K`1K+}|2a77QQz^#NeKBIxPqaY59t+w3oj@5~jliH@GVE6n)! zO0dVnp6n+^rLK9w8=c-+qvENEdM7HQPia#XUiWj1cj^Z#S7mxiGZSB2+96h0;(aov zuc~H8%c|+6&-**W6!xK!+wx@)Jb|W@hEP^k7SyBo7le;n<^G}+tK&mXPEID9+pytem*?V~lm~V@Vi=B<% z`NaOVELBHrZH0n*y1lm-2bjb$@$q?dJYl6kD*z5#iDC^V5s~Hvk2hpF7!A7eWBEY^ z#3y0}2GlRd@#U}j9>f)V(SfU-oc?FL?o3ZzRULXMR!~CC@~klwh&c+WjbhGe*`Ws$ zrKZrAc1WFJiI}m!$wArdc!ZFWcCKGy&j|;_5HQ+2?6M6cW{o8%Qga1H5jxLfRS=3Y zGog)V^X?j=PJ^k!?^?WsKNuMu49n6pK6|F{a^ZczW}C%?n&VbRft2t!mdU`dYWRpq zWkB}l#qpODm7gpv+vl6SJNpv9MkQbC*1_C>36*witOMX#1ADTQFY3DS#8I)1q(^JQ z!O6+Epd8gMqVNX97`PNF;`JODFI3bW@M^6b^;7M0Szx_b^4CM@J@sn!$t(&acmYw` z%cknbJL)WB>CLXc+d!02)z=p_-ZsiUY>14_3qiM1_tyobv5>HEPy;2Lg^TOY&XiTn zhx@NHWVmdypgU$8+~aRo=F*DG8y7KowUv4wM>nVvIiaDUWqDClrl%X!C5cIKS;$CF zj!jIgBw0680yj6&F#D3@|04(Qtbh5ZaGzMBL9jdW&MnQMnT8oEeDD5s`sH=P)K|K! z##gLF!zrsv`7eb>=ZOb=<^od~C=lE$?keBFVH+w=r&(GHGNR#)oVzeG2m1CLP9;&< z%S5lUDa*-|teMh4cg+oQmlXshfi?X?!@Lj_T7PtU0IzfJ%<>+>ik=S=zk^#%I!+UG$>9RZ&bA3|bc+=2A)V!d9N zGGIPiOJTsYv9W0l4Vu8$u@4De{Rj?TEiEn%2`_&fs*DMwfxMEP-U-kR(rt-RchGsLe3AF2Q{|8=haM;!vzxia$=*?)ZGsa{Wd(NEx_wlBfU#WML zbcNd~#E{{0Bh$gJez|f1;N(iP^5vy!@PLCJH%b!mz#Fc?$eH2p4m30^_AMy?$S4h&1Rl zA0OXwvLNH}-XxZ%-yp-{v93@91C4-Jn^a4;7dRxLS{U#obSU)0SrtN=H8Bvu!_aO3 zbC-V7tQ$NM{eg?;k7VI46(Uzg%9xxKTh_(J?L*(B?OZ%LW>XVqhVtZzg8VIM^e5>( z%K%?t!6dBc(KqRPJ+GaAPVS{5Oi+Uf85dI*Rc1+OShP@xhRv9d6Nyp%?x_5A@6uyV zH&ENsw@qbbq$XdtP*M=^AF=v~pmoe+xo;Ve5KZCu!DX7_y|i!zS29f5ngk5|{ZrHz z=u%g${IJRgcT?}SkRyYGFNaewCaK*n@31BIv<@WhRva(itOQk_JO+mfx3BQpKHLqk z?_JKDq?Mw9lbl12PjTT&ggs_!^pB25C~{tVcJXhekW zk#oQ|z|rYjayF@ZR&^^yc2nhvLCfCWj$gL>Bit*cA(c_#%AFD%6AVtwP%v*FpbM`n zLkT1Jv=zBZNf*BzB7ij4)G+S~QSNvM-IBMvs2E~C#vL5mai3}S!>7nF#CSIa-==o^ zhRy&^^^Lke_&B)hb;nKTbZYS{kamc7ALiG$zYy(?M&!Gs90A&*8lBGBXzB7)Vy}9T zi2hK<-`gsl_mhks;-qt8Y6~V1OdlM0fGV~lY=z;_ z@+z}AjTzFImmJ(pD()t~LE^^rY}Ks?y5mMkJ-(BOB+k{iYGB;-N=nK($#BSVfhLi0 zLSDmgqIX}KNZNBze6{rvQ4}{SlQ?g5&&wTLO7}LYKswMcJ4_xUV|u5~?i0{e=n5%( r4g!T{3Wopx@LceJai)3i4ypH9iI!0PSRXjD4S6lCBvm3|;QN08j - -react - -

- # Notice, plugin under refactoring **This plugin is under refactoring an maintenance. The next official release will contain multiple updates and upgrades.**\ **If you encounter any bug, please contact me on Discord.** diff --git a/addons/easy_charts/2DChart/LineChart2D/line_chart2D.gd b/addons/easy_charts/2DChart/LineChart2D/line_chart2D.gd deleted file mode 100644 index e4089df..0000000 --- a/addons/easy_charts/2DChart/LineChart2D/line_chart2D.gd +++ /dev/null @@ -1,469 +0,0 @@ -tool -extends Chart2D -class_name LineChart2D - -# [Linechart2D] - General purpose node for Line Charts -# A line chart or line plot or line graph or curve chart is a type of chart which -# displays information as a series of data points called 'markers' -# connected by straight line segments. -# It is a basic type of chart common in many fields. It is similar to a scatter plot -# except that the measurement points are ordered (typically by their x-axis value) -# and joined with straight line segments. -# A line chart is often used to visualize a trend in data over intervals of time – -# a time series – thus the line is often drawn chronologically. -# In these cases they are known as run charts. -# Source: Wikipedia - -func _point_plotted(): - pass - - -func _ready(): - _get_children() - - -func _set_size(size: Vector2): - SIZE = size - build_chart() - if Engine.editor_hint: - _get_children() - Outlines.set_point_position(0, Vector2(origin.x, 0)) - Outlines.set_point_position(1, Vector2(SIZE.x, 0)) - Outlines.set_point_position(2, Vector2(SIZE.x, origin.y)) - Outlines.set_point_position(3, origin) - Outlines.set_point_position(4, Vector2(origin.x, 0)) - - Grid.get_node("VLine").set_point_position(0, Vector2((OFFSET.x + SIZE.x) / 2,0)) - Grid.get_node("VLine").set_point_position(1, Vector2((OFFSET.x + SIZE.x) / 2, origin.y)) - Grid.get_node("HLine").set_point_position(0, Vector2(origin.x, origin.y / 2)) - Grid.get_node("HLine").set_point_position(1, Vector2(SIZE.x, origin.y / 2)) - - -func clear(): - Outlines.points = [] - Grid.get_node("HLine").queue_free() - Grid.get_node("VLine").queue_free() - - -func load_font(): - if font != null: - font_size = font.get_height() - var theme: Theme = Theme.new() - theme.set_default_font(font) - PointData.set_theme(theme) - else: - var lbl = Label.new() - font = lbl.get_font("") - lbl.free() - if bold_font != null: - PointData.Data.set("custom_fonts/font",bold_font) - - -func _plot(source: String, delimiter: String, are_values_columns: bool, x_values_index: int): - randomize() - - clear() - - load_font() - PointData.hide() - - datas = read_datas(source, delimiter) - count_functions() - structure_datas(datas, are_values_columns, x_values_index) - build_chart() - calculate_pass() - calculate_coordinates() - calculate_colors() - draw_chart() - - create_legend() - emit_signal("chart_plotted", self) - - -func plot(): - randomize() - - clear() - - load_font() - PointData.hide() - - if source == "" or source == null: - ECUtilities._print_message("Can't plot a chart without a Source file. Please, choose it in editor, or use the custom function _plot().", 1) - return - datas = read_datas(source,delimiter) - count_functions() - structure_datas(datas, are_values_columns, x_values_index) - build_chart() - calculate_pass() - calculate_coordinates() - calculate_colors() - draw_chart() - - create_legend() - emit_signal("chart_plotted", self) - - -func calculate_colors(): - if function_colors.empty() or function_colors.size() < functions: - for function in functions: - function_colors.append(Color("#1e1e1e")) - - -func draw_chart(): - draw_outlines() - draw_v_grid() - draw_h_grid() - draw_functions() - - -func draw_outlines(): - if boxed: - Outlines.set_default_color(box_color) - OutlinesTween.interpolate_method( - Outlines, - "add_point", - Vector2(origin.x, 0), - Vector2(SIZE.x, 0), - drawing_duration * 0.5, - Tween.TRANS_QUINT, - Tween.EASE_OUT) - OutlinesTween.start() - yield(OutlinesTween, "tween_all_completed") - OutlinesTween.interpolate_method( - Outlines, - "add_point", - Vector2(SIZE.x, 0), - Vector2(SIZE.x, origin.y), - drawing_duration * 0.5, - Tween.TRANS_QUINT, - Tween.EASE_OUT) - OutlinesTween.start() - yield(OutlinesTween, "tween_all_completed") - - OutlinesTween.interpolate_method( - Outlines, - "add_point", - Vector2(SIZE.x, origin.y), - origin, - drawing_duration * 0.5, - Tween.TRANS_QUINT, - Tween.EASE_OUT) - OutlinesTween.start() - yield(OutlinesTween, "tween_all_completed") - OutlinesTween.interpolate_method( - Outlines, - "add_point", - origin, - Vector2(origin.x, 0), - drawing_duration * 0.5, - Tween.TRANS_QUINT, - Tween.EASE_OUT) - OutlinesTween.start() - yield(OutlinesTween, "tween_all_completed") - - -func draw_v_grid(): - for p in x_chors.size(): - var point: Vector2 = origin + Vector2((p) * x_pass, 0) - var v_grid: Line2D = Line2D.new() - Grid.add_child(v_grid) - v_grid.set_width(1) - v_grid.set_default_color(v_lines_color) - add_label(point + Vector2(-const_width / 2 * x_chors[p].length(), font_size / 2), x_chors[p]) - GridTween.interpolate_method( - v_grid, - "add_point", - point, - point - Vector2(0, SIZE.y - OFFSET.y), - drawing_duration / (x_chors.size()), - Tween.TRANS_EXPO, - Tween.EASE_OUT) - GridTween.start() - yield(GridTween, "tween_all_completed") - - -func draw_h_grid(): - for p in y_chors.size(): - var point: Vector2 = origin - Vector2(0, p * y_pass) - var h_grid: Line2D = Line2D.new() - Grid.add_child(h_grid) - h_grid.set_width(1) - h_grid.set_default_color(h_lines_color) - add_label(point - Vector2(y_chors[p].length() * const_width + font_size, font_size / 2), y_chors[p]) - GridTween.interpolate_method( - h_grid, - "add_point", - point, - Vector2(SIZE.x, point.y), - drawing_duration / (y_chors.size()), - Tween.TRANS_EXPO, - Tween.EASE_OUT) - GridTween.start() - yield(GridTween, "tween_all_completed") - - -func add_label(point: Vector2, text: String): - var lbl: Label = Label.new() - if font != null: - lbl.set("custom_fonts/font", font) - lbl.set("custom_colors/font_color", font_color) - Grid.add_child(lbl) - lbl.rect_position = point - lbl.set_text(text) - - -func draw_functions(): - for function in point_positions.size(): - draw_function(function, point_positions[function]) - - -func draw_function(f_index: int, function: Array): - var line: Line2D = Line2D.new() - var backline: Line2D = Line2D.new() - construct_line(line, backline, f_index, function) - var pointv: Point - for point in function.size(): - pointv = point_node.instance() - Functions.add_child(pointv) - pointv.connect("_mouse_entered", self, "show_data") - pointv.connect("_mouse_exited", self, "hide_data") - pointv.connect("_point_pressed", self, "point_pressed") - pointv.create_point( - point_shape, - function_colors[f_index], - Color.white, function[point], - pointv.format_value(point_values[f_index][point], false, false), - y_labels[point if invert_chart else f_index] as String) - if point < function.size() - 1: - FunctionsTween.interpolate_method( - line, - "add_point", - function[point], - function[point + 1], - drawing_duration / function.size(), - Tween.TRANS_QUINT, - Tween.EASE_OUT) - FunctionsTween.start() - yield(FunctionsTween, "tween_all_completed") - - -func construct_line(line: Line2D, backline: Line2D, f_index: int, function: Array): - var midtone = Color( - Color(function_colors[f_index]).r, - Color(function_colors[f_index]).g, - Color(function_colors[f_index]).b, - Color(function_colors[f_index]).a / 2) - backline.set_width(3) - backline.set_default_color(midtone) - backline.antialiased = true - Functions.add_child(backline) - line.set_width(2) - line.set_default_color(function_colors[f_index]) - line.antialiased = true - Functions.add_child(line) - - -func read_datas(source: String, delimiter: String): - var file: File = File.new() - file.open(source, File.READ) - var content: Array - while not file.eof_reached(): - var line: PoolStringArray = file.get_csv_line(delimiter) - content.append(line) - file.close() - for data in content: - if data.size() < 2: - content.erase(data) - return content - - -func structure_datas(database: Array, are_values_columns: bool, x_values_index: int): - # @x_values_index can be either a column or a row relative to x values - # @y_values can be either a column or a row relative to y values - self.are_values_columns = are_values_columns - match are_values_columns: - true: - for row in database.size(): - var t_vals: Array - for column in database[row].size(): - if column == x_values_index: - var x_data = database[row][column] - if x_data.is_valid_float() or x_data.is_valid_integer(): - x_datas.append(x_data as float) - else: - x_datas.append(x_data.replace(",", ".") as float) - else: - if row != 0: - var y_data = database[row][column] - if y_data.is_valid_float() or y_data.is_valid_integer(): - t_vals.append(y_data as float) - else: - t_vals.append(y_data.replace(",", ".") as float) - else: - y_labels.append(str(database[row][column])) - if not t_vals.empty(): - y_datas.append(t_vals) - x_label = str(x_datas.pop_front()) - false: - for row in database.size(): - if row == x_values_index: - x_datas = (database[row]) - x_label = x_datas.pop_front() as String - else: - var values = database[row] as Array - y_labels.append(values.pop_front() as String) - y_datas.append(values) - for data in y_datas: - for value in data.size(): - data[value] = data[value] as float - - # draw y labels - var to_order: Array - var to_order_min: Array - for cluster in y_datas.size(): - # define x_chors and y_chors - var ordered_cluster = y_datas[cluster] as Array - ordered_cluster.sort() - ordered_cluster = PoolIntArray(ordered_cluster) - var margin_max = ordered_cluster[ordered_cluster.size() - 1] - var margin_min = ordered_cluster[0] - to_order.append(margin_max) - to_order_min.append(margin_min) - - to_order.sort() - to_order_min.sort() - var margin = to_order.pop_back() - if not origin_at_zero: - y_margin_min = to_order_min.pop_front() - v_dist = y_decim * pow(10.0,str(margin).length() - 2) - var multi = 0 - var p = (v_dist * multi) + (y_margin_min if not origin_at_zero else 0) - y_chors.append(p as String) - while p < margin: - multi+=1 - p = (v_dist * multi) + (y_margin_min if not origin_at_zero else 0) - y_chors.append(p as String) - - # draw x_labels - if not show_x_values_as_labels: - to_order.clear() - to_order = x_datas as PoolIntArray - - to_order.sort() - margin = to_order.pop_back() - if not origin_at_zero: - x_margin_min = to_order.pop_front() - h_dist = x_decim * pow(10.0, str(margin).length() - 2) - multi = 0 - p = (h_dist * multi) + (x_margin_min if not origin_at_zero else 0) - x_labels.append(p as String) - while p < margin: - multi += 1 - p = (h_dist * multi) + (x_margin_min if not origin_at_zero else 0) - x_labels.append(p as String) - - -func build_chart(): - origin = Vector2(OFFSET.x, SIZE.y - OFFSET.y) - - -func calculate_pass(): - if invert_chart: - x_chors = y_labels as PoolStringArray - else: - if show_x_values_as_labels: - x_chors = x_datas as PoolStringArray - else: - x_chors = x_labels - - # calculate distance in pixel between 2 consecutive values/datas - x_pass = (SIZE.x - OFFSET.x) / (x_chors.size() - 1) - y_pass = origin.y / (y_chors.size() - 1) - - -func calculate_coordinates(): - x_coordinates.clear() - y_coordinates.clear() - point_values.clear() - point_positions.clear() - - if invert_chart: - for column in y_datas[0].size(): - var single_coordinates: Array - for row in y_datas: - if origin_at_zero: - single_coordinates.append((row[column] * y_pass) / v_dist) - else: - single_coordinates.append((row[column] - y_margin_min) * y_pass / v_dist) - y_coordinates.append(single_coordinates) - else: - for cluster in y_datas: - var single_coordinates: Array - for value in cluster.size(): - if origin_at_zero: - single_coordinates.append((cluster[value] * y_pass) / v_dist) - else: - single_coordinates.append((cluster[value] - y_margin_min) * y_pass / v_dist) - y_coordinates.append(single_coordinates) - - if show_x_values_as_labels: - for x in x_datas.size(): - x_coordinates.append(x_pass * x) - else: - for x in x_datas.size(): - if origin_at_zero: - if invert_chart: - x_coordinates.append(x_pass * x) - else: - x_coordinates.append(x_datas[x] * x_pass / h_dist) - else: - x_coordinates.append((x_datas[x] - x_margin_min) * x_pass / h_dist) - - for f in functions: - point_values.append([]) - point_positions.append([]) - - if invert_chart: - for function in y_coordinates.size(): - for function_value in y_coordinates[function].size(): - if are_values_columns: - point_positions[function_value].append(Vector2( - x_coordinates[function] + origin.x, - origin.y - y_coordinates[function][function_value])) - point_values[function_value].append( - [x_datas[function_value], y_datas[function_value][function]]) - else: - point_positions[function].append(Vector2( - x_coordinates[function_value] + origin.x, - origin.y - y_coordinates[function][function_value])) - point_values[function].append( - [x_datas[function_value], y_datas[function_value][function]]) - else: - for cluster in y_coordinates.size(): - for y in y_coordinates[cluster].size(): - if are_values_columns: - point_values[y].append([x_datas[cluster],y_datas[cluster][y]]) - point_positions[y].append(Vector2( - x_coordinates[cluster] + origin.x, - origin.y - y_coordinates[cluster][y])) - else: - point_values[cluster].append([x_datas[y],y_datas[cluster][y]]) - point_positions[cluster].append(Vector2( - x_coordinates[y] + origin.x, - origin.y - y_coordinates[cluster][y])) - - -func invert_chart(): - invert_chart = !invert_chart - count_functions() - redraw() - create_legend() - -func _enter_tree(): - _ready() - - -# Signal Repeaters -func point_pressed(point: Point) -> Point: - return point diff --git a/addons/easy_charts/2DChart/ScatterChart2D/scatter_chart2D.gd b/addons/easy_charts/2DChart/ScatterChart2D/scatter_chart2D.gd deleted file mode 100644 index 82228e4..0000000 --- a/addons/easy_charts/2DChart/ScatterChart2D/scatter_chart2D.gd +++ /dev/null @@ -1,448 +0,0 @@ -tool -extends Chart2D -class_name ScatterChart2D - -""" -[ScatterChart2D] - General purpose node for Scatter Charts - -A scatter plot (also called a scatterplot, scatter graph, scatter chart, scattergram, or scatter diagram) - is a type of plot or mathematical diagram using Cartesian coordinates to display values for typically two variables -for a set of data. If the points are coded (color/shape/size), one additional variable can be displayed. -The data are displayed as a collection of points, each having the value of one variable determining the position on -the horizontal axis and the value of the other variable determining the position on the vertical axis. - -/ source : Wikipedia / -""" - -func _point_plotted(): - pass - -func _ready(): - _get_children() - -func _get_children(): - OutlinesTween = $OutlinesTween - PointTween = $PointTween - Functions = $Functions - GridTween = $GridTween - PointData = $PointData/PointData - Outlines = $Outlines - Grid = $Grid - -func _set_size(size : Vector2): - SIZE = size - build_chart() - if Engine.editor_hint: - _get_children() - Outlines.set_point_position(0,Vector2(origin.x,0)) - Outlines.set_point_position(1,Vector2(SIZE.x,0)) - Outlines.set_point_position(2,Vector2(SIZE.x,origin.y)) - Outlines.set_point_position(3,origin) - Outlines.set_point_position(4,Vector2(origin.x,0)) - - Grid.get_node("VLine").set_point_position(0,Vector2((OFFSET.x+SIZE.x)/2,0)) - Grid.get_node("VLine").set_point_position(1,Vector2((OFFSET.x+SIZE.x)/2,origin.y)) - Grid.get_node("HLine").set_point_position(0,Vector2(origin.x,origin.y/2)) - Grid.get_node("HLine").set_point_position(1,Vector2(SIZE.x,origin.y/2)) - -func clear(): - Outlines.points = [] - Grid.get_node("HLine").queue_free() - Grid.get_node("VLine").queue_free() - -func load_font(): - if font != null: - font_size = font.get_height() - var theme : Theme = Theme.new() - theme.set_default_font(font) - PointData.set_theme(theme) - else: - var lbl = Label.new() - font = lbl.get_font("") - lbl.free() - if bold_font != null: - PointData.Data.set("custom_fonts/font",bold_font) - -func _plot(source_ : String, delimiter_ : String, are_values_columns_ : bool, x_values_index_ : int): - randomize() - - clear() - - load_font() - PointData.hide() - - datas = read_datas(source_,delimiter_) - count_functions() - structure_datas(datas,are_values_columns_,x_values_index_) - build_chart() - calculate_pass() - calculate_coordinates() - calculate_colors() - draw_chart() - - create_legend() - emit_signal("chart_plotted", self) - -func plot(): - randomize() - - clear() - - load_font() - PointData.hide() - - if source == "" or source == null: - ECUtilities._print_message("Can't plot a chart without a Source file. Please, choose it in editor, or use the custom function _plot().",1) - return - datas = read_datas(source,delimiter) - count_functions() - structure_datas(datas,are_values_columns,x_values_index) - build_chart() - calculate_pass() - calculate_coordinates() - calculate_colors() - draw_chart() - - create_legend() - emit_signal("chart_plotted", self) - -func calculate_colors(): - if function_colors.empty() or function_colors.size() < functions: - for function in functions: - function_colors.append(Color("#1e1e1e") as Color) - -func draw_chart(): - draw_outlines() - draw_v_grid() - draw_h_grid() - draw_functions() - -func draw_outlines(): - if boxed: - Outlines.set_default_color(box_color) - OutlinesTween.interpolate_method(Outlines,"add_point", - Vector2(origin.x,0),Vector2(SIZE.x,0),drawing_duration*0.5,Tween.TRANS_QUINT,Tween.EASE_OUT) - OutlinesTween.start() - yield(OutlinesTween,"tween_all_completed") - OutlinesTween.interpolate_method(Outlines,"add_point", - Vector2(SIZE.x,0),Vector2(SIZE.x,origin.y),drawing_duration*0.5,Tween.TRANS_QUINT,Tween.EASE_OUT) - OutlinesTween.start() - yield(OutlinesTween,"tween_all_completed") - OutlinesTween.interpolate_method(Outlines,"add_point", - Vector2(SIZE.x,origin.y),origin,drawing_duration*0.5,Tween.TRANS_QUINT,Tween.EASE_OUT) - OutlinesTween.start() - yield(OutlinesTween,"tween_all_completed") - OutlinesTween.interpolate_method(Outlines,"add_point", - origin,Vector2(origin.x,0),drawing_duration*0.5,Tween.TRANS_QUINT,Tween.EASE_OUT) - OutlinesTween.start() - yield(OutlinesTween,"tween_all_completed") - -func draw_v_grid(): - for p in x_chors.size(): - var point : Vector2 = origin+Vector2((p)*x_pass,0) - var v_grid : Line2D = Line2D.new() - Grid.add_child(v_grid) - v_grid.set_width(1) - v_grid.set_default_color(v_lines_color) - add_label(point+Vector2(-const_width/2*x_chors[p].length(),font_size/2), x_chors[p]) - GridTween.interpolate_method(v_grid,"add_point",point,point-Vector2(0,SIZE.y-OFFSET.y),drawing_duration/(x_chors.size()),Tween.TRANS_EXPO,Tween.EASE_OUT) - GridTween.start() - yield(GridTween,"tween_all_completed") - -func draw_h_grid(): - for p in y_chors.size(): - var point : Vector2 = origin-Vector2(0,(p)*y_pass) - var h_grid : Line2D = Line2D.new() - Grid.add_child(h_grid) - h_grid.set_width(1) - h_grid.set_default_color(h_lines_color) - add_label(point-Vector2(y_chors[p].length()*const_width+font_size,font_size/2), y_chors[p]) - GridTween.interpolate_method(h_grid,"add_point",point,Vector2(SIZE.x,point.y),drawing_duration/(y_chors.size()),Tween.TRANS_EXPO,Tween.EASE_OUT) - GridTween.start() - yield(GridTween,"tween_all_completed") - - -func add_label(point : Vector2, text : String): - var lbl : Label = Label.new() - if font != null: - lbl.set("custom_fonts/font",font) - lbl.set("custom_colors/font_color",font_color) - Grid.add_child(lbl) - lbl.rect_position = point - lbl.set_text(text) - -func draw_functions(): - for function in point_positions.size(): - draw_function(function,point_positions[function]) - -func draw_function(f_index : int, function : Array): - var pointv : Point - for point in function.size(): - pointv = point_node.instance() - Functions.add_child(pointv) - pointv.connect("_mouse_entered",self,"show_data") - pointv.connect("_mouse_exited",self,"hide_data") - pointv.connect("_point_pressed",self,"point_pressed") - pointv.create_point(point_shape, function_colors[f_index], Color.white, function[point], - pointv.format_value(point_values[f_index][point],false,false), - y_labels[point if invert_chart else f_index] as String) - yield(get_tree().create_timer(drawing_duration/function.size()), "timeout") - - -func read_datas(source : String, delimiter : String): - var file : File = File.new() - file.open(source,File.READ) - var content : Array - while not file.eof_reached(): - var line : PoolStringArray = file.get_csv_line(delimiter) - content.append(line) - file.close() - for data in content: - if data.size() < 2: - content.erase(data) - return content - -func structure_datas(database : Array, are_values_columns : bool, x_values_index : int): - # @x_values_index can be either a column or a row relative to x values - # @y_values can be either a column or a row relative to y values - self.are_values_columns = are_values_columns - match are_values_columns: - true: - for row in database.size(): - var t_vals : Array - for column in database[row].size(): - if column == x_values_index: - var x_data = database[row][column] - if x_data.is_valid_float() or x_data.is_valid_integer(): - x_datas.append(x_data as float) - else: - x_datas.append(x_data.replace(",",".") as float) - else: - if row != 0: - var y_data = database[row][column] - if y_data.is_valid_float() or y_data.is_valid_integer(): - t_vals.append(y_data as float) - else: - t_vals.append(y_data.replace(",",".") as float) - else: - y_labels.append(str(database[row][column])) - if not t_vals.empty(): - y_datas.append(t_vals) - x_label = str(x_datas.pop_front()) - false: - for row in database.size(): - if row == x_values_index: - x_datas = (database[row]) - x_label = x_datas.pop_front() as String - else: - var values = database[row] as Array - y_labels.append(values.pop_front() as String) - y_datas.append(values) - for data in y_datas: - for value in data.size(): - data[value] = data[value] as float - - # draw y labels - var to_order : Array - var to_order_min : Array - for cluster in y_datas.size(): - # define x_chors and y_chors - var ordered_cluster = y_datas[cluster] as Array - ordered_cluster.sort() - ordered_cluster = PoolIntArray(ordered_cluster) - var margin_max = ordered_cluster[ordered_cluster.size()-1] - var margin_min = ordered_cluster[0] - to_order.append(margin_max) - to_order_min.append(margin_min) - - to_order.sort() - to_order_min.sort() - var margin = to_order.pop_back() - if not origin_at_zero: - y_margin_min = to_order_min.pop_front() - v_dist = y_decim * pow(10.0,str(margin).length()-2) - var multi = 0 - var p = (v_dist*multi) + ((y_margin_min) if not origin_at_zero else 0) - y_chors.append(p as String) - while p < margin: - multi+=1 - p = (v_dist*multi) + ((y_margin_min) if not origin_at_zero else 0) - y_chors.append(p as String) - - # draw x_labels - if not show_x_values_as_labels: - to_order.clear() - to_order = x_datas as PoolIntArray - - to_order.sort() - margin = to_order.pop_back() - if not origin_at_zero: - x_margin_min = to_order.pop_front() - h_dist = x_decim * pow(10.0,str(margin).length()-2) - multi = 0 - p = (h_dist*multi) + ((x_margin_min) if not origin_at_zero else 0) - x_labels.append(p as String) - while p < margin: - multi+=1 - p = (h_dist*multi) + ((x_margin_min) if not origin_at_zero else 0) - x_labels.append(p as String) - -func build_chart(): - origin = Vector2(OFFSET.x,SIZE.y-OFFSET.y) - -func calculate_pass(): - if invert_chart: - x_chors = y_labels as PoolStringArray - else: - if show_x_values_as_labels: - x_chors = x_datas as PoolStringArray - else: - x_chors = x_labels - - # calculate distance in pixel between 2 consecutive values/datas - x_pass = (SIZE.x - OFFSET.x) / (x_chors.size()-1) - y_pass = origin.y / (y_chors.size()-1) - -func calculate_coordinates(): - x_coordinates.clear() - y_coordinates.clear() - point_values.clear() - point_positions.clear() - - if invert_chart: - for column in y_datas[0].size(): - var single_coordinates : Array - for row in y_datas: - if origin_at_zero: - single_coordinates.append((row[column]*y_pass)/v_dist) - else: - single_coordinates.append((row[column] - y_margin_min)*y_pass/v_dist) - y_coordinates.append(single_coordinates) - else: - for cluster in y_datas: - var single_coordinates : Array - for value in cluster.size(): - if origin_at_zero: - single_coordinates.append((cluster[value]*y_pass)/v_dist) - else: - single_coordinates.append((cluster[value] - y_margin_min)*y_pass/v_dist) - y_coordinates.append(single_coordinates) - - if show_x_values_as_labels: - for x in x_datas.size(): - x_coordinates.append(x_pass*x) - else: - for x in x_datas.size(): - if origin_at_zero: - if invert_chart: - x_coordinates.append(x_pass*x) - else: - x_coordinates.append(x_datas[x]*x_pass/h_dist) - else: - x_coordinates.append((x_datas[x] - x_margin_min)*x_pass/h_dist) - - for f in functions: - point_values.append([]) - point_positions.append([]) - - if invert_chart: - for function in y_coordinates.size(): - for function_value in y_coordinates[function].size(): - if are_values_columns: - point_positions[function_value].append(Vector2(x_coordinates[function]+origin.x, origin.y-y_coordinates[function][function_value])) - point_values[function_value].append([x_datas[function_value],y_datas[function_value][function]]) - else: - point_positions[function].append(Vector2(x_coordinates[function_value]+origin.x,origin.y-y_coordinates[function][function_value])) - point_values[function].append([x_datas[function_value],y_datas[function_value][function]]) - else: - for cluster in y_coordinates.size(): - for y in y_coordinates[cluster].size(): - if are_values_columns: - point_values[y].append([x_datas[cluster],y_datas[cluster][y]]) - point_positions[y].append(Vector2(x_coordinates[cluster]+origin.x,origin.y-y_coordinates[cluster][y])) - else: - point_values[cluster].append([x_datas[y],y_datas[cluster][y]]) - point_positions[cluster].append(Vector2(x_coordinates[y]+origin.x,origin.y-y_coordinates[cluster][y])) - -func redraw(): - build_chart() - calculate_pass() - calculate_coordinates() - update() - - -func show_data(point): - PointData.update_datas(point) - PointData.show() - -func hide_data(): - PointData.hide() - -func clear_points(): - function_colors.clear() - if Functions.get_children(): - for function in Functions.get_children(): - function.queue_free() - -func set_legend(l : Array): - legend = l - -func get_legend(): - return legend - -func invert_chart(): - invert_chart = !invert_chart - count_functions() - redraw() - create_legend() - -func count_functions(): - if are_values_columns: - if not invert_chart: - functions = datas[0].size()-1 - else: - functions = datas.size()-1 - else: - if invert_chart: - functions = datas[0].size()-1 - else: - functions = datas.size()-1 - -func create_legend(): - legend.clear() - for function in functions: - var function_legend = FunctionLegend.instance() - var f_name : String - if invert_chart: - f_name = x_datas[function] as String - else: - f_name = y_labels[function] - var legend_font : Font - if font != null: - legend_font = font - if bold_font != null: - legend_font = bold_font - function_legend.create_legend(f_name,function_colors[function],bold_font,font_color) - legend.append(function_legend) - -func apply_template(template_name : int): - template = template_name - templates = ECUtilities._load_templates() - if template_name!=null: - var custom_template = templates.get(templates.keys()[template_name]) - function_colors = custom_template.function_colors as PoolColorArray - v_lines_color = Color(custom_template.v_lines_color) - h_lines_color = Color(custom_template.h_lines_color) - box_color = Color(custom_template.outline_color) - font_color = Color(custom_template.font_color) - property_list_changed_notify() - - if Engine.editor_hint: - _get_children() - Outlines.set_default_color(box_color) - Grid.get_node("VLine").set_default_color(v_lines_color) - Grid.get_node("HLine").set_default_color(h_lines_color) - - -func _enter_tree(): - _ready() diff --git a/addons/easy_charts/2DChart/ColumnChart2D/column_chart2D.gd b/addons/easy_charts/2d_charts/ColumnChart2D/column_chart2D.gd similarity index 94% rename from addons/easy_charts/2DChart/ColumnChart2D/column_chart2D.gd rename to addons/easy_charts/2d_charts/ColumnChart2D/column_chart2D.gd index 45dd9d5..262e9e1 100644 --- a/addons/easy_charts/2DChart/ColumnChart2D/column_chart2D.gd +++ b/addons/easy_charts/2d_charts/ColumnChart2D/column_chart2D.gd @@ -27,7 +27,7 @@ func _get_children(): OutlinesTween = $OutlinesTween Functions = $Functions GridTween = $GridTween - PointData = $PointData/PointData + DataTooltip = $CanvasLayer/DataTooltip Outlines = $Outlines Grid = $Grid @@ -56,13 +56,13 @@ func load_font(): font_size = font.get_height() var theme : Theme = Theme.new() theme.set_default_font(font) - PointData.set_theme(theme) + DataTooltip.set_theme(theme) else: var lbl = Label.new() font = lbl.get_font("") lbl.free() if bold_font != null: - PointData.Data.set("custom_fonts/font",bold_font) + DataTooltip.Data.set("custom_fonts/font",bold_font) func _plot(source_ : String, delimiter_ : String, are_values_columns_ : bool, x_values_index_ : int): randomize() @@ -70,11 +70,11 @@ func _plot(source_ : String, delimiter_ : String, are_values_columns_ : bool, x_ clear() load_font() - PointData.hide() + DataTooltip.hide() - datas = read_datas(source_,delimiter_) + datas = read_data(source_,delimiter_) count_functions() - structure_datas(datas,are_values_columns_,x_values_index_) + structure_data(datas,are_values_columns_,x_values_index_) build_chart() calculate_pass() calculate_coordinates() @@ -90,14 +90,14 @@ func plot(): clear() load_font() - PointData.hide() + DataTooltip.hide() if source == "" or source == null: - ECECUtilities._print_message("Can't plot a chart without a Source file. Please, choose it in editor, or use the custom function _plot().",1) + ECUtilities._print_message("Can't plot a chart without a Source file. Please, choose it in editor, or use the custom function _plot().",1) return - datas = read_datas(source,delimiter) + datas = read_data(source,delimiter) count_functions() - structure_datas(datas,are_values_columns,x_values_index) + structure_data(datas,are_values_columns,x_values_index) build_chart() calculate_pass() calculate_coordinates() @@ -207,7 +207,7 @@ func construct_column(line : Line2D, f_index : int, function : Array): line.antialiased = true Functions.add_child(line,true) -func read_datas(source : String, delimiter : String): +func read_data(source : String, delimiter : String): var file : File = File.new() file.open(source,File.READ) var content : Array @@ -220,7 +220,7 @@ func read_datas(source : String, delimiter : String): content.erase(data) return content -func structure_datas(database : Array, are_values_columns : bool, x_values_index : int): +func structure_data(database : Array, are_values_columns : bool, x_values_index : int): # @x_values_index can be either a column or a row relative to x values # @y_values can be either a column or a row relative to y values self.are_values_columns = are_values_columns @@ -393,13 +393,13 @@ func redraw(): func show_data(point): - PointData.update_datas(point) - PointData.show() + DataTooltip.update_datas(point) + DataTooltip.show() func hide_data(): - PointData.hide() + DataTooltip.hide() -func clear_points(): +func clean_points(): function_colors.clear() if Functions.get_children(): for function in Functions.get_children(): @@ -448,7 +448,7 @@ func create_legend(): func apply_template(template_name : int): template = template_name - templates = ECECUtilities._load_templates() + templates = ECUtilities._load_templates() if template_name!=null: var custom_template = templates.get(templates.keys()[template_name]) function_colors = custom_template.function_colors as PoolColorArray diff --git a/addons/easy_charts/2DChart/ColumnChart2D/column_chart2D.tscn b/addons/easy_charts/2d_charts/ColumnChart2D/column_chart2D.tscn similarity index 77% rename from addons/easy_charts/2DChart/ColumnChart2D/column_chart2D.tscn rename to addons/easy_charts/2d_charts/ColumnChart2D/column_chart2D.tscn index b50955f..6993cd5 100644 --- a/addons/easy_charts/2DChart/ColumnChart2D/column_chart2D.tscn +++ b/addons/easy_charts/2d_charts/ColumnChart2D/column_chart2D.tscn @@ -1,12 +1,7 @@ [gd_scene load_steps=3 format=2] -[ext_resource path="res://addons/easy_charts/2DChart/ColumnChart2D/column_chart2D.gd" type="Script" id=1] -[ext_resource path="res://addons/easy_charts/Utilities/Point/point_data.tscn" type="PackedScene" id=2] - - - - - +[ext_resource path="res://addons/easy_charts/2d_charts/ColumnChart2D/column_chart2D.gd" type="Script" id=1] +[ext_resource path="res://addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.tscn" type="PackedScene" id=2] [node name="BarChart2D" type="Node2D"] script = ExtResource( 1 ) @@ -55,13 +50,19 @@ default_color = Color( 0.117647, 0.117647, 0.117647, 1 ) [node name="GridTween" type="Tween" parent="."] -[node name="PointData" parent="." instance=ExtResource( 2 )] +[node name="CanvasLayer" type="CanvasLayer" parent="."] -[node name="PointData" parent="PointData" index="0"] +[node name="PointData" parent="CanvasLayer" instance=ExtResource( 2 )] +margin_left = 269.278 +margin_top = 453.515 +margin_right = 289.278 +margin_bottom = 463.515 + +[node name="PointData" parent="CanvasLayer/PointData" index="0"] visible = false margin_left = 48.6217 margin_top = -122.631 margin_right = 48.4856 margin_bottom = -121.831 -[editable path="PointData"] +[editable path="CanvasLayer/PointData"] diff --git a/addons/easy_charts/2d_charts/LineChart2D/line_chart2D.gd b/addons/easy_charts/2d_charts/LineChart2D/line_chart2D.gd new file mode 100644 index 0000000..23d1b79 --- /dev/null +++ b/addons/easy_charts/2d_charts/LineChart2D/line_chart2D.gd @@ -0,0 +1,469 @@ +tool +extends Chart2D +class_name LineChart2D + +# [Linechart2D] - General purpose node for Line Charts +# A line chart or line plot or line graph or curve chart is a type of chart which +# displays information as a series of data points called 'markers' +# connected by straight line segments. +# It is a basic type of chart common in many fields. It is similar to a scatter plot +# except that the measurement points are ordered (typically by their x-axis value) +# and joined with straight line segments. +# A line chart is often used to visualize a trend in data over intervals of time – +# a time series – thus the line is often drawn chronologically. +# In these cases they are known as run charts. +# Source: Wikipedia + +func _point_plotted(): + pass + + +func _ready(): + _get_children() + + +func _set_size(size: Vector2): + SIZE = size + build_chart() + if Engine.editor_hint: + _get_children() + Outlines.set_point_position(0, Vector2(origin.x, 0)) + Outlines.set_point_position(1, Vector2(SIZE.x, 0)) + Outlines.set_point_position(2, Vector2(SIZE.x, origin.y)) + Outlines.set_point_position(3, origin) + Outlines.set_point_position(4, Vector2(origin.x, 0)) + + Grid.get_node("VLine").set_point_position(0, Vector2((OFFSET.x + SIZE.x) / 2,0)) + Grid.get_node("VLine").set_point_position(1, Vector2((OFFSET.x + SIZE.x) / 2, origin.y)) + Grid.get_node("HLine").set_point_position(0, Vector2(origin.x, origin.y / 2)) + Grid.get_node("HLine").set_point_position(1, Vector2(SIZE.x, origin.y / 2)) + + +func clear(): + Outlines.points = [] + Grid.get_node("HLine").queue_free() + Grid.get_node("VLine").queue_free() + + +func load_font(): + if font != null: + font_size = font.get_height() + var theme: Theme = Theme.new() + theme.set_default_font(font) + DataTooltip.set_theme(theme) + else: + var lbl = Label.new() + font = lbl.get_font("") + lbl.free() + if bold_font != null: + DataTooltip.Data.set("custom_fonts/font",bold_font) + + +func _plot(source: String, delimiter: String, are_values_columns: bool, x_values_index: int): + randomize() + + clear() + + load_font() + DataTooltip.hide() + + datas = read_data(source, delimiter) + count_functions() + structure_data(datas, are_values_columns, x_values_index) + build_chart() + calculate_pass() + calculate_coordinates() + calculate_colors() + draw_chart() + + create_legend() + emit_signal("chart_plotted", self) + + +func plot(): + randomize() + + clear() + + load_font() + DataTooltip.hide() + + if source == "" or source == null: + ECUtilities._print_message("Can't plot a chart without a Source file. Please, choose it in editor, or use the custom function _plot().", 1) + return + datas = read_data(source,delimiter) + count_functions() + structure_data(datas, are_values_columns, x_values_index) + build_chart() + calculate_pass() + calculate_coordinates() + calculate_colors() + draw_chart() + + create_legend() + emit_signal("chart_plotted", self) + + +func calculate_colors(): + if function_colors.empty() or function_colors.size() < functions: + for function in functions: + function_colors.append(Color("#1e1e1e")) + + +func draw_chart(): + draw_outlines() + draw_v_grid() + draw_h_grid() + draw_functions() + + +func draw_outlines(): + if boxed: + Outlines.set_default_color(box_color) + OutlinesTween.interpolate_method( + Outlines, + "add_point", + Vector2(origin.x, 0), + Vector2(SIZE.x, 0), + drawing_duration * 0.5, + Tween.TRANS_QUINT, + Tween.EASE_OUT) + OutlinesTween.start() + yield(OutlinesTween, "tween_all_completed") + OutlinesTween.interpolate_method( + Outlines, + "add_point", + Vector2(SIZE.x, 0), + Vector2(SIZE.x, origin.y), + drawing_duration * 0.5, + Tween.TRANS_QUINT, + Tween.EASE_OUT) + OutlinesTween.start() + yield(OutlinesTween, "tween_all_completed") + + OutlinesTween.interpolate_method( + Outlines, + "add_point", + Vector2(SIZE.x, origin.y), + origin, + drawing_duration * 0.5, + Tween.TRANS_QUINT, + Tween.EASE_OUT) + OutlinesTween.start() + yield(OutlinesTween, "tween_all_completed") + OutlinesTween.interpolate_method( + Outlines, + "add_point", + origin, + Vector2(origin.x, 0), + drawing_duration * 0.5, + Tween.TRANS_QUINT, + Tween.EASE_OUT) + OutlinesTween.start() + yield(OutlinesTween, "tween_all_completed") + + +func draw_v_grid(): + for p in x_chors.size(): + var point: Vector2 = origin + Vector2((p) * x_pass, 0) + var v_grid: Line2D = Line2D.new() + Grid.add_child(v_grid) + v_grid.set_width(1) + v_grid.set_default_color(v_lines_color) + add_label(point + Vector2(-const_width / 2 * x_chors[p].length(), font_size / 2), x_chors[p]) + GridTween.interpolate_method( + v_grid, + "add_point", + point, + point - Vector2(0, SIZE.y - OFFSET.y), + drawing_duration / (x_chors.size()), + Tween.TRANS_EXPO, + Tween.EASE_OUT) + GridTween.start() + yield(GridTween, "tween_all_completed") + + +func draw_h_grid(): + for p in y_chors.size(): + var point: Vector2 = origin - Vector2(0, p * y_pass) + var h_grid: Line2D = Line2D.new() + Grid.add_child(h_grid) + h_grid.set_width(1) + h_grid.set_default_color(h_lines_color) + add_label(point - Vector2(y_chors[p].length() * const_width + font_size, font_size / 2), y_chors[p]) + GridTween.interpolate_method( + h_grid, + "add_point", + point, + Vector2(SIZE.x, point.y), + drawing_duration / (y_chors.size()), + Tween.TRANS_EXPO, + Tween.EASE_OUT) + GridTween.start() + yield(GridTween, "tween_all_completed") + + +func add_label(point: Vector2, text: String): + var lbl: Label = Label.new() + if font != null: + lbl.set("custom_fonts/font", font) + lbl.set("custom_colors/font_color", font_color) + Grid.add_child(lbl) + lbl.rect_position = point + lbl.set_text(text) + + +func draw_functions(): + for function in point_positions.size(): + draw_function(function, point_positions[function]) + + +func draw_function(f_index: int, function: Array): + var line: Line2D = Line2D.new() + var backline: Line2D = Line2D.new() + construct_line(line, backline, f_index, function) + var pointv: Point + for point in function.size(): + pointv = point_node.instance() + Functions.add_child(pointv) + pointv.connect("_mouse_entered", self, "show_data") + pointv.connect("_mouse_exited", self, "hide_data") + pointv.connect("_point_pressed", self, "point_pressed") + pointv.create_point( + point_shape, + function_colors[f_index], + Color.white, function[point], + pointv.format_value(point_values[f_index][point], false, false), + y_labels[point if invert_chart else f_index] as String) + if point < function.size() - 1: + FunctionsTween.interpolate_method( + line, + "add_point", + function[point], + function[point + 1], + drawing_duration / function.size(), + Tween.TRANS_QUINT, + Tween.EASE_OUT) + FunctionsTween.start() + yield(FunctionsTween, "tween_all_completed") + + +func construct_line(line: Line2D, backline: Line2D, f_index: int, function: Array): + var midtone = Color( + Color(function_colors[f_index]).r, + Color(function_colors[f_index]).g, + Color(function_colors[f_index]).b, + Color(function_colors[f_index]).a / 2) + backline.set_width(3) + backline.set_default_color(midtone) + backline.antialiased = true + Functions.add_child(backline) + line.set_width(2) + line.set_default_color(function_colors[f_index]) + line.antialiased = true + Functions.add_child(line) + + +func read_data(source: String, delimiter: String): + var file: File = File.new() + file.open(source, File.READ) + var content: Array + while not file.eof_reached(): + var line: PoolStringArray = file.get_csv_line(delimiter) + content.append(line) + file.close() + for data in content: + if data.size() < 2: + content.erase(data) + return content + + +func structure_data(database: Array, are_values_columns: bool, x_values_index: int): + # @x_values_index can be either a column or a row relative to x values + # @y_values can be either a column or a row relative to y values + self.are_values_columns = are_values_columns + match are_values_columns: + true: + for row in database.size(): + var t_vals: Array + for column in database[row].size(): + if column == x_values_index: + var x_data = database[row][column] + if x_data.is_valid_float() or x_data.is_valid_integer(): + x_datas.append(x_data as float) + else: + x_datas.append(x_data.replace(",", ".") as float) + else: + if row != 0: + var y_data = database[row][column] + if y_data.is_valid_float() or y_data.is_valid_integer(): + t_vals.append(y_data as float) + else: + t_vals.append(y_data.replace(",", ".") as float) + else: + y_labels.append(str(database[row][column])) + if not t_vals.empty(): + y_datas.append(t_vals) + x_label = str(x_datas.pop_front()) + false: + for row in database.size(): + if row == x_values_index: + x_datas = (database[row]) + x_label = x_datas.pop_front() as String + else: + var values = database[row] as Array + y_labels.append(values.pop_front() as String) + y_datas.append(values) + for data in y_datas: + for value in data.size(): + data[value] = data[value] as float + + # draw y labels + var to_order: Array + var to_order_min: Array + for cluster in y_datas.size(): + # define x_chors and y_chors + var ordered_cluster = y_datas[cluster] as Array + ordered_cluster.sort() + ordered_cluster = PoolIntArray(ordered_cluster) + var margin_max = ordered_cluster[ordered_cluster.size() - 1] + var margin_min = ordered_cluster[0] + to_order.append(margin_max) + to_order_min.append(margin_min) + + to_order.sort() + to_order_min.sort() + var margin = to_order.pop_back() + if not origin_at_zero: + y_margin_min = to_order_min.pop_front() + v_dist = y_decim * pow(10.0,str(margin).length() - 2) + var multi = 0 + var p = (v_dist * multi) + (y_margin_min if not origin_at_zero else 0) + y_chors.append(p as String) + while p < margin: + multi+=1 + p = (v_dist * multi) + (y_margin_min if not origin_at_zero else 0) + y_chors.append(p as String) + + # draw x_labels + if not show_x_values_as_labels: + to_order.clear() + to_order = x_datas as PoolIntArray + + to_order.sort() + margin = to_order.pop_back() + if not origin_at_zero: + x_margin_min = to_order.pop_front() + h_dist = x_decim * pow(10.0, str(margin).length() - 2) + multi = 0 + p = (h_dist * multi) + (x_margin_min if not origin_at_zero else 0) + x_labels.append(p as String) + while p < margin: + multi += 1 + p = (h_dist * multi) + (x_margin_min if not origin_at_zero else 0) + x_labels.append(p as String) + + +func build_chart(): + origin = Vector2(OFFSET.x, SIZE.y - OFFSET.y) + + +func calculate_pass(): + if invert_chart: + x_chors = y_labels as PoolStringArray + else: + if show_x_values_as_labels: + x_chors = x_datas as PoolStringArray + else: + x_chors = x_labels + + # calculate distance in pixel between 2 consecutive values/datas + x_pass = (SIZE.x - OFFSET.x) / (x_chors.size() - 1) + y_pass = origin.y / (y_chors.size() - 1) + + +func calculate_coordinates(): + x_coordinates.clear() + y_coordinates.clear() + point_values.clear() + point_positions.clear() + + if invert_chart: + for column in y_datas[0].size(): + var single_coordinates: Array + for row in y_datas: + if origin_at_zero: + single_coordinates.append((row[column] * y_pass) / v_dist) + else: + single_coordinates.append((row[column] - y_margin_min) * y_pass / v_dist) + y_coordinates.append(single_coordinates) + else: + for cluster in y_datas: + var single_coordinates: Array + for value in cluster.size(): + if origin_at_zero: + single_coordinates.append((cluster[value] * y_pass) / v_dist) + else: + single_coordinates.append((cluster[value] - y_margin_min) * y_pass / v_dist) + y_coordinates.append(single_coordinates) + + if show_x_values_as_labels: + for x in x_datas.size(): + x_coordinates.append(x_pass * x) + else: + for x in x_datas.size(): + if origin_at_zero: + if invert_chart: + x_coordinates.append(x_pass * x) + else: + x_coordinates.append(x_datas[x] * x_pass / h_dist) + else: + x_coordinates.append((x_datas[x] - x_margin_min) * x_pass / h_dist) + + for f in functions: + point_values.append([]) + point_positions.append([]) + + if invert_chart: + for function in y_coordinates.size(): + for function_value in y_coordinates[function].size(): + if are_values_columns: + point_positions[function_value].append(Vector2( + x_coordinates[function] + origin.x, + origin.y - y_coordinates[function][function_value])) + point_values[function_value].append( + [x_datas[function_value], y_datas[function_value][function]]) + else: + point_positions[function].append(Vector2( + x_coordinates[function_value] + origin.x, + origin.y - y_coordinates[function][function_value])) + point_values[function].append( + [x_datas[function_value], y_datas[function_value][function]]) + else: + for cluster in y_coordinates.size(): + for y in y_coordinates[cluster].size(): + if are_values_columns: + point_values[y].append([x_datas[cluster],y_datas[cluster][y]]) + point_positions[y].append(Vector2( + x_coordinates[cluster] + origin.x, + origin.y - y_coordinates[cluster][y])) + else: + point_values[cluster].append([x_datas[y],y_datas[cluster][y]]) + point_positions[cluster].append(Vector2( + x_coordinates[y] + origin.x, + origin.y - y_coordinates[cluster][y])) + + +func invert_chart(): + invert_chart = !invert_chart + count_functions() + redraw() + create_legend() + +func _enter_tree(): + _ready() + + +# Signal Repeaters +func point_pressed(point: Point) -> Point: + return point diff --git a/addons/easy_charts/2DChart/LineChart2D/line_chart2D.tscn b/addons/easy_charts/2d_charts/LineChart2D/line_chart2D.tscn similarity index 78% rename from addons/easy_charts/2DChart/LineChart2D/line_chart2D.tscn rename to addons/easy_charts/2d_charts/LineChart2D/line_chart2D.tscn index 95949e7..b3ef8a7 100644 --- a/addons/easy_charts/2DChart/LineChart2D/line_chart2D.tscn +++ b/addons/easy_charts/2d_charts/LineChart2D/line_chart2D.tscn @@ -1,10 +1,7 @@ [gd_scene load_steps=3 format=2] -[ext_resource path="res://addons/easy_charts/2DChart/LineChart2D/line_chart2D.gd" type="Script" id=1] -[ext_resource path="res://addons/easy_charts/Utilities/Point/point_data.tscn" type="PackedScene" id=2] - - - +[ext_resource path="res://addons/easy_charts/2d_charts/LineChart2D/line_chart2D.gd" type="Script" id=1] +[ext_resource path="res://addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.tscn" type="PackedScene" id=2] [node name="LineChart2D" type="Node2D"] @@ -55,13 +52,19 @@ default_color = Color( 0.117647, 0.117647, 0.117647, 1 ) [node name="GridTween" type="Tween" parent="."] -[node name="PointData" parent="." instance=ExtResource( 2 )] +[node name="CanvasLayer" type="CanvasLayer" parent="."] -[node name="PointData" parent="PointData" index="0"] +[node name="DataTooltip" parent="CanvasLayer" instance=ExtResource( 2 )] +margin_left = 286.115 +margin_top = 462.494 +margin_right = 306.114 +margin_bottom = 472.494 + +[node name="PointData" parent="CanvasLayer/DataTooltip" index="0"] visible = false margin_left = 52.8643 margin_top = -115.56 margin_right = 52.7283 margin_bottom = -114.76 -[editable path="PointData"] +[editable path="CanvasLayer/DataTooltip"] diff --git a/addons/easy_charts/2d_charts/ScatterChart2D/scatter_chart2D.gd b/addons/easy_charts/2d_charts/ScatterChart2D/scatter_chart2D.gd new file mode 100644 index 0000000..c1c66b6 --- /dev/null +++ b/addons/easy_charts/2d_charts/ScatterChart2D/scatter_chart2D.gd @@ -0,0 +1,448 @@ +tool +extends Chart2D +class_name ScatterChart2D + +""" +[ScatterChart2D] - General purpose node for Scatter Charts + +A scatter plot (also called a scatterplot, scatter graph, scatter chart, scattergram, or scatter diagram) +is a type of plot or mathematical diagram using Cartesian coordinates to display values for typically two variables +for a set of data. If the points are coded (color/shape/size), one additional variable can be displayed. +The data are displayed as a collection of points, each having the value of one variable determining the position on +the horizontal axis and the value of the other variable determining the position on the vertical axis. + +/ source : Wikipedia / +""" + +func _point_plotted(): + pass + +func _ready(): + _get_children() + +func _get_children(): + OutlinesTween = $OutlinesTween + PointTween = $PointTween + Functions = $Functions + GridTween = $GridTween + DataTooltip = $CanvasLayer/DataTooltip + Outlines = $Outlines + Grid = $Grid + +func _set_size(size : Vector2): + SIZE = size + build_chart() + if Engine.editor_hint: + _get_children() + Outlines.set_point_position(0,Vector2(origin.x,0)) + Outlines.set_point_position(1,Vector2(SIZE.x,0)) + Outlines.set_point_position(2,Vector2(SIZE.x,origin.y)) + Outlines.set_point_position(3,origin) + Outlines.set_point_position(4,Vector2(origin.x,0)) + + Grid.get_node("VLine").set_point_position(0,Vector2((OFFSET.x+SIZE.x)/2,0)) + Grid.get_node("VLine").set_point_position(1,Vector2((OFFSET.x+SIZE.x)/2,origin.y)) + Grid.get_node("HLine").set_point_position(0,Vector2(origin.x,origin.y/2)) + Grid.get_node("HLine").set_point_position(1,Vector2(SIZE.x,origin.y/2)) + +func clear(): + Outlines.points = [] + Grid.get_node("HLine").queue_free() + Grid.get_node("VLine").queue_free() + +func load_font(): + if font != null: + font_size = font.get_height() + var theme : Theme = Theme.new() + theme.set_default_font(font) + DataTooltip.set_theme(theme) + else: + var lbl = Label.new() + font = lbl.get_font("") + lbl.free() + if bold_font != null: + DataTooltip.Data.set("custom_fonts/font",bold_font) + +func _plot(source_ : String, delimiter_ : String, are_values_columns_ : bool, x_values_index_ : int): + randomize() + + clear() + + load_font() + DataTooltip.hide() + + datas = read_data(source_,delimiter_) + count_functions() + structure_data(datas,are_values_columns_,x_values_index_) + build_chart() + calculate_pass() + calculate_coordinates() + calculate_colors() + draw_chart() + + create_legend() + emit_signal("chart_plotted", self) + +func plot(): + randomize() + + clear() + + load_font() + DataTooltip.hide() + + if source == "" or source == null: + ECUtilities._print_message("Can't plot a chart without a Source file. Please, choose it in editor, or use the custom function _plot().",1) + return + datas = read_data(source,delimiter) + count_functions() + structure_data(datas,are_values_columns,x_values_index) + build_chart() + calculate_pass() + calculate_coordinates() + calculate_colors() + draw_chart() + + create_legend() + emit_signal("chart_plotted", self) + +func calculate_colors(): + if function_colors.empty() or function_colors.size() < functions: + for function in functions: + function_colors.append(Color("#1e1e1e") as Color) + +func draw_chart(): + draw_outlines() + draw_v_grid() + draw_h_grid() + draw_functions() + +func draw_outlines(): + if boxed: + Outlines.set_default_color(box_color) + OutlinesTween.interpolate_method(Outlines,"add_point", + Vector2(origin.x,0),Vector2(SIZE.x,0),drawing_duration*0.5,Tween.TRANS_QUINT,Tween.EASE_OUT) + OutlinesTween.start() + yield(OutlinesTween,"tween_all_completed") + OutlinesTween.interpolate_method(Outlines,"add_point", + Vector2(SIZE.x,0),Vector2(SIZE.x,origin.y),drawing_duration*0.5,Tween.TRANS_QUINT,Tween.EASE_OUT) + OutlinesTween.start() + yield(OutlinesTween,"tween_all_completed") + OutlinesTween.interpolate_method(Outlines,"add_point", + Vector2(SIZE.x,origin.y),origin,drawing_duration*0.5,Tween.TRANS_QUINT,Tween.EASE_OUT) + OutlinesTween.start() + yield(OutlinesTween,"tween_all_completed") + OutlinesTween.interpolate_method(Outlines,"add_point", + origin,Vector2(origin.x,0),drawing_duration*0.5,Tween.TRANS_QUINT,Tween.EASE_OUT) + OutlinesTween.start() + yield(OutlinesTween,"tween_all_completed") + +func draw_v_grid(): + for p in x_chors.size(): + var point : Vector2 = origin+Vector2((p)*x_pass,0) + var v_grid : Line2D = Line2D.new() + Grid.add_child(v_grid) + v_grid.set_width(1) + v_grid.set_default_color(v_lines_color) + add_label(point+Vector2(-const_width/2*x_chors[p].length(),font_size/2), x_chors[p]) + GridTween.interpolate_method(v_grid,"add_point",point,point-Vector2(0,SIZE.y-OFFSET.y),drawing_duration/(x_chors.size()),Tween.TRANS_EXPO,Tween.EASE_OUT) + GridTween.start() + yield(GridTween,"tween_all_completed") + +func draw_h_grid(): + for p in y_chors.size(): + var point : Vector2 = origin-Vector2(0,(p)*y_pass) + var h_grid : Line2D = Line2D.new() + Grid.add_child(h_grid) + h_grid.set_width(1) + h_grid.set_default_color(h_lines_color) + add_label(point-Vector2(y_chors[p].length()*const_width+font_size,font_size/2), y_chors[p]) + GridTween.interpolate_method(h_grid,"add_point",point,Vector2(SIZE.x,point.y),drawing_duration/(y_chors.size()),Tween.TRANS_EXPO,Tween.EASE_OUT) + GridTween.start() + yield(GridTween,"tween_all_completed") + + +func add_label(point : Vector2, text : String): + var lbl : Label = Label.new() + if font != null: + lbl.set("custom_fonts/font",font) + lbl.set("custom_colors/font_color",font_color) + Grid.add_child(lbl) + lbl.rect_position = point + lbl.set_text(text) + +func draw_functions(): + for function in point_positions.size(): + draw_function(function,point_positions[function]) + +func draw_function(f_index : int, function : Array): + var pointv : Point + for point in function.size(): + pointv = point_node.instance() + Functions.add_child(pointv) + pointv.connect("_mouse_entered",self,"show_data") + pointv.connect("_mouse_exited",self,"hide_data") + pointv.connect("_point_pressed",self,"point_pressed") + pointv.create_point(point_shape, function_colors[f_index], Color.white, function[point], + pointv.format_value(point_values[f_index][point],false,false), + y_labels[point if invert_chart else f_index] as String) + yield(get_tree().create_timer(drawing_duration/function.size()), "timeout") + + +func read_data(source : String, delimiter : String): + var file : File = File.new() + file.open(source,File.READ) + var content : Array + while not file.eof_reached(): + var line : PoolStringArray = file.get_csv_line(delimiter) + content.append(line) + file.close() + for data in content: + if data.size() < 2: + content.erase(data) + return content + +func structure_data(database : Array, are_values_columns : bool, x_values_index : int): + # @x_values_index can be either a column or a row relative to x values + # @y_values can be either a column or a row relative to y values + self.are_values_columns = are_values_columns + match are_values_columns: + true: + for row in database.size(): + var t_vals : Array + for column in database[row].size(): + if column == x_values_index: + var x_data = database[row][column] + if x_data.is_valid_float() or x_data.is_valid_integer(): + x_datas.append(x_data as float) + else: + x_datas.append(x_data.replace(",",".") as float) + else: + if row != 0: + var y_data = database[row][column] + if y_data.is_valid_float() or y_data.is_valid_integer(): + t_vals.append(y_data as float) + else: + t_vals.append(y_data.replace(",",".") as float) + else: + y_labels.append(str(database[row][column])) + if not t_vals.empty(): + y_datas.append(t_vals) + x_label = str(x_datas.pop_front()) + false: + for row in database.size(): + if row == x_values_index: + x_datas = (database[row]) + x_label = x_datas.pop_front() as String + else: + var values = database[row] as Array + y_labels.append(values.pop_front() as String) + y_datas.append(values) + for data in y_datas: + for value in data.size(): + data[value] = data[value] as float + + # draw y labels + var to_order : Array + var to_order_min : Array + for cluster in y_datas.size(): + # define x_chors and y_chors + var ordered_cluster = y_datas[cluster] as Array + ordered_cluster.sort() + ordered_cluster = PoolIntArray(ordered_cluster) + var margin_max = ordered_cluster[ordered_cluster.size()-1] + var margin_min = ordered_cluster[0] + to_order.append(margin_max) + to_order_min.append(margin_min) + + to_order.sort() + to_order_min.sort() + var margin = to_order.pop_back() + if not origin_at_zero: + y_margin_min = to_order_min.pop_front() + v_dist = y_decim * pow(10.0,str(margin).length()-2) + var multi = 0 + var p = (v_dist*multi) + ((y_margin_min) if not origin_at_zero else 0) + y_chors.append(p as String) + while p < margin: + multi+=1 + p = (v_dist*multi) + ((y_margin_min) if not origin_at_zero else 0) + y_chors.append(p as String) + + # draw x_labels + if not show_x_values_as_labels: + to_order.clear() + to_order = x_datas as PoolIntArray + + to_order.sort() + margin = to_order.pop_back() + if not origin_at_zero: + x_margin_min = to_order.pop_front() + h_dist = x_decim * pow(10.0,str(margin).length()-2) + multi = 0 + p = (h_dist*multi) + ((x_margin_min) if not origin_at_zero else 0) + x_labels.append(p as String) + while p < margin: + multi+=1 + p = (h_dist*multi) + ((x_margin_min) if not origin_at_zero else 0) + x_labels.append(p as String) + +func build_chart(): + origin = Vector2(OFFSET.x,SIZE.y-OFFSET.y) + +func calculate_pass(): + if invert_chart: + x_chors = y_labels as PoolStringArray + else: + if show_x_values_as_labels: + x_chors = x_datas as PoolStringArray + else: + x_chors = x_labels + + # calculate distance in pixel between 2 consecutive values/datas + x_pass = (SIZE.x - OFFSET.x) / (x_chors.size()-1) + y_pass = origin.y / (y_chors.size()-1) + +func calculate_coordinates(): + x_coordinates.clear() + y_coordinates.clear() + point_values.clear() + point_positions.clear() + + if invert_chart: + for column in y_datas[0].size(): + var single_coordinates : Array + for row in y_datas: + if origin_at_zero: + single_coordinates.append((row[column]*y_pass)/v_dist) + else: + single_coordinates.append((row[column] - y_margin_min)*y_pass/v_dist) + y_coordinates.append(single_coordinates) + else: + for cluster in y_datas: + var single_coordinates : Array + for value in cluster.size(): + if origin_at_zero: + single_coordinates.append((cluster[value]*y_pass)/v_dist) + else: + single_coordinates.append((cluster[value] - y_margin_min)*y_pass/v_dist) + y_coordinates.append(single_coordinates) + + if show_x_values_as_labels: + for x in x_datas.size(): + x_coordinates.append(x_pass*x) + else: + for x in x_datas.size(): + if origin_at_zero: + if invert_chart: + x_coordinates.append(x_pass*x) + else: + x_coordinates.append(x_datas[x]*x_pass/h_dist) + else: + x_coordinates.append((x_datas[x] - x_margin_min)*x_pass/h_dist) + + for f in functions: + point_values.append([]) + point_positions.append([]) + + if invert_chart: + for function in y_coordinates.size(): + for function_value in y_coordinates[function].size(): + if are_values_columns: + point_positions[function_value].append(Vector2(x_coordinates[function]+origin.x, origin.y-y_coordinates[function][function_value])) + point_values[function_value].append([x_datas[function_value],y_datas[function_value][function]]) + else: + point_positions[function].append(Vector2(x_coordinates[function_value]+origin.x,origin.y-y_coordinates[function][function_value])) + point_values[function].append([x_datas[function_value],y_datas[function_value][function]]) + else: + for cluster in y_coordinates.size(): + for y in y_coordinates[cluster].size(): + if are_values_columns: + point_values[y].append([x_datas[cluster],y_datas[cluster][y]]) + point_positions[y].append(Vector2(x_coordinates[cluster]+origin.x,origin.y-y_coordinates[cluster][y])) + else: + point_values[cluster].append([x_datas[y],y_datas[cluster][y]]) + point_positions[cluster].append(Vector2(x_coordinates[y]+origin.x,origin.y-y_coordinates[cluster][y])) + +func redraw(): + build_chart() + calculate_pass() + calculate_coordinates() + update() + + +func show_data(point): + DataTooltip.update_datas(point) + DataTooltip.show() + +func hide_data(): + DataTooltip.hide() + +func clean_points(): + function_colors.clear() + if Functions.get_children(): + for function in Functions.get_children(): + function.queue_free() + +func set_legend(l : Array): + legend = l + +func get_legend(): + return legend + +func invert_chart(): + invert_chart = !invert_chart + count_functions() + redraw() + create_legend() + +func count_functions(): + if are_values_columns: + if not invert_chart: + functions = datas[0].size()-1 + else: + functions = datas.size()-1 + else: + if invert_chart: + functions = datas[0].size()-1 + else: + functions = datas.size()-1 + +func create_legend(): + legend.clear() + for function in functions: + var function_legend = FunctionLegend.instance() + var f_name : String + if invert_chart: + f_name = x_datas[function] as String + else: + f_name = y_labels[function] + var legend_font : Font + if font != null: + legend_font = font + if bold_font != null: + legend_font = bold_font + function_legend.create_legend(f_name,function_colors[function],bold_font,font_color) + legend.append(function_legend) + +func apply_template(template_name : int): + template = template_name + templates = ECUtilities._load_templates() + if template_name!=null: + var custom_template = templates.get(templates.keys()[template_name]) + function_colors = custom_template.function_colors as PoolColorArray + v_lines_color = Color(custom_template.v_lines_color) + h_lines_color = Color(custom_template.h_lines_color) + box_color = Color(custom_template.outline_color) + font_color = Color(custom_template.font_color) + property_list_changed_notify() + + if Engine.editor_hint: + _get_children() + Outlines.set_default_color(box_color) + Grid.get_node("VLine").set_default_color(v_lines_color) + Grid.get_node("HLine").set_default_color(h_lines_color) + + +func _enter_tree(): + _ready() diff --git a/addons/easy_charts/2DChart/ScatterChart2D/scatter_chart2D.tscn b/addons/easy_charts/2d_charts/ScatterChart2D/scatter_chart2D.tscn similarity index 72% rename from addons/easy_charts/2DChart/ScatterChart2D/scatter_chart2D.tscn rename to addons/easy_charts/2d_charts/ScatterChart2D/scatter_chart2D.tscn index 2ad509f..97a2105 100644 --- a/addons/easy_charts/2DChart/ScatterChart2D/scatter_chart2D.tscn +++ b/addons/easy_charts/2d_charts/ScatterChart2D/scatter_chart2D.tscn @@ -1,9 +1,14 @@ [gd_scene load_steps=3 format=2] +<<<<<<<< HEAD:addons/easy_charts/2DChart/ScatterChart2D/scatter_chart2D.tscn [ext_resource path="res://addons/easy_charts/2DChart/ScatterChart2D/scatter_chart2D.gd" type="Script" id=1] [ext_resource path="res://addons/easy_charts/Utilities/Point/point_data.tscn" type="PackedScene" id=2] +======== +[ext_resource path="res://addons/easy_charts/2d_charts/ScatterChart2D/scatter_chart2D.gd" type="Script" id=1] +[ext_resource path="res://addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.tscn" type="PackedScene" id=2] +>>>>>>>> dev:addons/easy_charts/2d_charts/ScatterChart2D/scatter_chart2D.tscn [node name="ScatterChart2D" type="Node2D"] @@ -45,13 +50,19 @@ default_color = Color( 0.117647, 0.117647, 0.117647, 1 ) [node name="PointTween" type="Tween" parent="."] -[node name="PointData" parent="." instance=ExtResource( 2 )] +[node name="CanvasLayer" type="CanvasLayer" parent="."] -[node name="PointData" parent="PointData" index="0"] +[node name="PointData" parent="CanvasLayer" instance=ExtResource( 2 )] +margin_left = -172.972 +margin_top = -46.9003 +margin_right = -152.972 +margin_bottom = -36.9003 + +[node name="PointData" parent="CanvasLayer/PointData" index="0"] visible = false margin_left = 71.2491 margin_top = -146.673 margin_right = 71.1131 margin_bottom = -145.873 -[editable path="PointData"] +[editable path="CanvasLayer/PointData"] diff --git a/addons/easy_charts/3DChart/ScatterChart3D/scatter_chart3D.gd b/addons/easy_charts/3DChart/ScatterChart3D/scatter_chart3D.gd deleted file mode 100644 index f72e718..0000000 --- a/addons/easy_charts/3DChart/ScatterChart3D/scatter_chart3D.gd +++ /dev/null @@ -1,309 +0,0 @@ -tool -extends Spatial -class_name ScatterChart3D - -""" -[ScatterChart] - General purpose node for Scatter Charts - -A scatter plot (also called a scatterplot, scatter graph, scatter chart, scattergram, or scatter diagram) - is a type of plot or mathematical diagram using Cartesian coordinates to display values for typically two variables -for a set of data. If the points are coded (color/shape/size), one additional variable can be displayed. -The data are displayed as a collection of points, each having the value of one variable determining the position on -the horizontal axis and the value of the other variable determining the position on the vertical axis. - -/ source : Wikipedia / -""" - -onready var PlaceholderPoint = $Chart/Point -onready var Space = $ImmediateGeometry -onready var PointData = $PointData/PointData - -var point_node : PackedScene = preload("../Utilities/Point/Point.tscn") -var FunctionLegend : PackedScene = preload("../Utilities/Legend/function_legend.tscn") - -var font_size : float = 16 -var const_height : float = font_size/2*font_size/20 -var const_width : float = font_size/2 - -var OFFSET : Vector2 = Vector2(0,0) - -#-------------------------------------------------------------------------# -var origin : Vector2 - -# actual distance between x and y values -var x_pass : float -var y_pass : float - -# vertical distance between y consecutive points used for intervals -var v_dist : float -var h_dist : float - -# quantization, representing the interval in which values will be displayed - -# define values on x an y axis -var x_chors : Array -var y_chors : Array - -# actual coordinates of points (in pixel) -var x_coordinates : Array -var y_coordinates : Array - -# datas contained in file -var datas : Array - -# amount of functions to represent -var functions : int = 0 - -var x_label : String -var z_label : String - -# database values -var x_datas : Array -var z_datas : Array -var y_datas : Array - -# labels displayed on chart -var x_labels : Array -var y_labels : Array - -var x_margin_min : int = 0 -var y_margin_min : int = 0 - -# actual values of point, from the database -var point_values : Array - -# actual position of points in pixel -var point_positions : Array - -var legend : Array setget set_legend,get_legend - -# --------------------- -export (Vector2) var SIZE : Vector2 = Vector2() setget _set_size -export (String, FILE, "*.txt, *.csv") var source : String = "" -export (String) var delimiter : String = ";" -export (bool) var origin_at_zero : bool = true - -export (bool) var are_values_columns : bool = false -export (int,0,100) var x_values_index : int = 0 -export (int,0,100) var z_values_index : int = 0 -export(bool) var show_x_values_as_labels : bool = true - -#export (float,1,20,0.5) var column_width : float = 10 -#export (float,0,10,0.5) var column_gap : float = 2 - -export (float,0.1,10.0) var x_decim : float = 5.0 -export (float,0.1,10.0) var y_decim : float = 5.0 -export (int,"Dot,Triangle,Square") var point_shape : int = 0 -export (PoolColorArray) var function_colors = [Color("#1e1e1e")] -export (Color) var v_lines_color : Color = Color("#cacaca") -export (Color) var h_lines_color : Color = Color("#cacaca") - -export (bool) var boxed : bool = true -export (Color) var box_color : Color = Color("#1e1e1e") -export (Font) var font : Font -export (Font) var bold_font : Font -export (Color) var font_color : Color = Color("#1e1e1e") -export (String,"Default","Clean","Gradient","Minimal","Invert") var template : String = "Default" setget apply_template -export (float,0.1,1) var drawing_duration : float = 0.5 -export (bool) var invert_chart : bool = false - -var templates : Dictionary = {} - -signal chart_plotted(chart) -signal point_pressed(point) - -func _point_plotted(): - pass - -func _ready(): - pass - -func _set_size(size : Vector2): - SIZE = size -# build_chart() - -func clear(): - pass - -func load_font(): - if font != null: - font_size = font.get_height() - var theme : Theme = Theme.new() - theme.set_default_font(font) - PointData.set_theme(theme) - else: - var lbl = Label.new() - font = lbl.get_font("") - lbl.free() - if bold_font != null: - PointData.Data.set("custom_fonts/font",bold_font) - -func _plot(source_ : String, delimiter_ : String, are_values_columns_ : bool, x_values_index_ : int): - randomize() - - clear() - - load_font() - PointData.hide() - - datas = read_datas(source_,delimiter_) -# count_functions() - structure_datas(datas,are_values_columns_,x_values_index_) -# build_chart() -# calculate_pass() -# calculate_coordinates() -# calculate_colors() -# draw_chart() -# -# create_legend() - emit_signal("chart_plotted", self) - -func plot(): - randomize() - - clear() - - load_font() - PointData.hide() - - if source == "" or source == null: - ECUtilities._print_message("Can't plot a chart without a Source file. Please, choose it in editor, or use the custom function _plot().",1) - return - datas = read_datas(source,delimiter) -# count_functions() - structure_datas(datas,are_values_columns,x_values_index) -# build_chart() -# calculate_pass() -# calculate_coordinates() -# calculate_colors() -# draw_chart() - -# create_legend() - emit_signal("chart_plotted", self) - - -func read_datas(source : String, delimiter : String): - var file : File = File.new() - file.open(source,File.READ) - var content : Array - while not file.eof_reached(): - var line : PoolStringArray = file.get_csv_line(delimiter) - content.append(line) - file.close() - for data in content: - if data.size() < 2: - content.erase(data) - return content - -func structure_datas(database : Array, are_values_columns : bool, x_values_index : int): - # @x_values_index can be either a column or a row relative to x values - # @y_values can be either a column or a row relative to y values - self.are_values_columns = are_values_columns - match are_values_columns: - true: - for row in database.size(): - var t_vals : Array - for column in database[row].size(): - if column == x_values_index: - var x_data = database[row][column] - if x_data.is_valid_float() or x_data.is_valid_integer(): - x_datas.append(x_data as float) - else: - x_datas.append(x_data.replace(",",".") as float) - elif column == z_values_index: - var z_data = database[row][column] - if z_data.is_valid_float() or z_data.is_valid_integer(): - z_datas.append(z_data as float) - else: - z_datas.append(z_data.replace(",",".") as float) - else: - if row != 0: - var y_data = database[row][column] - if y_data.is_valid_float() or y_data.is_valid_integer(): - t_vals.append(y_data as float) - else: - t_vals.append(y_data.replace(",",".") as float) - else: - y_labels.append(str(database[row][column])) - if not t_vals.empty(): - y_datas.append(t_vals) - x_label = str(x_datas.pop_front()) - z_label = str(z_datas.pop_front()) - false: - for row in database.size(): - if row == x_values_index: - x_datas = (database[row]) - x_label = x_datas.pop_front() as String - else: - var values = database[row] as Array - y_labels.append(values.pop_front() as String) - y_datas.append(values) - for data in y_datas: - for value in data.size(): - data[value] = data[value] as float - - # draw y labels - var to_order : Array - var to_order_min : Array - for cluster in y_datas.size(): - # define x_chors and y_chors - var ordered_cluster = y_datas[cluster] as Array - ordered_cluster.sort() - ordered_cluster = PoolIntArray(ordered_cluster) - var margin_max = ordered_cluster[ordered_cluster.size()-1] - var margin_min = ordered_cluster[0] - to_order.append(margin_max) - to_order_min.append(margin_min) - - to_order.sort() - to_order_min.sort() - var margin = to_order.pop_back() - if not origin_at_zero: - y_margin_min = to_order_min.pop_front() - v_dist = y_decim * pow(10.0,str(margin).length()-2) - var multi = 0 - var p = (v_dist*multi) + ((y_margin_min) if not origin_at_zero else 0) - y_chors.append(p as String) - while p < margin: - multi+=1 - p = (v_dist*multi) + ((y_margin_min) if not origin_at_zero else 0) - y_chors.append(p as String) - - # draw x_labels - if not show_x_values_as_labels: - to_order.clear() - to_order = x_datas as PoolIntArray - - to_order.sort() - margin = to_order.pop_back() - if not origin_at_zero: - x_margin_min = to_order.pop_front() - h_dist = x_decim * pow(10.0,str(margin).length()-2) - multi = 0 - p = (h_dist*multi) + ((x_margin_min) if not origin_at_zero else 0) - x_labels.append(p as String) - while p < margin: - multi+=1 - p = (h_dist*multi) + ((x_margin_min) if not origin_at_zero else 0) - x_labels.append(p as String) - -func set_legend(l : Array): - legend = l - -func get_legend(): - return legend - -func apply_template(template_name : String): - template = template_name - templates = ECUtilities._load_templates() - if template_name!=null and template_name!="": - var custom_template = templates[template.to_lower()] - function_colors = custom_template.function_colors - v_lines_color = Color(custom_template.v_lines_color) - h_lines_color = Color(custom_template.h_lines_color) - box_color = Color(custom_template.outline_color) - font_color = Color(custom_template.font_color) - property_list_changed_notify() - -func _enter_tree(): - _ready() diff --git a/addons/easy_charts/3d_charts/ScatterChart3D/scatter_chart3D.gd b/addons/easy_charts/3d_charts/ScatterChart3D/scatter_chart3D.gd new file mode 100644 index 0000000..93c2bb1 --- /dev/null +++ b/addons/easy_charts/3d_charts/ScatterChart3D/scatter_chart3D.gd @@ -0,0 +1,309 @@ +tool +extends Spatial +class_name ScatterChart3D + +""" +[ScatterChart] - General purpose node for Scatter Charts + +A scatter plot (also called a scatterplot, scatter graph, scatter chart, scattergram, or scatter diagram) + is a type of plot or mathematical diagram using Cartesian coordinates to display values for typically two variables +for a set of data. If the points are coded (color/shape/size), one additional variable can be displayed. +The data are displayed as a collection of points, each having the value of one variable determining the position on +the horizontal axis and the value of the other variable determining the position on the vertical axis. + +/ source : Wikipedia / +""" + +onready var PlaceholderPoint = $Chart/Point +onready var Space = $ImmediateGeometry +onready var DataTooltip = $DataTooltip/DataTooltip + +var point_node : PackedScene = preload("res://addons/easy_charts/utilities/components/point/point.gd") +var FunctionLegend : PackedScene = preload("res://addons/easy_charts/utilities/containers/legend/function_legend.gd") + +var font_size : float = 16 +var const_height : float = font_size/2*font_size/20 +var const_width : float = font_size/2 + +var OFFSET : Vector2 = Vector2(0,0) + +#-------------------------------------------------------------------------# +var origin : Vector2 + +# actual distance between x and y values +var x_pass : float +var y_pass : float + +# vertical distance between y consecutive points used for intervals +var v_dist : float +var h_dist : float + +# quantization, representing the interval in which values will be displayed + +# define values on x an y axis +var x_chors : Array +var y_chors : Array + +# actual coordinates of points (in pixel) +var x_coordinates : Array +var y_coordinates : Array + +# datas contained in file +var datas : Array + +# amount of functions to represent +var functions : int = 0 + +var x_label : String +var z_label : String + +# database values +var x_datas : Array +var z_datas : Array +var y_datas : Array + +# labels displayed on chart +var x_labels : Array +var y_labels : Array + +var x_margin_min : int = 0 +var y_margin_min : int = 0 + +# actual values of point, from the database +var point_values : Array + +# actual position of points in pixel +var point_positions : Array + +var legend : Array setget set_legend,get_legend + +# --------------------- +export (Vector2) var SIZE : Vector2 = Vector2() setget _set_size +export (String, FILE, "*.txt, *.csv") var source : String = "" +export (String) var delimiter : String = ";" +export (bool) var origin_at_zero : bool = true + +export (bool) var are_values_columns : bool = false +export (int,0,100) var x_values_index : int = 0 +export (int,0,100) var z_values_index : int = 0 +export(bool) var show_x_values_as_labels : bool = true + +#export (float,1,20,0.5) var column_width : float = 10 +#export (float,0,10,0.5) var column_gap : float = 2 + +export (float,0.1,10.0) var x_decim : float = 5.0 +export (float,0.1,10.0) var y_decim : float = 5.0 +export (int,"Dot,Triangle,Square") var point_shape : int = 0 +export (PoolColorArray) var function_colors = [Color("#1e1e1e")] +export (Color) var v_lines_color : Color = Color("#cacaca") +export (Color) var h_lines_color : Color = Color("#cacaca") + +export (bool) var boxed : bool = true +export (Color) var box_color : Color = Color("#1e1e1e") +export (Font) var font : Font +export (Font) var bold_font : Font +export (Color) var font_color : Color = Color("#1e1e1e") +export (String,"Default","Clean","Gradient","Minimal","Invert") var template : String = "Default" setget apply_template +export (float,0.1,1) var drawing_duration : float = 0.5 +export (bool) var invert_chart : bool = false + +var templates : Dictionary = {} + +signal chart_plotted(chart) +signal point_pressed(point) + +func _point_plotted(): + pass + +func _ready(): + pass + +func _set_size(size : Vector2): + SIZE = size +# build_chart() + +func clear(): + pass + +func load_font(): + if font != null: + font_size = font.get_height() + var theme : Theme = Theme.new() + theme.set_default_font(font) + DataTooltip.set_theme(theme) + else: + var lbl = Label.new() + font = lbl.get_font("") + lbl.free() + if bold_font != null: + DataTooltip.Data.set("custom_fonts/font",bold_font) + +func _plot(source_ : String, delimiter_ : String, are_values_columns_ : bool, x_values_index_ : int): + randomize() + + clear() + + load_font() + DataTooltip.hide() + + datas = read_data(source_,delimiter_) +# count_functions() + structure_data(datas,are_values_columns_,x_values_index_) +# build_chart() +# calculate_pass() +# calculate_coordinates() +# calculate_colors() +# draw_chart() +# +# create_legend() + emit_signal("chart_plotted", self) + +func plot(): + randomize() + + clear() + + load_font() + DataTooltip.hide() + + if source == "" or source == null: + ECUtilities._print_message("Can't plot a chart without a Source file. Please, choose it in editor, or use the custom function _plot().",1) + return + datas = read_data(source,delimiter) +# count_functions() + structure_data(datas,are_values_columns,x_values_index) +# build_chart() +# calculate_pass() +# calculate_coordinates() +# calculate_colors() +# draw_chart() + +# create_legend() + emit_signal("chart_plotted", self) + + +func read_data(source : String, delimiter : String): + var file : File = File.new() + file.open(source,File.READ) + var content : Array + while not file.eof_reached(): + var line : PoolStringArray = file.get_csv_line(delimiter) + content.append(line) + file.close() + for data in content: + if data.size() < 2: + content.erase(data) + return content + +func structure_data(database : Array, are_values_columns : bool, x_values_index : int): + # @x_values_index can be either a column or a row relative to x values + # @y_values can be either a column or a row relative to y values + self.are_values_columns = are_values_columns + match are_values_columns: + true: + for row in database.size(): + var t_vals : Array + for column in database[row].size(): + if column == x_values_index: + var x_data = database[row][column] + if x_data.is_valid_float() or x_data.is_valid_integer(): + x_datas.append(x_data as float) + else: + x_datas.append(x_data.replace(",",".") as float) + elif column == z_values_index: + var z_data = database[row][column] + if z_data.is_valid_float() or z_data.is_valid_integer(): + z_datas.append(z_data as float) + else: + z_datas.append(z_data.replace(",",".") as float) + else: + if row != 0: + var y_data = database[row][column] + if y_data.is_valid_float() or y_data.is_valid_integer(): + t_vals.append(y_data as float) + else: + t_vals.append(y_data.replace(",",".") as float) + else: + y_labels.append(str(database[row][column])) + if not t_vals.empty(): + y_datas.append(t_vals) + x_label = str(x_datas.pop_front()) + z_label = str(z_datas.pop_front()) + false: + for row in database.size(): + if row == x_values_index: + x_datas = (database[row]) + x_label = x_datas.pop_front() as String + else: + var values = database[row] as Array + y_labels.append(values.pop_front() as String) + y_datas.append(values) + for data in y_datas: + for value in data.size(): + data[value] = data[value] as float + + # draw y labels + var to_order : Array + var to_order_min : Array + for cluster in y_datas.size(): + # define x_chors and y_chors + var ordered_cluster = y_datas[cluster] as Array + ordered_cluster.sort() + ordered_cluster = PoolIntArray(ordered_cluster) + var margin_max = ordered_cluster[ordered_cluster.size()-1] + var margin_min = ordered_cluster[0] + to_order.append(margin_max) + to_order_min.append(margin_min) + + to_order.sort() + to_order_min.sort() + var margin = to_order.pop_back() + if not origin_at_zero: + y_margin_min = to_order_min.pop_front() + v_dist = y_decim * pow(10.0,str(margin).length()-2) + var multi = 0 + var p = (v_dist*multi) + ((y_margin_min) if not origin_at_zero else 0) + y_chors.append(p as String) + while p < margin: + multi+=1 + p = (v_dist*multi) + ((y_margin_min) if not origin_at_zero else 0) + y_chors.append(p as String) + + # draw x_labels + if not show_x_values_as_labels: + to_order.clear() + to_order = x_datas as PoolIntArray + + to_order.sort() + margin = to_order.pop_back() + if not origin_at_zero: + x_margin_min = to_order.pop_front() + h_dist = x_decim * pow(10.0,str(margin).length()-2) + multi = 0 + p = (h_dist*multi) + ((x_margin_min) if not origin_at_zero else 0) + x_labels.append(p as String) + while p < margin: + multi+=1 + p = (h_dist*multi) + ((x_margin_min) if not origin_at_zero else 0) + x_labels.append(p as String) + +func set_legend(l : Array): + legend = l + +func get_legend(): + return legend + +func apply_template(template_name : String): + template = template_name + templates = ECUtilities._load_templates() + if template_name!=null and template_name!="": + var custom_template = templates[template.to_lower()] + function_colors = custom_template.function_colors + v_lines_color = Color(custom_template.v_lines_color) + h_lines_color = Color(custom_template.h_lines_color) + box_color = Color(custom_template.outline_color) + font_color = Color(custom_template.font_color) + property_list_changed_notify() + +func _enter_tree(): + _ready() diff --git a/addons/easy_charts/3DChart/ScatterChart3D/scatter_chart3D.tscn b/addons/easy_charts/3d_charts/ScatterChart3D/scatter_chart3D.tscn similarity index 66% rename from addons/easy_charts/3DChart/ScatterChart3D/scatter_chart3D.tscn rename to addons/easy_charts/3d_charts/ScatterChart3D/scatter_chart3D.tscn index e784140..1e60c58 100644 --- a/addons/easy_charts/3DChart/ScatterChart3D/scatter_chart3D.tscn +++ b/addons/easy_charts/3d_charts/ScatterChart3D/scatter_chart3D.tscn @@ -1,9 +1,14 @@ [gd_scene load_steps=7 format=2] +<<<<<<<< HEAD:addons/easy_charts/3DChart/ScatterChart3D/scatter_chart3D.tscn [ext_resource path="res://addons/easy_charts/3DChart/ScatterChart3D/scatter_chart3D.gd" type="Script" id=1] [ext_resource path="res://addons/easy_charts/Utilities/Point/point_data.tscn" type="PackedScene" id=2] +======== +[ext_resource path="res://addons/easy_charts/3d_charts/ScatterChart3D/scatter_chart3D.gd" type="Script" id=1] +[ext_resource path="res://addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.tscn" type="PackedScene" id=2] +>>>>>>>> dev:addons/easy_charts/3d_charts/ScatterChart3D/scatter_chart3D.tscn [sub_resource type="SpatialMaterial" id=1] @@ -43,13 +48,19 @@ near = 0.01 [node name="OmniLight" type="OmniLight" parent="."] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9, 0 ) -[node name="PointData" parent="." instance=ExtResource( 2 )] +[node name="CanvasLayer" type="CanvasLayer" parent="."] -[node name="PointData" parent="PointData" index="0"] +[node name="DataTooltip" parent="CanvasLayer" instance=ExtResource( 2 )] +margin_left = 277.135 +margin_top = 449.025 +margin_right = 276.999 +margin_bottom = 449.825 + +[node name="PointData" parent="CanvasLayer/DataTooltip" index="0"] visible = false margin_left = 47.2074 margin_top = -150.915 margin_right = 47.0714 margin_bottom = -150.115 -[editable path="PointData"] +[editable path="CanvasLayer/DataTooltip"] diff --git a/addons/easy_charts/ControlChart/PieChart/pie_chart.gd b/addons/easy_charts/ControlChart/PieChart/pie_chart.gd deleted file mode 100644 index 1192ea0..0000000 --- a/addons/easy_charts/ControlChart/PieChart/pie_chart.gd +++ /dev/null @@ -1,226 +0,0 @@ -tool -extends Chart -class_name PieChart - -var should_draw : bool = false -var area_angles : Array -var slices : Array -var areas : Array -var areas_interacted : Array - -class CustomSorter: - static func sort_ascending(a,b): - if a[1] < b[1]: - return true - return false - -func _get_property_list(): - return [ - # Chart Properties - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Properties/are_values_columns", - "type": TYPE_BOOL - }, - { - "hint": PROPERTY_HINT_RANGE, - "hint_string": "-1,100,1", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Properties/labels_index", - "type": TYPE_INT - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Properties/show_x_values_as_labels", - "type": TYPE_BOOL - }, - - # Chart Style - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/function_colors", - "type": TYPE_COLOR_ARRAY - }, - { - "class_name": "Font", - "hint": PROPERTY_HINT_RESOURCE_TYPE, - "hint_string": "Font", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/font", - "type": TYPE_OBJECT - }, - { - "class_name": "Font", - "hint": PROPERTY_HINT_RESOURCE_TYPE, - "hint_string": "Font", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/bold_font", - "type": TYPE_OBJECT - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/font_color", - "type": TYPE_COLOR - }, - { - "hint": PROPERTY_HINT_ENUM, - "hint_string": PoolStringArray(ECUtilities.templates.keys()).join(","), - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/template", - "type": TYPE_INT - }, - - # Chart Modifiers - { - "hint": PROPERTY_HINT_RANGE, - "hint_string": "0,360", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Modifiers/rotation", - "type": TYPE_REAL - }, - ] - - - -# Called when the node enters the scene tree for the first time. -func _ready(): - pass - -func plot_placeholder() -> void: - data = [ - ["United States",46], - ["Great Britain",27], - ["China",26], - ["Russia",19], - ["Germany",17] - ] - - function_colors = [ - Color.red, - Color.white, - Color.yellow, - Color.green, - Color.blue - ] - plot_from_array(data) - -func structure_datas(database: Array): - # @labels_index can be either a column or a row relative to x values - clean_variables() - are_values_columns = invert_chart != are_values_columns - if are_values_columns: - for row in database.size(): - var t_vals: Array - for column in database[row].size(): - if column == labels_index: - var x_data = database[row][column] - if x_data.is_valid_float() or x_data.is_valid_integer(): - x_datas.append(x_data as float) - else: - x_datas.append(x_data.replace(",", ".") as float) - else: - if row != 0: - var y_data = database[row][column] - if y_data.is_valid_float() or y_data.is_valid_integer(): - t_vals.append(y_data as float) - else: - t_vals.append(y_data.replace(",", ".") as float) - else: - y_labels.append(str(database[row][column])) - if not t_vals.empty(): - y_datas.append(t_vals) - x_label = str(x_datas.pop_front()) - else: - for row in database.size(): - if row == labels_index: - x_datas = (database[row]) - x_label = x_datas.pop_front() as String - else: - var values = database[row] as Array - y_labels.append(values.pop_front() as String) - y_datas.append(values) - for data in y_datas: - for value in data.size(): - data[value] = data[value] as float - - -func build_chart(): - SIZE = get_size() - origin = SIZE/2 - radius = (SIZE.y/2 - 20) if SIZE.y < SIZE.x else (SIZE.x/2 - 20) - -func calculate_pass(): - var tot : float - for y_data in y_datas: tot+=y_data[0] - x_pass = 360/tot - -func calculate_coordinates(): - area_angles.clear() - slices.clear() - areas.clear() - var from : float = 0.0 - var to : float = y_datas[0][0]*x_pass - area_angles.append([from,to]) - for info in range(y_datas.size()): - slices.append(Slice.new(y_labels[info], str(y_datas[info][0]), from, to, x_label+" : "+x_datas[0], function_colors[info])) - areas.append(calculate_circle_arc_polygon(origin, radius, from + rotation, to + rotation, function_colors[info])) - from = to - to = (y_datas[info+1][0]*x_pass + from) if info < y_datas.size()-1 else (360) - area_angles.append([from, to]) - - create_legend() - -func calculate_circle_arc_polygon(center : Vector2, radius : float, angle_from : float, angle_to : float, color : Color) -> PoolVector2Array: - var nb_points : int = 32 - var points_arc : PoolVector2Array = PoolVector2Array() -# var chord_angle : float = ((angle_to - angle_from)/2)+angle_from -# angle_from += 0.2 -# angle_to -= 0.2 -# var displacement : Vector2 = Vector2(cos(deg2rad(chord_angle)), sin(deg2rad(chord_angle-180))).normalized()*10 -# print(displacement) -# center += displacement -# radius+=displacement.length() - points_arc.push_back(center) - var colors : PoolColorArray = PoolColorArray([color]) - for i in range(nb_points + 1): - var angle_point = deg2rad(angle_from + i * (angle_to - angle_from) / nb_points - 90) - points_arc.push_back(center + Vector2(cos(angle_point), sin(angle_point)) * radius) - return points_arc - -func _draw(): - _draw_areas() - - if mouse_on_slice: - _draw_arc(area_angles[mouse_on_area], mouse_on_area) - mouse_on_slice = false - -func _draw_arc(arc : Array, index : int): - var temp_color : Color = function_colors[index] - temp_color.a = 0.7 - draw_arc(origin, radius + 6, deg2rad(arc[0]-90 + rotation), deg2rad(arc[1]-90 + rotation), 32, temp_color, 4) - -func _draw_areas(): - for area_idx in range(areas.size()): - draw_polygon(areas[area_idx], [function_colors[area_idx]]) - -var mouse_on_area : int -var mouse_on_slice : bool = false - -func _gui_input(event : InputEvent): - if event is InputEventMouseMotion: - for area_idx in range(areas.size()): - if Geometry.is_point_in_polygon(event.global_position - get_global_transform().origin, areas[area_idx]): - mouse_on_slice = true - mouse_on_area = area_idx - show_slice_data(slices[area_idx]) - update() - - if not mouse_on_slice: - mouse_on_area = -1 - mouse_on_slice = false - hide_data() - update() diff --git a/addons/easy_charts/ControlChart/RadarChart/radar_chart.gd b/addons/easy_charts/ControlChart/RadarChart/radar_chart.gd deleted file mode 100644 index f266c96..0000000 --- a/addons/easy_charts/ControlChart/RadarChart/radar_chart.gd +++ /dev/null @@ -1,287 +0,0 @@ -tool -extends Chart -class_name RadarChart - -""" -[RadarChart] - General purpose node for Radar Charts -A radar chart is a graphical method of displaying multivariate data in the form -of a two-dimensional chart of three or more quantitative variables represented on axes -starting from the same point. The relative position and angle of the axes is typically -uninformative, but various heuristics, such as algorithms that plot data as the maximal -total area, can be applied to sort the variables (axes) into relative positions that reveal -distinct correlations, trade-offs, and a multitude of other comparative measures. - -/ source : Wikipedia / -""" - -func _get_property_list(): - return [ - # Chart Properties - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Properties/are_values_columns", - "type": TYPE_BOOL - }, - { - "hint": PROPERTY_HINT_RANGE, - "hint_string": "-1,100,1", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Properties/labels_index", - "type": TYPE_INT - }, - { - "hint": PROPERTY_HINT_RANGE, - "hint_string": "-1,100,1", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Properties/function_names_index", - "type": TYPE_INT - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Properties/use_height_as_radius", - "type": TYPE_BOOL - }, - { - "hint": PROPERTY_HINT_RANGE, - "hint_string": "0,2000", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Properties/radius", - "type": TYPE_REAL - }, - - # Chart Display - { - "hint": PROPERTY_HINT_RANGE, - "hint_string": "0.1,100", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Display/full_scale", - "type": TYPE_REAL - }, - - # Chart Style - { - "hint": 24, - "hint_string": "%d/%d:%s"%[TYPE_INT, PROPERTY_HINT_ENUM, - PoolStringArray(PointShapes.keys()).join(",")], - "name": "Chart_Style/points_shape", - "type": TYPE_ARRAY, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/function_colors", - "type": TYPE_COLOR_ARRAY - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/outline_color", - "type": TYPE_COLOR - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/grid_color", - "type": TYPE_COLOR - }, - { - "class_name": "Font", - "hint": PROPERTY_HINT_RESOURCE_TYPE, - "hint_string": "Font", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/font", - "type": TYPE_OBJECT - }, - { - "class_name": "Font", - "hint": PROPERTY_HINT_RESOURCE_TYPE, - "hint_string": "Font", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/bold_font", - "type": TYPE_OBJECT - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/font_color", - "type": TYPE_COLOR - }, - { - "hint": PROPERTY_HINT_ENUM, - "hint_string": PoolStringArray(ECUtilities.templates.keys()).join(","), - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/template", - "type": TYPE_INT - }, - { - "hint": PROPERTY_HINT_RANGE, - "hint_string": "0,360", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Modifiers/rotation", - "type": TYPE_REAL - }, - ] - -func structure_datas(database : Array): - # @x_values_index can be either a column or a row relative to x values - # @y_values can be either a column or a row relative to y values - are_values_columns = invert_chart != are_values_columns - match are_values_columns: - true: - for row in database.size(): - var t_row : Array = [] - for column in database[row].size(): - if row == labels_index: - if column == function_names_index: - pass - else: - x_labels.append(database[row][column]) - else: - if column == function_names_index: - y_labels.append(database[row][column]) - else: - if typeof(database[row][column]) == TYPE_INT or typeof(database[row][column]) == TYPE_REAL: - t_row.append(database[row][column] as float) - else: - t_row.append(database[row][column].replace(",", ".") as float) - if not t_row.empty(): - x_datas.append(t_row) - false: - for row in database.size(): - if row == function_names_index: - y_labels = database[row] as PoolStringArray - - var x_temp_datas : PoolRealArray = [] - for column in database[row].size(): - if column == labels_index: - x_labels.append(database[row][column] as String) - else: - x_temp_datas.append(database[row][column] as float) - x_datas.append(x_temp_datas) - - - if labels_index == -1 : - for data in x_datas[0].size(): - x_labels.append("Element %s" % data) - - if function_names_index == -1 : - for data in x_datas.size(): - y_labels.append("Function %s" % data) - -func build_chart(): - SIZE = get_size() - origin = OFFSET + SIZE/2 - -var radar_polygon : Array - -func calculate_pass() : - var ordered_max : Array - for data in x_datas : - var ordered_data : Array = data.duplicate() - ordered_data.sort() - ordered_max.append(ordered_data.pop_back()) - ordered_max.sort() - var max_value : float = ordered_max.pop_back() - var dist = full_scale * pow(10.0,str(max_value).length()-2) - var multi = 0 - var value = dist * multi - x_chors.append(value as String) - while value < max_value: - multi+=1 - value = dist * multi - x_chors.append(value as String) - -func calculate_coordinates(): - for chor in x_chors.size(): - var inner_polyline : PoolVector2Array - var scalar_factor : float = (x_chors[chor] as float/x_chors.back() as float) - for function in functions: - var angle : float = ((2 * PI * function) / functions) - PI /2 + deg2rad(rotation) - var x_coordinate : float = (radius if (not use_height_as_radius and radius void: - if data_matrix.get_size()[1] == header.size(): header.insert(0,"") - if index.empty() : for value in range(data_matrix.get_size().x) : index.append("f%s"%value) - self._data_matrix = data_matrix - self._index = index - self._header = header - self._dataset = build_dataset(data_matrix.to_array(), index, header) - self._dataframe = build_dataframe_from_matrix(data_matrix, index, header) - -func build_dataset(data : Array, index : PoolStringArray, header : PoolStringArray) -> Array: - var dataset : Array = [Array(header)] - for i in range(index.size()): - var set : Array = data[i].duplicate() - set.insert(0, index[i]) - dataset.append(set) - return dataset - -func build_dataframe(data : Array, index : PoolStringArray, header : PoolStringArray) -> Array: - var dataframe : Array = [Array(header)] - for row_i in range(data.size()): dataframe.append([index[row_i]]+data[row_i]) - return dataframe - -func build_dataframe_from_matrix(data_matrix : Matrix, index : PoolStringArray, header : PoolStringArray) -> Array: - var data : Array = data_matrix.to_array() - return build_dataframe(data, index, header) - -func insert_column(header_n : String, column : Array, index : int = _dataframe[0].size()) -> void: - assert(column.size()+1 == _dataframe.size(), "error: the column size must match the dataframe column size") - _header.insert(index, header_n) - _data_matrix.insert_column(column, index-1) - self._dataframe = build_dataframe_from_matrix(_data_matrix, _index, _header) - -func insert_row(index_n : String, row : Array, index : int = _dataframe.size()) -> void: - assert(row.size()+1 == _dataframe[0].size(), "error: the row size must match the dataframe row size") - _index.insert(index-1, index_n) - _data_matrix.insert_row(row, index-1) - self._dataframe = build_dataframe_from_matrix(_data_matrix, _index, _header) - -func get_matrix() -> Matrix: - return _data_matrix - -func get_dataframe() -> Array: - return _dataframe - -func get_dataset() -> Array: - return _dataset - -func get_index() -> PoolStringArray: - return _index - - -func _to_string() -> String: - var last_string_len : int - for row in _dataframe: - for column in row: - var string_len : int = str(column).length() - last_string_len = string_len if string_len > last_string_len else last_string_len - var string : String = "" - for row_i in _dataframe.size(): - for column_i in _dataframe[row_i].size(): - string+="%*s" % [last_string_len+1, _dataframe[row_i][column_i]] - string+="\n" - return string - -# ............................................................................... -func get_column_h(header : String) -> Array: - var header_i : int = -1 - var array : Array = [] - for header_ix in range(_dataframe[0].size()): - if _dataframe[0][header_ix] == header: header_i = header_ix; continue - if header_i!=-1: for row in _dataframe: array.append(row[header_i]) - return array - -func get_row_i(index : String) -> Array: - var index_i : int - for row in _dataframe: if row[0] == index: return row - return [] - -func _get(_property : String): - if _property.split(";").size() == 2: - var property : PoolStringArray = _property.split(";") - pass - elif _property.split(":").size() == 2: - var property : PoolStringArray = _property.split(":") - if int(property[0]) == 0: return get_row_i(property[1]) - else: return get_column_h(property[1]) - - - - - diff --git a/addons/easy_charts/Utilities/Data/matrix.gd b/addons/easy_charts/Utilities/Data/matrix.gd deleted file mode 100644 index 659649c..0000000 --- a/addons/easy_charts/Utilities/Data/matrix.gd +++ /dev/null @@ -1,61 +0,0 @@ -tool -extends Reference -class_name Matrix - -var _matrix : Array = [] - -func _init(matrix : Array = []) -> void: - _matrix = matrix - -func _to_string() -> String: - var last_string_len : int - for row in _matrix: - for column in row: - var string_len : int = str(column).length() - last_string_len = string_len if string_len > last_string_len else last_string_len - var string : String = "\n" - for row_i in _matrix.size(): - for column_i in _matrix[row_i].size(): - string+="%*s" % [last_string_len+1 if column_i!=0 else last_string_len, _matrix[row_i][column_i]] - string+="\n" - return string - -func insert_row(row : Array, index : int = _matrix.size()) -> void: - assert(row.size() == _matrix[0].size(), "error: the row size must match matrix row size") - _matrix.insert(index, row) - -func insert_column(column : Array, index : int = _matrix[0].size()) -> void: - assert(column.size() == _matrix.size(), "error: the column size must match matrix column size") - for row_idx in column.size(): - _matrix[row_idx].insert(index, column[row_idx]) - -func to_array() -> Array: - return _matrix.duplicate() - -func get_size() -> Vector2: - return Vector2(_matrix.size(), _matrix[0].size()) - -func get_column(column : int) -> Array: - if column >= get_size()[1]: printerr("error") - var column_array : Array = [] - for row in _matrix: column_array.append(row[column]) - return column_array - -func get_row(row : int) -> Array: - if row >= get_size()[0]: printerr("error") - return _matrix[row] -# -#func multiply_int(_int : int) -> void: -# _matrix = MatrixGenerator.multiply_int(self, _int).to_array() -# -#func multiply_float(_float : int) -> void: -# _matrix = MatrixGenerator.multiply_float(self, _float).to_array() - - - - - - - - - diff --git a/addons/easy_charts/Utilities/Legend/color_label.tscn b/addons/easy_charts/Utilities/Legend/color_label.tscn deleted file mode 100644 index 12f3ccb..0000000 --- a/addons/easy_charts/Utilities/Legend/color_label.tscn +++ /dev/null @@ -1,12 +0,0 @@ -[gd_scene load_steps=2 format=2] - -[ext_resource path="res://addons/easy_charts/ChartContainer.gd" type="Script" id=1] - -[node name="Control" type="ColorRect"] -margin_right = 15.0 -margin_bottom = 3.0 -rect_min_size = Vector2( 15, 3 ) -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} diff --git a/addons/easy_charts/Utilities/Point/point_data.gd b/addons/easy_charts/Utilities/Point/point_data.gd deleted file mode 100644 index 180be55..0000000 --- a/addons/easy_charts/Utilities/Point/point_data.gd +++ /dev/null @@ -1,69 +0,0 @@ -tool -extends PanelContainer -class_name PointData - -var value : String = "" -var position : Vector2 = Vector2() - -var OFFSET : Vector2 = Vector2(15,35) -var GAP : Vector2 = Vector2(0,15) - -onready var Data : Label = $PointData/Value/x -onready var Value : Label = $PointData/Value/y -onready var Function : Label = $PointData/Function - -func _ready(): - hide() - -func _process(delta): - if get_global_mouse_position().y > OFFSET.y + GAP.y: - rect_position = get_global_mouse_position() - OFFSET - GAP - else: - rect_position = get_global_mouse_position() + GAP*5 - OFFSET - -func update_datas(point : Control): - update_size() - - get("custom_styles/panel").set("bg_color",point.color) - - var font_color : Color - if point.color.g < 0.75: - font_color = Color(1,1,1,1) - else: - font_color = Color(0,0,0,1) - Data.set("custom_colors/font_color",font_color) - Value.set("custom_colors/font_color",font_color) - Function.set("custom_colors/font_color",font_color) - get("custom_styles/panel").set("border_color",font_color) - - Data.set_text(point.point_value[0]+":") - Value.set_text(point.point_value[1]) - Function.set_text(point.function) - update() - show() - -func update_slice_datas(slice : Slice): - update_size() - - get("custom_styles/panel").set("bg_color",slice.color) - - var font_color : Color - if slice.color.g < 0.75: - font_color = Color(1,1,1,1) - else: - font_color = Color(0,0,0,1) - Data.set("custom_colors/font_color",font_color) - Value.set("custom_colors/font_color",font_color) - Function.set("custom_colors/font_color",font_color) - get("custom_styles/panel").set("border_color",font_color) - - Data.set_text(slice.x_value+":") - Value.set_text(slice.y_value) - Function.set_text(slice.function) - update() - show() - -func update_size(): - OFFSET.x = get_size().x/2 - OFFSET.y = get_size().y - GAP.y = OFFSET.y/3 diff --git a/addons/easy_charts/Utilities/Point/point_data.tscn b/addons/easy_charts/Utilities/Point/point_data.tscn deleted file mode 100644 index fb13e30..0000000 --- a/addons/easy_charts/Utilities/Point/point_data.tscn +++ /dev/null @@ -1,85 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://addons/easy_charts/Utilities/Point/point_data.gd" type="Script" id=1] - - -[sub_resource type="StyleBoxFlat" id=1] -content_margin_left = 10.0 -content_margin_right = 10.0 -content_margin_top = 5.0 -content_margin_bottom = 5.0 -bg_color = Color( 1, 1, 1, 0 ) -border_width_left = 2 -border_width_top = 2 -border_width_right = 2 -border_width_bottom = 2 -border_color = Color( 1, 1, 1, 1 ) -corner_radius_top_left = 5 -corner_radius_top_right = 5 -corner_radius_bottom_right = 5 -corner_radius_bottom_left = 5 -corner_detail = 20 - -[node name="CanvasLayer" type="CanvasLayer"] - -[node name="PointData" type="PanelContainer" parent="."] -visible = false -anchor_right = 0.0694688 -anchor_bottom = 0.067 -margin_left = 79.7858 -margin_top = -250.75 -margin_right = 79.6496 -margin_bottom = -249.95 -grow_horizontal = 2 -mouse_filter = 2 -custom_styles/panel = SubResource( 1 ) -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": true -} - -[node name="PointData" type="VBoxContainer" parent="PointData"] -margin_left = 10.0 -margin_top = 5.0 -margin_right = 61.0 -margin_bottom = 36.0 -grow_horizontal = 2 -size_flags_horizontal = 3 -custom_constants/separation = 3 -alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="Function" type="Label" parent="PointData/PointData"] -margin_right = 51.0 -margin_bottom = 14.0 -size_flags_horizontal = 3 -align = 1 -valign = 1 - -[node name="Value" type="HBoxContainer" parent="PointData/PointData"] -margin_top = 17.0 -margin_right = 51.0 -margin_bottom = 31.0 -grow_horizontal = 2 -size_flags_horizontal = 6 -alignment = 1 - -[node name="x" type="Label" parent="PointData/PointData/Value"] -margin_right = 39.0 -margin_bottom = 14.0 -size_flags_horizontal = 3 -custom_colors/font_color = Color( 1, 1, 1, 1 ) -text = "Value:" -align = 2 -valign = 1 - -[node name="y" type="Label" parent="PointData/PointData/Value"] -margin_left = 43.0 -margin_right = 51.0 -margin_bottom = 14.0 -size_flags_horizontal = 3 -custom_colors/font_color = Color( 1, 1, 1, 1 ) -text = "0" -valign = 1 diff --git a/addons/easy_charts/Utilities/Rect/.gdignore b/addons/easy_charts/Utilities/Rect/.gdignore deleted file mode 100644 index e69de29..0000000 diff --git a/addons/easy_charts/Utilities/Scripts/chart.gd b/addons/easy_charts/Utilities/classes/base/chart.gd similarity index 86% rename from addons/easy_charts/Utilities/Scripts/chart.gd rename to addons/easy_charts/Utilities/classes/base/chart.gd index eac36fd..ba4ab21 100644 --- a/addons/easy_charts/Utilities/Scripts/chart.gd +++ b/addons/easy_charts/Utilities/classes/base/chart.gd @@ -9,17 +9,14 @@ signal chart_plotted(chart) # emit when a chart is plotted (static) or updated ( signal point_pressed(point) # Onready Vars ............................ -onready var PointData = $PointData/PointData +onready var data_tooltip = $CanvasLayer/DataTooltip onready var Points = $Points onready var Legend = $Legend onready var ChartName : Label = $ChartName # Scenes and Reosurces ...................... -var point_node : PackedScene = preload("../Point/point.tscn") -var LegendElement : PackedScene = preload("../Legend/function_legend.tscn") - -# Enums ..................................... -enum PointShapes { Dot, Triangle, Square, Cross } +var point_node : PackedScene = preload("../../components/point/point.tscn") +var legend_element : PackedScene = preload("../../containers/legend/function_legend.tscn") # Shared Variables ......................... var SIZE : Vector2 = Vector2() @@ -97,7 +94,7 @@ var full_scale : float = 1.0 setget set_full_scale var x_decim : float = 1.0 setget set_x_decim var y_decim : float = 1.0 setget set_y_decim -var points_shape : Array = [PointShapes.Dot] setget set_points_shape +var points_shape : Array = [Point.SHAPES.Dot] setget set_points_shape var function_colors = [Color("#1e1e1e")] setget set_function_colors var outline_color : Color = Color("#1e1e1e") setget set_outline_color var box_color : Color = Color("#1e1e1e") setget set_box_color @@ -303,7 +300,74 @@ func _set(property, value): return true # .......................... Shared Functions and virtuals ........................ -func slice_data() -> Array: + +# Structure and Display a new plot if a dataset source is given +# both through APIs or from Inspector +func plot(_dataset: Array = read_data(source, delimiter)) -> void: + clean_variables() + clean_points() + load_font() + data_tooltip.hide() + + if source == "" or source == null: + ECUtilities._print_message("Can't plot a chart without a Source file. Please, choose it in editor, or use the custom function _plot().",1) + return + + if _dataset.empty(): + ECUtilities._print_message("Can't plot a chart with an empty Array.",1) + return + + data = _dataset.duplicate(true) + structure_data(slice_data(data)) + compute_display() + display_plot() + emit_signal("chart_plotted",self) + if not is_connected("item_rect_changed",self, "redraw"): connect("item_rect_changed", self, "redraw") + +func plot_from_source(file : String, _delimiter : String = delimiter) -> void: + plot(read_data(file, _delimiter)) + +func plot_from_dataframe(dataframe : DataFrame) -> void: + plot(dataframe.get_dataframe()) + +func plot_placeholder() -> void: + pass + +# Append new data (in array format) to the already plotted data. +# The new data will be appended as a new row of the dataset. +# All data are stored. +func update_plot(new_data : Array) -> void: + if new_data.empty(): + ECUtilities._print_message("Can't plot a chart with an empty Array.",1) + return + + data.append(new_data.duplicate(true)) + plot(data) + +# Append a new column to data +func append_new_column(dataset : Array, column : Array): + if column.empty(): + ECUtilities._print_message("Can't update plot with an empty row.",1) + return + for value_idx in column.size(): + dataset[value_idx].append(column[value_idx]) + +# ...................... Dataset Manipulation Functions ......................... + +func read_data(source : String, _delimiter : String = delimiter): + var file : File = File.new() + file.open(source,File.READ) + var content : Array + while not file.eof_reached(): + var line : PoolStringArray = file.get_csv_line(_delimiter) + content.append(line) + file.close() + for data in content: + if data.size() < 2 or data.empty(): + content.erase(data) + return content.duplicate(true) + +func slice_data(data: Array) -> Array: var data_to_display : Array data_to_display.resize(data.size()) if only_disp_values == Vector2(0,0) : @@ -321,122 +385,19 @@ func slice_data() -> Array: data_to_display = data.duplicate(true) return data_to_display -func plot(): - load_font() - PointData.hide() - - if source == "" or source == null: - ECUtilities._print_message("Can't plot a chart without a Source file. Please, choose it in editor, or use the custom function _plot().",1) - return - - - data = read_datas(source) - structure_datas(slice_data()) +# .................. Display and Draw functions ....................... +func compute_display(): + count_functions() + calculate_colors() + set_shapes() + create_legend() + +func display_plot(): build_chart() - count_functions() calculate_pass() - calculate_colors() calculate_coordinates() - set_shapes() - create_legend() - emit_signal("chart_plotted",self) -func plot_from_csv(csv_file : String, _delimiter : String = delimiter): - clean_variables() - clear_points() - load_font() - PointData.hide() - - if csv_file == "" or csv_file == null: - ECUtilities._print_message("Can't plot a chart without a Source file. Please, choose it in editor, or use the custom function _plot().",1) - return - - data = read_datas(csv_file, _delimiter) - structure_datas(slice_data()) - build_chart() - count_functions() - calculate_pass() - calculate_colors() - calculate_coordinates() - set_shapes() - create_legend() - emit_signal("chart_plotted",self) - -func plot_from_array(array : Array) -> void: - clean_variables() - clear_points() - load_font() - PointData.hide() - - if array.empty(): - ECUtilities._print_message("Can't plot a chart with an empty Array.",1) - return - - data = array.duplicate(true) - structure_datas(slice_data()) - build_chart() - count_functions() - calculate_pass() - calculate_colors() - calculate_coordinates() - set_shapes() - create_legend() - emit_signal("chart_plotted",self) - - if not is_connected("item_rect_changed",self, "redraw"): connect("item_rect_changed", self, "redraw") - -func plot_from_dataframe(dataframe : DataFrame) -> void: - clean_variables() - clear_points() - load_font() - PointData.hide() - - data = dataframe.get_dataframe().duplicate(true) - - if data.empty(): - ECUtilities._print_message("Can't plot a chart with an empty Array.",1) - return - - structure_datas(slice_data()) - build_chart() - count_functions() - calculate_pass() - calculate_colors() - calculate_coordinates() - set_shapes() - create_legend() - emit_signal("chart_plotted",self) - - if not is_connected("item_rect_changed",self, "redraw"): connect("item_rect_changed", self, "redraw") - -# Append new data (in array format) to the already plotted data. -# All data are stored. -func update_plot_data(array : Array) -> void: - if array.empty(): - ECUtilities._print_message("Can't plot a chart with an empty Array.",1) - return - - data.append(array) - structure_datas(slice_data()) - redraw() - count_functions() - calculate_colors() - set_shapes() - create_legend() - emit_signal("chart_plotted",self) - - update() - -# Append a new column to data -func append_new_column(dataset : Array, column : Array): - if column.empty(): - ECUtilities._print_message("Can't update plot with an empty row.",1) - return - for value_idx in column.size(): - dataset[value_idx].append(column[value_idx]) - -func plot_placeholder() -> void: - pass +# ................................. Helper Functions ................................. func load_font(): if font != null: @@ -449,7 +410,13 @@ func load_font(): font = lbl.get_font("") lbl.free() if bold_font != null: - PointData.Data.set("custom_fonts/font",bold_font) + data_tooltip.Data.set("custom_fonts/font", bold_font) + else: + bold_font = font + +func count_functions(): + if are_values_columns: functions = data[0].size()-1 + else: functions = y_datas.size() func calculate_colors(): if function_colors.size() < functions: @@ -458,37 +425,31 @@ func calculate_colors(): func set_shapes(): if points_shape.empty() or points_shape.size() < functions: for function in functions: - points_shape.append(PointShapes.Dot) + points_shape.append(Point.SHAPES.Dot) -func read_datas(source : String, _delimiter : String = delimiter): - var file : File = File.new() - file.open(source,File.READ) - var content : Array - while not file.eof_reached(): - var line : PoolStringArray = file.get_csv_line(_delimiter) - content.append(line) - file.close() - for data in content: - if data.size() < 2 or data.empty(): - content.erase(data) - return content +# Create the legend of the current plot +func create_legend(): + for function in functions: + var function_legend : LegendElement + if legend.size() > function: + function_legend = legend[function] + else: + function_legend = legend_element.instance() + legend.append(function_legend) + var f_name : String = y_labels[function] if not are_values_columns else str(x_datas[function]) + var legend_font : Font + if font != null: + legend_font = font + if bold_font != null: + legend_font = bold_font + function_legend.create_legend(f_name,function_colors[function],bold_font,font_color) -func count_functions(): - if are_values_columns: functions = data[0].size()-1 - else: functions = y_datas.size() - -func clear_points(): +func clean_points(): for function in Points.get_children(): function.free() for legend in Legend.get_children(): legend.free() -func redraw(): - build_chart() - calculate_pass() - calculate_coordinates() - update() - func clean_variables(): x_chors.clear() y_chors.clear() @@ -499,37 +460,29 @@ func clean_variables(): y_labels.clear() # .................. VIRTUAL FUNCTIONS ......................... -func structure_datas(database : Array): +func calculate_tics(): pass +# Structure the dataset in order to be plotted +func structure_data(database : Array): + pass + +# Calculate borders, size and origin in order to display the plot func build_chart(): pass +# Calculate the pass, necessary to correctly draw the points func calculate_pass(): pass +# Calculate Points' coordinates in order to display them func calculate_coordinates(): pass +# Calculate or assign to each function a color func function_colors(): pass -func create_legend(): - for function in functions: - var function_legend : LegendElement - if legend.size() > function: - function_legend = legend[function] - else: - function_legend = LegendElement.instance() - legend.append(function_legend) - var f_name : String = y_labels[function] if not are_values_columns else str(x_datas[function]) - var legend_font : Font - if font != null: - legend_font = font - if bold_font != null: - legend_font = bold_font - function_legend.create_legend(f_name,function_colors[function],bold_font,font_color) - # ........................... Shared Setters & Getters .............................. func apply_template(template_name : int): if Engine.editor_hint: @@ -720,12 +673,12 @@ func point_pressed(point : Point): emit_signal("point_pressed",point) func show_data(point : Point): - PointData.update_datas(point) - PointData.show() + data_tooltip.update_datas(point) + data_tooltip.show() func hide_data(): - PointData.hide() + data_tooltip.hide() func show_slice_data(slice : Slice): - PointData.update_slice_datas(slice) - PointData.show() + data_tooltip.update_slice_datas(slice) + data_tooltip.show() diff --git a/addons/easy_charts/Utilities/Scripts/chart2d.gd b/addons/easy_charts/Utilities/classes/base/chart2d.gd similarity index 92% rename from addons/easy_charts/Utilities/Scripts/chart2d.gd rename to addons/easy_charts/Utilities/classes/base/chart2d.gd index 5cfc393..6dbe3e0 100644 --- a/addons/easy_charts/Utilities/Scripts/chart2d.gd +++ b/addons/easy_charts/Utilities/classes/base/chart2d.gd @@ -5,7 +5,6 @@ class_name Chart2D enum PointShapes { Dot, Triangle, Square, Cross } enum TemplatesNames { Default, Clean, Gradient, Minimal, Invert } - signal chart_plotted(chart) signal point_pressed(point) @@ -47,12 +46,12 @@ var FunctionsTween: Tween var PointTween : Tween var Functions: Node2D var GridTween: Tween -var PointData: PointData +var DataTooltip: DataTooltip var Outlines: Line2D var Grid: Node2D -var point_node: PackedScene = preload("../Point/point.tscn") -var FunctionLegend: PackedScene = preload("../Legend/function_legend.tscn") +var point_node: PackedScene = preload("res://addons/easy_charts/utilities/components/point/point.tscn") +var FunctionLegend: PackedScene = preload("res://addons/easy_charts/utilities/containers/legend/function_legend.tscn") var font_size: float = 16 var const_height: float = font_size / 2 * font_size / 20 @@ -129,7 +128,7 @@ func _get_children(): FunctionsTween = $FunctionsTween Functions = $Functions GridTween = $GridTween - PointData = $PointData/PointData + DataTooltip = $DataTooltip/DataTooltip Outlines = $Outlines Grid = $Grid @@ -144,7 +143,6 @@ func apply_template(template_name: int): box_color = Color(custom_template.outline_color) font_color = Color(custom_template.font_color) property_list_changed_notify() - if Engine.editor_hint: _get_children() Outlines.set_default_color(box_color) @@ -159,15 +157,15 @@ func redraw(): func show_data(point): - PointData.update_datas(point) - PointData.show() + DataTooltip.update_datas(point) + DataTooltip.show() func hide_data(): - PointData.hide() + DataTooltip.hide() -func clear_points(): +func clean_points(): function_colors.clear() if Functions.get_children(): for function in Functions.get_children(): diff --git a/addons/easy_charts/Utilities/Scripts/scatter_chart_base.gd b/addons/easy_charts/Utilities/classes/base/scatter_chart_base.gd similarity index 96% rename from addons/easy_charts/Utilities/Scripts/scatter_chart_base.gd rename to addons/easy_charts/Utilities/classes/base/scatter_chart_base.gd index 40b32d3..e6eb9bb 100644 --- a/addons/easy_charts/Utilities/Scripts/scatter_chart_base.gd +++ b/addons/easy_charts/Utilities/classes/base/scatter_chart_base.gd @@ -9,13 +9,13 @@ class_name ScatterChartBase var x_domain := [[], []] var y_domain := [[], []] -var x_range := [0, 0] -var y_range := [0, 0] +var x_range : PoolRealArray = [0, 0] +var y_range : PoolRealArray = [0, 0] var autoscale_x = true var autoscale_y = true -var property_list = [] +var property_list: Array = [] func _init(): @@ -125,7 +125,7 @@ func build_property_list(): "hint": 24, "hint_string": ("%d/%d:%s" %[TYPE_INT, PROPERTY_HINT_ENUM, - PoolStringArray(PointShapes.keys()).join(",")]), + PoolStringArray(Point.SHAPES.keys()).join(",")]), "name": "Chart_Style/points_shape", "type": TYPE_ARRAY, "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE @@ -272,30 +272,12 @@ func _get(property): "Chart_Display/max_y_range": return y_range[1] - -func plot(): - # Overwrites the method on Chart to make a reusable piece to be used internally - # to do all calculations needed to replot. - calculate_tics() - build_chart() - count_functions() - calculate_pass() - calculate_colors() - calculate_coordinates() - set_shapes() - create_legend() - emit_signal("chart_plotted",self) - - if not is_connected("item_rect_changed",self, "redraw"): connect("item_rect_changed", self, "redraw") - - func plot_function(x:Array, y:Array, param_dic := {}): # Add a function to the chart. If no identifier (label) is given a generic one # is generated. # param_dic is a dictionary with specific parameters to this curve - load_font() - PointData.hide() + data_tooltip.hide() var id := "" if x.empty() or y.empty(): @@ -381,7 +363,7 @@ func generate_identifier(): return "f%d" % (y_labels.size() + 1) -func structure_datas(database : Array): +func structure_data(database : Array): # @labels_index can be either a column or a row relative to x values # @y_values can be either a column or a row relative to y values @@ -540,12 +522,14 @@ func count_functions(): functions = y_labels.size() +# Calculate distance in pixel between 2 consecutive values/datas func calculate_pass(): - # Calculate distance in pixel between 2 consecutive values/datas x_pass = (SIZE.x - OFFSET.x) / (x_chors.size() - 1 if x_chors.size() > 1 else x_chors.size()) y_pass = (origin.y - ChartName.get_rect().size.y * 2) / (y_chors.size() - 1 if y_chors.size() > 1 else y_chors.size()) +# Calculate all Points' coordinates in the dataset +# and display them inside the chart func calculate_coordinates(): point_values.clear() point_positions.clear() @@ -563,8 +547,7 @@ func calculate_coordinates(): point_values[function].append([x_datas[function][val], y_datas[function][val]]) point_positions[function].append(Vector2(value_x + origin.x, origin.y - value_y)) - - +# Draw the grid lines for the chart func draw_grid(): # ascisse for p in x_chors.size(): @@ -590,13 +573,15 @@ func draw_grid(): size_text.y / 2), y_chors[p], font_color) +# Draw chart outlines containing the current plot func draw_chart_outlines(): draw_line(origin, SIZE-Vector2(0, OFFSET.y), box_color, 1, true) draw_line(origin, Vector2(OFFSET.x, 0), box_color, 1, true) draw_line(Vector2(OFFSET.x, 0), Vector2(SIZE.x, 0), box_color, 1, true) draw_line(Vector2(SIZE.x, 0), SIZE - Vector2(0, OFFSET.y), box_color, 1, true) - +# Draw the points using their coordinates and information, +# inside a PointContainer func draw_points(): for function in point_values.size(): var PointContainer : Control = Control.new() @@ -615,7 +600,7 @@ func draw_points(): PointContainer.add_child(point) - +# Draw the tresholds (if set) func draw_treshold(): if v_dist != 0: treshold_draw = Vector2((treshold.x * x_pass) + origin.x ,origin.y - ((treshold.y * y_pass)/v_dist)) diff --git a/addons/easy_charts/Utilities/classes/structures/data_frame.gd b/addons/easy_charts/Utilities/classes/structures/data_frame.gd new file mode 100644 index 0000000..71782a5 --- /dev/null +++ b/addons/easy_charts/Utilities/classes/structures/data_frame.gd @@ -0,0 +1,190 @@ +tool +extends Resource +class_name DataFrame + +var table_name : String = "" +var labels : PoolStringArray = [] +var headers : PoolStringArray = [] +var datamatrix : Matrix = null +var dataset : Array = [] + +func _init(datamatrix : Matrix, headers : PoolStringArray = [], labels : PoolStringArray = [] , table_name : String = "") -> void: + if labels.empty() : for label in range(datamatrix.get_size().x) : labels.append(label as String) + if headers.empty() : for header in range(datamatrix.get_size().y) : headers.append(ECUtilities.get_letter_index(header)) + build_dataframe(datamatrix, headers, labels, table_name) + +func build_dataframe(datamatrix : Matrix, headers : PoolStringArray = [], labels : PoolStringArray = [] , table_name : String = "") -> void: + self.datamatrix = datamatrix + self.table_name = table_name + self.labels = labels + self.headers = headers + self.dataset = build_dataset_from_matrix(datamatrix, headers, labels) + +func build_dataset(data : Array, headers : PoolStringArray, labels : PoolStringArray) -> Array: + var dataset : Array = [Array(headers)] + for row_i in range(data.size()): dataset.append([labels[row_i]]+data[row_i]) + return dataset + +func build_dataset_from_matrix(datamatrix : Matrix, headers : PoolStringArray, labels : PoolStringArray) -> Array: + var data : Array = datamatrix.to_array() + return build_dataset(data, headers, labels) + +func insert_column(column : Array, header : String = "", index : int = dataset[0].size()) -> void: + assert(column.size() == datamatrix.rows(), "error: the column size must match the dataset column size") + headers.insert(index, header if header != "" else ECUtilities.get_letter_index(index)) + datamatrix.insert_column(column, index-1) + dataset = build_dataset_from_matrix(datamatrix, headers, labels) + +func insert_row(row : Array, label : String = "", index : int = dataset.size()) -> void: + assert(row.size() == datamatrix.columns(), "error: the row size must match the dataset row size") + labels.insert(index-1, label if label != "" else (index-1) as String) + datamatrix.insert_row(row, index-1) + dataset = build_dataset_from_matrix(datamatrix, headers, labels) + +func get_datamatrix() -> Matrix: + return datamatrix + +func get_dataset() -> Array: + return dataset + +func get_labels() -> PoolStringArray: + return labels + +func transpose(): + build_dataframe(MatrixGenerator.transpose(datamatrix), labels, headers, table_name) + +func _to_string() -> String: + var last_string_len : int + for row in dataset: + for column in row: + var string_len : int = str(column).length() + last_string_len = string_len if string_len > last_string_len else last_string_len + var string : String = "" + for row_i in dataset.size(): + if row_i == 0: + string+="%*s" % [last_string_len+1, ""] + for column_i in dataset[row_i].size(): + string+="%*s" % [last_string_len+1, dataset[row_i][column_i]] + string+="\n" + string+="\n['{table_name}' : {rows} rows x {columns} columns]\n".format({ + rows = datamatrix.rows(), + columns = datamatrix.columns(), + table_name = table_name}) + return string + +# ............................................................................... + +# Return a list of headers corresponding to a list of indexes +func get_headers_names(indexes : PoolIntArray) -> PoolStringArray: + var headers : PoolStringArray = [] + for index in indexes: + headers.append(dataset[0][index]) + return headers + +# Returns the index of an header +func get_column_index(header : String) -> int: + for headers_ix in range(dataset[0].size()): + if dataset[0][headers_ix] == header: + return headers_ix + return -1 + +# Get a column by its header +func get_column(header : String) -> Array: + var headers_i : int = get_column_index(header) + if headers_i!=-1: + return datamatrix.get_column(headers_i) + else: + return [] + +# Get a list of columns by their headers +func columns(headers : PoolStringArray) -> Matrix: + var values : Array = [] + for header in headers: + values.append(get_column(header)) + return MatrixGenerator.transpose(Matrix.new(values)) + + +# Get a column by its index +func get_icolumn(index : int) -> Array: + return datamatrix.get_column(index) + +# Get a list of columns by their indexes +func get_icolumns(indexes : PoolIntArray) -> Array: + var values : Array = [] + for index in indexes: + values.append(datamatrix.get_column(index)) + return values + +# Returns the list of labels corresponding to the list of indexes +func get_labels_names(indexes : PoolIntArray) -> PoolStringArray: + var headers : PoolStringArray = [] + for index in indexes: + headers.append(dataset[index][0]) + return headers + +# Returns the index of a label +func get_row_index(label : String) -> int: + for row in dataset.size(): + if dataset[row][0] == label: + return row + return -1 + +# Get a row by its label +func get_row(label : String) -> Array: + var index : int = get_row_index(label) + if index == -1 : + return [] + else: + return datamatrix.get_row(index) + +# Get a list of rows by their labels +func rows(labels : Array) -> Matrix: + var values : Array = [] + for label in labels: + values.append(get_row(label)) + return Matrix.new(values) + +# Get a row by its index +func get_irow(index : int) -> Array: + return datamatrix.get_row(index) + +# Get a list of rows by their indexes +func get_irows(indexes : PoolIntArray) -> Array: + var values : Array = [] + for index in indexes: + values.append(datamatrix.get_row(index)) + return values + +# Returns a a group of rows or a group of columns, using indexes or names +# dataset["0;5"] ---> Returns an array containing all rows from the 1st to the 4th +# dataset["0:5"] ---> Returns an array containing all columns from the 1st to the 4th +# dataset["label0;label5"] ---> Returns an array containing all row from the one with label == "label0" to the one with label == "label5" +# dataset["header0:header0"] ---> Returns an array containing all columns from the one with label == "label0" to the one with label == "label5" +func _get(_property : String): + # ":" --> Columns + if ":" in _property: + var property : PoolStringArray = _property.split(":") + if (property[0]).is_valid_integer(): + if property[1] == "*": + return get_icolumns(range(property[0] as int, headers.size()-1)) + else: + return get_icolumns(range(property[0] as int, property[1] as int +1)) + else: + if property[1] == "*": + return get_icolumns(range(get_column_index(property[0]), headers.size()-1)) + else: + return get_icolumns(range(get_column_index(property[0]), get_column_index(property[1]))) + # ";" --> Rows + elif ";" in _property: + var property : PoolStringArray = _property.split(";") + if (property[0]).is_valid_integer(): + return get_irows(range(property[0] as int, property[1] as int + 1 )) + else: + return get_irows(range(get_row_index(property[0]), get_row_index(property[1]))) + elif "," in _property: + var property : PoolStringArray = _property.split(",") + else: + if (_property as String).is_valid_integer(): + return get_icolumn(_property as int) + else: + return get_column(_property) diff --git a/addons/easy_charts/Utilities/classes/structures/matrix.gd b/addons/easy_charts/Utilities/classes/structures/matrix.gd new file mode 100644 index 0000000..68cd4e7 --- /dev/null +++ b/addons/easy_charts/Utilities/classes/structures/matrix.gd @@ -0,0 +1,85 @@ +tool +extends Resource +class_name Matrix + +var values : Array = [] + +func _init(matrix : Array = []) -> void: + values = matrix + +func insert_row(row : Array, index : int = values.size()) -> void: + assert(row.size() == values[0].size(), "the row size must match matrix row size") + values.insert(index, row) + +func insert_column(column : Array, index : int = values[0].size()) -> void: + assert(column.size() == values.size(), "the column size must match matrix column size") + for row_idx in column.size(): + values[row_idx].insert(index, column[row_idx]) + +func to_array() -> Array: + return values.duplicate(true) + +func get_size() -> Vector2: + return Vector2(values.size(), values[0].size()) + +func rows() -> int: + return values.size() + +func columns() -> int: + return values[0].size() + +func get_column(column : int) -> Array: + assert(column < columns(), "index of the column requested (%s) exceedes matrix columns (%s)"%[column, columns()]) + var column_array : Array = [] + for row in values: + column_array.append(row[column]) + return column_array + +func get_columns(from : int, to : int) -> Array: + var values : Array = [] + for column in range(from, to): + values.append(get_column(column)) + return values +# return MatrixGenerator.from_array(values) + +func get_row(row : int) -> Array: + assert(row < rows(), "index of the row requested (%s) exceedes matrix rows (%s)"%[row, rows()]) + return values[row] + +func get_rows(from : int, to : int) -> Array: + return values.slice(from, to) +# return MatrixGenerator.from_array(values) + +func _to_string() -> String: + var last_string_len : int + for row in values: + for column in row: + var string_len : int = str(column).length() + last_string_len = string_len if string_len > last_string_len else last_string_len + var string : String = "\n" + for row_i in values.size(): + for column_i in values[row_i].size(): + string+="%*s" % [last_string_len+1 if column_i!=0 else last_string_len, values[row_i][column_i]] + string+="\n" + return string + +# -------------- +func _get(_property : String): + # ":" --> Columns + if ":" in _property: + var property : PoolStringArray = _property.split(":") + var from : PoolStringArray = property[0].split(",") + var to : PoolStringArray = property[1].split(",") + elif "," in _property: + var property : PoolStringArray = _property.split(",") + if property.size() == 2: + return get_row(property[0] as int)[property[1] as int] + else: + if (_property as String).is_valid_integer(): + return get_row(_property as int) + + + + + + diff --git a/addons/easy_charts/Utilities/Data/matrix_generator.gd b/addons/easy_charts/Utilities/classes/structures/matrix_generator.gd similarity index 82% rename from addons/easy_charts/Utilities/Data/matrix_generator.gd rename to addons/easy_charts/Utilities/classes/structures/matrix_generator.gd index faa71d4..1bad6dc 100644 --- a/addons/easy_charts/Utilities/Data/matrix_generator.gd +++ b/addons/easy_charts/Utilities/classes/structures/matrix_generator.gd @@ -3,7 +3,7 @@ extends Reference class_name MatrixGenerator # Generates a Matrix with random values between [from; to] with a given @size (rows, columns) -static func random_float_range(size : Vector2, from : float, to : float, _seed : int = 1234) -> Matrix: +static func random_float_range(from : float, to : float, size : Vector2, _seed : int = 1234) -> Matrix: seed(_seed) randomize() var array : Array = [] @@ -20,12 +20,13 @@ static func from_array(array : Array = []) -> Matrix: return Matrix.new(matrix) # Generates a sub-Matrix giving a Matrix, a @from Array [row_i, column_i] and a @to Array [row_j, column_j] -static func sub_matrix(_matrix : Matrix, from : Array, to : Array) -> Matrix: - if to[0] > _matrix.get_size().x or to[1] > _matrix.get_size().y: - printerr("%s is not an acceptable size for the submatrix, giving a matrix of size %s"%[to, _matrix.get_size()]) - return Matrix.new() +static func sub_matrix(_matrix : Matrix, from : PoolIntArray, to : PoolIntArray) -> Matrix: + assert( not (to[0] > _matrix.rows() or to[1] > _matrix.columns()), + "%s is not an acceptable size for the submatrix, giving a matrix of size %s"%[to, _matrix.get_size()]) var array : Array = [] - for rows_i in range(from[0],to[0]): array.append(_matrix.to_array()[rows_i].slice(from[1], to[1])) + var rows : Array = _matrix.get_rows(from[0], to[0]) + for row in rows: + array.append(row.slice(from[1], to[1])) return Matrix.new(array) # Duplicates a given Matrix @@ -70,6 +71,7 @@ static func hadamard(_matrix1 : Matrix, _matrix2 : Matrix) -> Matrix: for x in range(_matrix1.to_array().size()): var row : Array = [] for y in range(_matrix1.to_array()[x].size()): + assert(typeof(_matrix1.to_array()[x][y]) != TYPE_STRING and typeof(_matrix2.to_array()[x][y]) != TYPE_STRING, "can't apply operations over a Matrix of Strings") row.append(_matrix1.to_array()[x][y] * _matrix2.to_array()[x][y]) array.append(row) return Matrix.new(array) @@ -90,6 +92,3 @@ static func multiply_float(_matrix1 : Matrix, _float : float) -> Matrix: for y in range(_matrix1.to_array()[x].size()): array[x][y]*=_float return Matrix.new(array) - - - diff --git a/addons/easy_charts/Utilities/Point/point.gd b/addons/easy_charts/Utilities/components/point/point.gd similarity index 100% rename from addons/easy_charts/Utilities/Point/point.gd rename to addons/easy_charts/Utilities/components/point/point.gd diff --git a/addons/easy_charts/Utilities/Point/point.tscn b/addons/easy_charts/Utilities/components/point/point.tscn similarity index 83% rename from addons/easy_charts/Utilities/Point/point.tscn rename to addons/easy_charts/Utilities/components/point/point.tscn index 7ebbd0d..81ba26a 100644 --- a/addons/easy_charts/Utilities/Point/point.tscn +++ b/addons/easy_charts/Utilities/components/point/point.tscn @@ -1,7 +1,6 @@ [gd_scene load_steps=2 format=2] -[ext_resource path="res://addons/easy_charts/Utilities/Point/point.gd" type="Script" id=1] - +[ext_resource path="res://addons/easy_charts/utilities/components/point/point.gd" type="Script" id=1] [node name="Point" type="Control"] margin_left = -13.0 @@ -13,6 +12,7 @@ script = ExtResource( 1 ) __meta__ = { "_edit_use_anchors_": false } + [connection signal="gui_input" from="." to="." method="_on_Point_gui_input"] [connection signal="mouse_entered" from="." to="." method="_on_Point_mouse_entered"] [connection signal="mouse_exited" from="." to="." method="_on_Point_mouse_exited"] diff --git a/addons/easy_charts/Utilities/Rect/Rect.gd b/addons/easy_charts/Utilities/components/rect/rect.gd similarity index 100% rename from addons/easy_charts/Utilities/Rect/Rect.gd rename to addons/easy_charts/Utilities/components/rect/rect.gd diff --git a/addons/easy_charts/Utilities/Rect/Rect.tscn b/addons/easy_charts/Utilities/components/rect/rect.tscn similarity index 75% rename from addons/easy_charts/Utilities/Rect/Rect.tscn rename to addons/easy_charts/Utilities/components/rect/rect.tscn index 466bbb9..60509e0 100644 --- a/addons/easy_charts/Utilities/Rect/Rect.tscn +++ b/addons/easy_charts/Utilities/components/rect/rect.tscn @@ -1,11 +1,12 @@ [gd_scene load_steps=2 format=2] -[ext_resource path="res://addons/easy_charts/Utilities/Rect/Rect.gd" type="Script" id=1] +[ext_resource path="res://addons/easy_charts/utilities/components/rect/rect.gd" type="Script" id=1] [node name="Rect" type="Control"] script = ExtResource( 1 ) __meta__ = { "_edit_use_anchors_": false } + [connection signal="mouse_entered" from="." to="." method="_on_Rect_mouse_entered"] [connection signal="mouse_exited" from="." to="." method="_on_Rect_mouse_exited"] diff --git a/addons/easy_charts/Utilities/Slice/slice.gd b/addons/easy_charts/Utilities/components/slice/slice.gd similarity index 100% rename from addons/easy_charts/Utilities/Slice/slice.gd rename to addons/easy_charts/Utilities/components/slice/slice.gd diff --git a/addons/easy_charts/Utilities/Legend/function_legend.gd b/addons/easy_charts/Utilities/containers/legend/function_legend.gd similarity index 100% rename from addons/easy_charts/Utilities/Legend/function_legend.gd rename to addons/easy_charts/Utilities/containers/legend/function_legend.gd diff --git a/addons/easy_charts/Utilities/Legend/function_legend.tscn b/addons/easy_charts/Utilities/containers/legend/function_legend.tscn similarity index 66% rename from addons/easy_charts/Utilities/Legend/function_legend.tscn rename to addons/easy_charts/Utilities/containers/legend/function_legend.tscn index 3b86a6a..8ee6c53 100644 --- a/addons/easy_charts/Utilities/Legend/function_legend.tscn +++ b/addons/easy_charts/Utilities/containers/legend/function_legend.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=2] -[ext_resource path="res://addons/easy_charts/Utilities/Legend/function_legend.gd" type="Script" id=1] +[ext_resource path="res://addons/easy_charts/utilities/containers/legend/function_legend.gd" type="Script" id=1] [node name="FunctionLegend" type="VBoxContainer"] margin_right = 80.0 @@ -15,8 +15,7 @@ __meta__ = { margin_top = 2.0 margin_right = 80.0 margin_bottom = 16.0 -custom_colors/font_color = Color( 0.184314, 0.192157, 0.262745, 1 ) -text = "Function" +custom_colors/font_color = Color( 0, 0, 0, 1 ) align = 1 valign = 1 @@ -25,4 +24,4 @@ margin_top = 20.0 margin_right = 80.0 margin_bottom = 23.0 rect_min_size = Vector2( 15, 3 ) -color = Color( 0.184314, 0.192157, 0.262745, 1 ) +color = Color( 0, 0, 0, 1 ) diff --git a/addons/easy_charts/Utilities/Scripts/utilities.gd b/addons/easy_charts/Utilities/scripts/ec_utilities.gd similarity index 84% rename from addons/easy_charts/Utilities/Scripts/utilities.gd rename to addons/easy_charts/Utilities/scripts/ec_utilities.gd index d4eabb8..d25d83b 100644 --- a/addons/easy_charts/Utilities/Scripts/utilities.gd +++ b/addons/easy_charts/Utilities/scripts/ec_utilities.gd @@ -1,6 +1,8 @@ tool extends Node +var alphabet : String = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" + var plugin_name : String = "Easy Charts" var templates : Dictionary = {} var chart_types : Dictionary = { @@ -14,8 +16,6 @@ var chart_types : Dictionary = { func _ready(): templates = _load_templates() -# _print_message("Templates loaded") - func _print_message(message : String, type : int = 0): match type: 0: @@ -35,3 +35,6 @@ func get_template(template_index : int): func get_chart_type(chart_type : int): return chart_types.get(chart_types.keys()[chart_type]) + +func get_letter_index(index : int) -> String: + return alphabet.split(" ")[index] diff --git a/addons/easy_charts/ControlChart/ColumnChart/column_chart.gd b/addons/easy_charts/control_charts/ColumnChart/column_chart.gd similarity index 65% rename from addons/easy_charts/ControlChart/ColumnChart/column_chart.gd rename to addons/easy_charts/control_charts/ColumnChart/column_chart.gd index cd07cdb..f922886 100644 --- a/addons/easy_charts/ControlChart/ColumnChart/column_chart.gd +++ b/addons/easy_charts/control_charts/ColumnChart/column_chart.gd @@ -20,147 +20,147 @@ values of more than one measured variable. # --------------------- func _get_property_list(): - return [ - # Chart Properties - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_CATEGORY, - "name": "ColumnChart", - "type": TYPE_STRING - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Properties/are_values_columns", - "type": TYPE_BOOL - }, - { - "hint": PROPERTY_HINT_RANGE, - "hint_string": "-1,100,1", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Properties/labels_index", - "type": TYPE_INT - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Properties/show_x_values_as_labels", - "type": TYPE_BOOL - }, - { - "hint": PROPERTY_HINT_RANGE, - "hint_string": "1,20,0.5", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Properties/column_width", - "type": TYPE_REAL - }, - { - "hint": PROPERTY_HINT_RANGE, - "hint_string": "0,10,0.5", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Properties/column_gap", - "type": TYPE_REAL - }, - - # Chart Display - { - "hint": PROPERTY_HINT_RANGE, - "hint_string": "0.1,10", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Display/x_decim", - "type": TYPE_REAL - }, - { - "hint": PROPERTY_HINT_RANGE, - "hint_string": "0.001,1,0.001", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Display/y_decim", - "type": TYPE_REAL - }, - - # Chart Style - { - "hint": 24, - "hint_string": "%d/%d:%s"%[TYPE_INT, PROPERTY_HINT_ENUM, - PoolStringArray(PointShapes.keys()).join(",")], - "name": "Chart_Style/points_shape", - "type": TYPE_ARRAY, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/function_colors", - "type": TYPE_COLOR_ARRAY - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/box_color", - "type": TYPE_COLOR - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/v_lines_color", - "type": TYPE_COLOR - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/h_lines_color", - "type": TYPE_COLOR - }, - { - "class_name": "Font", - "hint": PROPERTY_HINT_RESOURCE_TYPE, - "hint_string": "Font", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/font", - "type": TYPE_OBJECT - }, - { - "class_name": "Font", - "hint": PROPERTY_HINT_RESOURCE_TYPE, - "hint_string": "Font", - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/bold_font", - "type": TYPE_OBJECT - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/font_color", - "type": TYPE_COLOR - }, - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/use_template", - "type": TYPE_BOOL - }, - { - "hint": PROPERTY_HINT_ENUM, - "hint_string": PoolStringArray(ECUtilities.templates.keys()).join(","), - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Style/template", - "type": TYPE_INT - }, - - # Chart Modifiers - { - "hint": PROPERTY_HINT_NONE, - "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, - "name": "Chart_Modifiers/invert_chart", - "type": TYPE_BOOL - }, - ] + return [ + # Chart Properties + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_CATEGORY, + "name": "ColumnChart", + "type": TYPE_STRING + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Properties/are_values_columns", + "type": TYPE_BOOL + }, + { + "hint": PROPERTY_HINT_RANGE, + "hint_string": "-1,100,1", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Properties/labels_index", + "type": TYPE_INT + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Properties/show_x_values_as_labels", + "type": TYPE_BOOL + }, + { + "hint": PROPERTY_HINT_RANGE, + "hint_string": "1,20,0.5", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Properties/column_width", + "type": TYPE_REAL + }, + { + "hint": PROPERTY_HINT_RANGE, + "hint_string": "0,10,0.5", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Properties/column_gap", + "type": TYPE_REAL + }, + + # Chart Display + { + "hint": PROPERTY_HINT_RANGE, + "hint_string": "0.1,10", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Display/x_decim", + "type": TYPE_REAL + }, + { + "hint": PROPERTY_HINT_RANGE, + "hint_string": "0.001,1,0.001", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Display/y_decim", + "type": TYPE_REAL + }, + + # Chart Style + { + "hint": 24, + "hint_string": "%d/%d:%s"%[TYPE_INT, PROPERTY_HINT_ENUM, + PoolStringArray(Point.SHAPES.keys()).join(",")], + "name": "Chart_Style/points_shape", + "type": TYPE_ARRAY, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/function_colors", + "type": TYPE_COLOR_ARRAY + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/box_color", + "type": TYPE_COLOR + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/v_lines_color", + "type": TYPE_COLOR + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/h_lines_color", + "type": TYPE_COLOR + }, + { + "class_name": "Font", + "hint": PROPERTY_HINT_RESOURCE_TYPE, + "hint_string": "Font", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/font", + "type": TYPE_OBJECT + }, + { + "class_name": "Font", + "hint": PROPERTY_HINT_RESOURCE_TYPE, + "hint_string": "Font", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/bold_font", + "type": TYPE_OBJECT + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/font_color", + "type": TYPE_COLOR + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/use_template", + "type": TYPE_BOOL + }, + { + "hint": PROPERTY_HINT_ENUM, + "hint_string": PoolStringArray(ECUtilities.templates.keys()).join(","), + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/template", + "type": TYPE_INT + }, + + # Chart Modifiers + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Modifiers/invert_chart", + "type": TYPE_BOOL + }, + ] func build_chart(): SIZE = get_size() origin = Vector2(OFFSET.x,SIZE.y-OFFSET.y) -func structure_datas(database : Array): +func structure_data(database : Array): # @labels_index can be either a column or a row relative to x values are_values_columns = (invert_chart != are_values_columns) if are_values_columns: @@ -297,7 +297,7 @@ func calculate_coordinates(): point_positions[cluster].append(Vector2(OFFSET.x/2 + column_width/2 + (column_width + column_gap)*cluster + x_coordinates[y]+origin.x,origin.y-y_coordinates[cluster][y])) func _draw(): - clear_points() + clean_points() draw_grid() draw_chart_outlines() diff --git a/addons/easy_charts/ControlChart/ColumnChart/column_chart.tscn b/addons/easy_charts/control_charts/ColumnChart/column_chart.tscn similarity index 80% rename from addons/easy_charts/ControlChart/ColumnChart/column_chart.tscn rename to addons/easy_charts/control_charts/ColumnChart/column_chart.tscn index 8ebc5a5..777a742 100644 --- a/addons/easy_charts/ControlChart/ColumnChart/column_chart.tscn +++ b/addons/easy_charts/control_charts/ColumnChart/column_chart.tscn @@ -1,9 +1,14 @@ [gd_scene load_steps=4 format=2] +<<<<<<<< HEAD:addons/easy_charts/ControlChart/ColumnChart/column_chart.tscn [ext_resource path="res://addons/easy_charts/Utilities/Point/point_data.tscn" type="PackedScene" id=1] [ext_resource path="res://addons/easy_charts/ControlChart/ColumnChart/column_chart.gd" type="Script" id=2] +======== +[ext_resource path="res://addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.tscn" type="PackedScene" id=1] +[ext_resource path="res://addons/easy_charts/control_charts/ColumnChart/column_chart.gd" type="Script" id=2] +>>>>>>>> dev:addons/easy_charts/control_charts/ColumnChart/column_chart.tscn [sub_resource type="Theme" id=1] @@ -81,13 +86,19 @@ __meta__ = { "_edit_use_anchors_": true } -[node name="PointData" parent="." instance=ExtResource( 1 )] +[node name="CanvasLayer" type="CanvasLayer" parent="."] -[node name="PointData" parent="PointData" index="0"] +[node name="DataTooltip" parent="CanvasLayer" instance=ExtResource( 1 )] +margin_left = -455.833 +margin_top = 690.354 +margin_right = -455.969 +margin_bottom = 691.154 + +[node name="PointData" parent="CanvasLayer/DataTooltip" index="0"] margin_left = -593.381 margin_top = -80.9071 margin_right = -593.517 margin_bottom = -80.107 theme = SubResource( 1 ) -[editable path="PointData"] +[editable path="CanvasLayer/DataTooltip"] diff --git a/addons/easy_charts/ControlChart/LineChart/line_chart.gd b/addons/easy_charts/control_charts/LineChart/line_chart.gd similarity index 99% rename from addons/easy_charts/ControlChart/LineChart/line_chart.gd rename to addons/easy_charts/control_charts/LineChart/line_chart.gd index 6622bfe..45e758f 100644 --- a/addons/easy_charts/ControlChart/LineChart/line_chart.gd +++ b/addons/easy_charts/control_charts/LineChart/line_chart.gd @@ -70,7 +70,6 @@ func _set(property, value): func _draw(): - clear_points() draw_grid() draw_chart_outlines() if show_points: diff --git a/addons/easy_charts/ControlChart/LineChart/line_chart.tscn b/addons/easy_charts/control_charts/LineChart/line_chart.tscn similarity index 79% rename from addons/easy_charts/ControlChart/LineChart/line_chart.tscn rename to addons/easy_charts/control_charts/LineChart/line_chart.tscn index 4298044..f3f1d3a 100644 --- a/addons/easy_charts/ControlChart/LineChart/line_chart.tscn +++ b/addons/easy_charts/control_charts/LineChart/line_chart.tscn @@ -1,8 +1,7 @@ [gd_scene load_steps=4 format=2] -[ext_resource path="res://addons/easy_charts/Utilities/Point/point_data.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/easy_charts/ControlChart/LineChart/line_chart.gd" type="Script" id=4] - +[ext_resource path="res://addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.tscn" type="PackedScene" id=1] +[ext_resource path="res://addons/easy_charts/control_charts/LineChart/line_chart.gd" type="Script" id=4] [sub_resource type="Theme" id=1] @@ -32,7 +31,7 @@ Chart_Display/autoscale_x = true Chart_Display/x_decim = 1.0 Chart_Display/autoscale_y = true Chart_Display/y_decim = 1.0 -Chart_Style/points_shape = [ ] +Chart_Style/points_shape = [ 0 ] Chart_Style/function_colors = PoolColorArray( 0.117647, 0.117647, 0.117647, 1, 0.117647, 0.117647, 0.117647, 1, 0.117647, 0.117647, 0.117647, 1, 0.117647, 0.117647, 0.117647, 1 ) Chart_Style/function_line_width = 2 Chart_Style/box_color = Color( 0.117647, 0.117647, 0.117647, 1 ) @@ -84,13 +83,19 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="PointData" parent="." instance=ExtResource( 1 )] +[node name="CanvasLayer" type="CanvasLayer" parent="."] -[node name="PointData" parent="PointData" index="0"] -margin_left = -458.75 -margin_top = -164.504 -margin_right = -458.886 -margin_bottom = -163.704 +[node name="DataTooltip" parent="CanvasLayer" instance=ExtResource( 1 )] +margin_left = -50.9019 +margin_top = -37.7724 +margin_right = -51.0379 +margin_bottom = -36.9724 + +[node name="PointData" parent="CanvasLayer/DataTooltip" index="0"] +margin_left = -189.809 +margin_top = -60.3698 +margin_right = -189.947 +margin_bottom = -59.5707 theme = SubResource( 1 ) -[editable path="PointData"] +[editable path="CanvasLayer/DataTooltip"] diff --git a/addons/easy_charts/control_charts/PieChart/pie_chart.gd b/addons/easy_charts/control_charts/PieChart/pie_chart.gd new file mode 100644 index 0000000..60588ec --- /dev/null +++ b/addons/easy_charts/control_charts/PieChart/pie_chart.gd @@ -0,0 +1,226 @@ +tool +extends Chart +class_name PieChart + +var should_draw : bool = false +var area_angles : Array +var slices : Array +var areas : Array +var areas_interacted : Array + +class CustomSorter: + static func sort_ascending(a,b): + if a[1] < b[1]: + return true + return false + +func _get_property_list(): + return [ + # Chart Properties + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Properties/are_values_columns", + "type": TYPE_BOOL + }, + { + "hint": PROPERTY_HINT_RANGE, + "hint_string": "-1,100,1", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Properties/labels_index", + "type": TYPE_INT + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Properties/show_x_values_as_labels", + "type": TYPE_BOOL + }, + + # Chart Style + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/function_colors", + "type": TYPE_COLOR_ARRAY + }, + { + "class_name": "Font", + "hint": PROPERTY_HINT_RESOURCE_TYPE, + "hint_string": "Font", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/font", + "type": TYPE_OBJECT + }, + { + "class_name": "Font", + "hint": PROPERTY_HINT_RESOURCE_TYPE, + "hint_string": "Font", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/bold_font", + "type": TYPE_OBJECT + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/font_color", + "type": TYPE_COLOR + }, + { + "hint": PROPERTY_HINT_ENUM, + "hint_string": PoolStringArray(ECUtilities.templates.keys()).join(","), + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/template", + "type": TYPE_INT + }, + + # Chart Modifiers + { + "hint": PROPERTY_HINT_RANGE, + "hint_string": "0,360", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Modifiers/rotation", + "type": TYPE_REAL + }, + ] + + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass + +func plot_placeholder() -> void: + data = [ + ["United States",46], + ["Great Britain",27], + ["China",26], + ["Russia",19], + ["Germany",17] + ] + + function_colors = [ + Color.red, + Color.white, + Color.yellow, + Color.green, + Color.blue + ] + plot_from_array(data) + +func structure_data(database: Array): + # @labels_index can be either a column or a row relative to x values + clean_variables() + are_values_columns = invert_chart != are_values_columns + if are_values_columns: + for row in database.size(): + var t_vals: Array + for column in database[row].size(): + if column == labels_index: + var x_data = database[row][column] + if x_data.is_valid_float() or x_data.is_valid_integer(): + x_datas.append(x_data as float) + else: + x_datas.append(x_data.replace(",", ".") as float) + else: + if row != 0: + var y_data = database[row][column] + if y_data.is_valid_float() or y_data.is_valid_integer(): + t_vals.append(y_data as float) + else: + t_vals.append(y_data.replace(",", ".") as float) + else: + y_labels.append(str(database[row][column])) + if not t_vals.empty(): + y_datas.append(t_vals) + x_label = str(x_datas.pop_front()) + else: + for row in database.size(): + if row == labels_index: + x_datas = (database[row]) + x_label = x_datas.pop_front() as String + else: + var values = database[row] as Array + y_labels.append(values.pop_front() as String) + y_datas.append(values) + for data in y_datas: + for value in data.size(): + data[value] = data[value] as float + + +func build_chart(): + SIZE = get_size() + origin = SIZE/2 + radius = (SIZE.y/2 - 20) if SIZE.y < SIZE.x else (SIZE.x/2 - 20) + +func calculate_pass(): + var tot : float + for y_data in y_datas: tot+=y_data[0] + x_pass = 360/tot + +func calculate_coordinates(): + area_angles.clear() + slices.clear() + areas.clear() + var from : float = 0.0 + var to : float = y_datas[0][0]*x_pass + area_angles.append([from,to]) + for info in range(y_datas.size()): + slices.append(Slice.new(y_labels[info], str(y_datas[info][0]), from, to, x_label+" : "+x_datas[0], function_colors[info])) + areas.append(calculate_circle_arc_polygon(origin, radius, from + rotation, to + rotation, function_colors[info])) + from = to + to = (y_datas[info+1][0]*x_pass + from) if info < y_datas.size()-1 else (360) + area_angles.append([from, to]) + + create_legend() + +func calculate_circle_arc_polygon(center : Vector2, radius : float, angle_from : float, angle_to : float, color : Color) -> PoolVector2Array: + var nb_points : int = 32 + var points_arc : PoolVector2Array = PoolVector2Array() +# var chord_angle : float = ((angle_to - angle_from)/2)+angle_from +# angle_from += 0.2 +# angle_to -= 0.2 +# var displacement : Vector2 = Vector2(cos(deg2rad(chord_angle)), sin(deg2rad(chord_angle-180))).normalized()*10 +# print(displacement) +# center += displacement +# radius+=displacement.length() + points_arc.push_back(center) + var colors : PoolColorArray = PoolColorArray([color]) + for i in range(nb_points + 1): + var angle_point = deg2rad(angle_from + i * (angle_to - angle_from) / nb_points - 90) + points_arc.push_back(center + Vector2(cos(angle_point), sin(angle_point)) * radius) + return points_arc + +func _draw(): + _draw_areas() + + if mouse_on_slice: + _draw_arc(area_angles[mouse_on_area], mouse_on_area) + mouse_on_slice = false + +func _draw_arc(arc : Array, index : int): + var temp_color : Color = function_colors[index] + temp_color.a = 0.7 + draw_arc(origin, radius + 6, deg2rad(arc[0]-90 + rotation), deg2rad(arc[1]-90 + rotation), 32, temp_color, 4) + +func _draw_areas(): + for area_idx in range(areas.size()): + draw_polygon(areas[area_idx], [function_colors[area_idx]]) + +var mouse_on_area : int +var mouse_on_slice : bool = false + +func _gui_input(event : InputEvent): + if event is InputEventMouseMotion: + for area_idx in range(areas.size()): + if Geometry.is_point_in_polygon(event.global_position - get_global_transform().origin, areas[area_idx]): + mouse_on_slice = true + mouse_on_area = area_idx + show_slice_data(slices[area_idx]) + update() + + if not mouse_on_slice: + mouse_on_area = -1 + mouse_on_slice = false + hide_data() + update() diff --git a/addons/easy_charts/ControlChart/PieChart/pie_chart.tscn b/addons/easy_charts/control_charts/PieChart/pie_chart.tscn similarity index 64% rename from addons/easy_charts/ControlChart/PieChart/pie_chart.tscn rename to addons/easy_charts/control_charts/PieChart/pie_chart.tscn index a8e5b44..a0de0f2 100644 --- a/addons/easy_charts/ControlChart/PieChart/pie_chart.tscn +++ b/addons/easy_charts/control_charts/PieChart/pie_chart.tscn @@ -1,8 +1,13 @@ [gd_scene load_steps=3 format=2] +<<<<<<<< HEAD:addons/easy_charts/ControlChart/PieChart/pie_chart.tscn [ext_resource path="res://addons/easy_charts/ControlChart/PieChart/pie_chart.gd" type="Script" id=1] [ext_resource path="res://addons/easy_charts/Utilities/Point/point_data.tscn" type="PackedScene" id=2] +======== +[ext_resource path="res://addons/easy_charts/control_charts/PieChart/pie_chart.gd" type="Script" id=1] +[ext_resource path="res://addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.tscn" type="PackedScene" id=2] +>>>>>>>> dev:addons/easy_charts/control_charts/PieChart/pie_chart.tscn [node name="PieChart" type="Control"] @@ -16,7 +21,7 @@ __meta__ = { Chart_Properties/are_values_columns = false Chart_Properties/labels_index = 0 Chart_Properties/show_x_values_as_labels = true -Chart_Style/function_colors = PoolColorArray( 0.117647, 0.117647, 0.117647, 1, 0.117647, 0.117647, 0.117647, 1, 0.117647, 0.117647, 0.117647, 1, 0.117647, 0.117647, 0.117647, 1 ) +Chart_Style/function_colors = [ Color( 0.117647, 0.117647, 0.117647, 1 ) ] Chart_Style/font = null Chart_Style/bold_font = null Chart_Style/font_color = Color( 0.117647, 0.117647, 0.117647, 1 ) @@ -56,12 +61,18 @@ __meta__ = { "_edit_use_anchors_": true } -[node name="PointData" parent="." instance=ExtResource( 2 )] +[node name="CanvasLayer" type="CanvasLayer" parent="."] -[node name="PointData" parent="PointData" index="0"] +[node name="DataTooltip" parent="CanvasLayer" instance=ExtResource( 2 )] +margin_left = -492.874 +margin_top = 766.681 +margin_right = -493.01 +margin_bottom = 767.481 + +[node name="PointData" parent="CanvasLayer/DataTooltip" index="0"] margin_left = -314.458 margin_top = -189.587 margin_right = -314.559 margin_bottom = -188.787 -[editable path="PointData"] +[editable path="CanvasLayer/DataTooltip"] diff --git a/addons/easy_charts/control_charts/RadarChart/radar_chart.gd b/addons/easy_charts/control_charts/RadarChart/radar_chart.gd new file mode 100644 index 0000000..08b33da --- /dev/null +++ b/addons/easy_charts/control_charts/RadarChart/radar_chart.gd @@ -0,0 +1,286 @@ +tool +extends Chart +class_name RadarChart + +""" +[RadarChart] - General purpose node for Radar Charts +A radar chart is a graphical method of displaying multivariate data in the form +of a two-dimensional chart of three or more quantitative variables represented on axes +starting from the same point. The relative position and angle of the axes is typically +uninformative, but various heuristics, such as algorithms that plot data as the maximal +total area, can be applied to sort the variables (axes) into relative positions that reveal +distinct correlations, trade-offs, and a multitude of other comparative measures. + +/ source : Wikipedia / +""" + +func _get_property_list(): + return [ + # Chart Properties + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Properties/are_values_columns", + "type": TYPE_BOOL + }, + { + "hint": PROPERTY_HINT_RANGE, + "hint_string": "-1,100,1", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Properties/labels_index", + "type": TYPE_INT + }, + { + "hint": PROPERTY_HINT_RANGE, + "hint_string": "-1,100,1", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Properties/function_names_index", + "type": TYPE_INT + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Properties/use_height_as_radius", + "type": TYPE_BOOL + }, + { + "hint": PROPERTY_HINT_RANGE, + "hint_string": "0,2000", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Properties/radius", + "type": TYPE_REAL + }, + + # Chart Display + { + "hint": PROPERTY_HINT_RANGE, + "hint_string": "0.1,100", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Display/full_scale", + "type": TYPE_REAL + }, + + # Chart Style + { + "hint": 24, + "hint_string": "%d/%d:%s"%[TYPE_INT, PROPERTY_HINT_ENUM, + PoolStringArray(Point.SHAPES.keys()).join(",")], + "name": "Chart_Style/points_shape", + "type": TYPE_ARRAY, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/function_colors", + "type": TYPE_COLOR_ARRAY + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/outline_color", + "type": TYPE_COLOR + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/grid_color", + "type": TYPE_COLOR + }, + { + "class_name": "Font", + "hint": PROPERTY_HINT_RESOURCE_TYPE, + "hint_string": "Font", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/font", + "type": TYPE_OBJECT + }, + { + "class_name": "Font", + "hint": PROPERTY_HINT_RESOURCE_TYPE, + "hint_string": "Font", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/bold_font", + "type": TYPE_OBJECT + }, + { + "hint": PROPERTY_HINT_NONE, + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/font_color", + "type": TYPE_COLOR + }, + { + "hint": PROPERTY_HINT_ENUM, + "hint_string": PoolStringArray(ECUtilities.templates.keys()).join(","), + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Style/template", + "type": TYPE_INT + }, + { + "hint": PROPERTY_HINT_RANGE, + "hint_string": "0,360", + "usage": PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE, + "name": "Chart_Modifiers/rotation", + "type": TYPE_REAL + }, + ] + +func structure_data(database : Array): + # @x_values_index can be either a column or a row relative to x values + # @y_values can be either a column or a row relative to y values + are_values_columns = invert_chart != are_values_columns + match are_values_columns: + true: + for row in database.size(): + var t_row : Array = [] + for column in database[row].size(): + if row == labels_index: + if column == function_names_index: + pass + else: + x_labels.append(database[row][column]) + else: + if column == function_names_index: + y_labels.append(database[row][column]) + else: + if typeof(database[row][column]) == TYPE_INT or typeof(database[row][column]) == TYPE_REAL: + t_row.append(database[row][column] as float) + else: + t_row.append(database[row][column].replace(",", ".") as float) + if not t_row.empty(): + x_datas.append(t_row) + false: + for row in database.size(): + if row == function_names_index: + y_labels = database[row] as PoolStringArray + + var x_temp_datas : PoolRealArray = [] + for column in database[row].size(): + if column == labels_index: + x_labels.append(database[row][column] as String) + else: + x_temp_datas.append(database[row][column] as float) + x_datas.append(x_temp_datas) + + + if labels_index == -1 : + for data in x_datas[0].size(): + x_labels.append("Element %s" % data) + + if function_names_index == -1 : + for data in x_datas.size(): + y_labels.append("Function %s" % data) + +func build_chart(): + SIZE = get_size() + origin = OFFSET + SIZE/2 + +var radar_polygon : Array + +func calculate_pass() : + var ordered_max : Array + for data in x_datas : + var ordered_data : Array = data.duplicate() + ordered_data.sort() + ordered_max.append(ordered_data.pop_back()) + ordered_max.sort() + var max_value : float = ordered_max.pop_back() + var dist = full_scale * pow(10.0,str(max_value).length()-2) + var multi = 0 + var value = dist * multi + x_chors.append(value as String) + while value < max_value: + multi+=1 + value = dist * multi + x_chors.append(value as String) + +func calculate_coordinates(): + for chor in x_chors.size(): + var inner_polyline : PoolVector2Array + var scalar_factor : float = (x_chors[chor] as float/x_chors.back() as float) + for function in functions: + var angle : float = ((2 * PI * function) / functions) - PI /2 + deg2rad(rotation) + var x_coordinate : float = (radius if (not use_height_as_radius and radius>>>>>>> dev:addons/easy_charts/control_charts/RadarChart/radar_chart.tscn [node name="RadarChart" type="Control"] anchor_right = 1.0 anchor_bottom = 1.0 rect_min_size = Vector2( 70, 50 ) mouse_filter = 2 -script = ExtResource( 2 ) +script = ExtResource( 1 ) __meta__ = { "_edit_use_anchors_": false, "_editor_description_": "[RadarChart] - General purpose node for Radar Charts @@ -30,9 +35,9 @@ Chart_Properties/use_height_as_radius = false Chart_Properties/radius = 150.0 Chart_Display/full_scale = 1.0 Chart_Style/points_shape = [ 0 ] -Chart_Style/function_colors = PoolColorArray( 0.117647, 0.117647, 0.117647, 1, 0.117647, 0.117647, 0.117647, 1, 0.117647, 0.117647, 0.117647, 1, 0.117647, 0.117647, 0.117647, 1 ) +Chart_Style/function_colors = [ Color( 0.117647, 0.117647, 0.117647, 1 ) ] Chart_Style/outline_color = Color( 0.117647, 0.117647, 0.117647, 1 ) -Chart_Style/grid_color = Color( 0.792157, 0.792157, 0.792157, 1 ) +Chart_Style/grid_color = Color( 0.117647, 0.117647, 0.117647, 1 ) Chart_Style/font = null Chart_Style/bold_font = null Chart_Style/font_color = Color( 0.117647, 0.117647, 0.117647, 1 ) @@ -75,14 +80,10 @@ __meta__ = { "_edit_use_anchors_": true } -[node name="PointData" parent="." instance=ExtResource( 1 )] +[node name="CanvasLayer" type="CanvasLayer" parent="."] -[node name="PointData" parent="PointData" index="0"] -visible = false -margin_left = -448.644 -margin_top = 721.085 -margin_right = -448.781 -margin_bottom = 721.884 -theme = SubResource( 1 ) - -[editable path="PointData"] +[node name="DataTooltip" parent="CanvasLayer" instance=ExtResource( 2 )] +margin_left = -473.792 +margin_top = 853.111 +margin_right = -473.928 +margin_bottom = 853.911 diff --git a/addons/easy_charts/control_charts/ScatterChart/scatter_chart.gd b/addons/easy_charts/control_charts/ScatterChart/scatter_chart.gd new file mode 100644 index 0000000..f12ac48 --- /dev/null +++ b/addons/easy_charts/control_charts/ScatterChart/scatter_chart.gd @@ -0,0 +1,29 @@ +tool +extends ScatterChartBase +class_name ScatterChart + +""" +[ScatterChart] - General purpose node for Scatter Charts + +A scatter plot (also called a scatterplot, scatter graph, scatter chart, scattergram, or scatter diagram) + is a type of plot or mathematical diagram using Cartesian coordinates to display values for typically two variables +for a set of data. If the points are coded (color/shape/size), one additional variable can be displayed. +The data are displayed as a collection of points, each having the value of one variable determining the position on +the horizontal axis and the value of the other variable determining the position on the vertical axis. + +/ source : Wikipedia / +""" + +# --------------------- + +func _get_property_list(): + property_list[0].name = "ScatterChart" + return property_list + + +func _draw(): + clean_points() + draw_grid() + draw_chart_outlines() + draw_points() + draw_treshold() diff --git a/addons/easy_charts/ControlChart/ScatterChart/scatter_chart.tscn b/addons/easy_charts/control_charts/ScatterChart/scatter_chart.tscn similarity index 73% rename from addons/easy_charts/ControlChart/ScatterChart/scatter_chart.tscn rename to addons/easy_charts/control_charts/ScatterChart/scatter_chart.tscn index b9ca693..c8e91e9 100644 --- a/addons/easy_charts/ControlChart/ScatterChart/scatter_chart.tscn +++ b/addons/easy_charts/control_charts/ScatterChart/scatter_chart.tscn @@ -1,17 +1,22 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=3 format=2] +<<<<<<<< HEAD:addons/easy_charts/ControlChart/ScatterChart/scatter_chart.tscn [ext_resource path="res://addons/easy_charts/Utilities/Point/point_data.tscn" type="PackedScene" id=1] [ext_resource path="res://addons/easy_charts/ControlChart/ScatterChart/scatter_chart.gd" type="Script" id=2] [sub_resource type="Theme" id=1] +======== +[ext_resource path="res://addons/easy_charts/control_charts/ScatterChart/scatter_chart.gd" type="Script" id=1] +[ext_resource path="res://addons/easy_charts/utilities/containers/data_tooltip/data_tooltip.tscn" type="PackedScene" id=2] +>>>>>>>> dev:addons/easy_charts/control_charts/ScatterChart/scatter_chart.tscn [node name="ScatterChart" type="Control"] anchor_right = 1.0 anchor_bottom = 1.0 rect_min_size = Vector2( 70, 50 ) mouse_filter = 2 -script = ExtResource( 2 ) +script = ExtResource( 1 ) __meta__ = { "_edit_use_anchors_": false, "_editor_description_": "[ScatterChart] - General purpose node for Scatter Charts @@ -22,6 +27,7 @@ for a set of data. If the points are coded (color/shape/size), one additional va The data are displayed as a collection of points, each having the value of one variable determining the position on the horizontal axis and the value of the other variable determining the position on the vertical axis." } +<<<<<<<< HEAD:addons/easy_charts/ControlChart/ScatterChart/scatter_chart.tscn Chart_Properties/are_values_columns = false Chart_Properties/labels_index = 0 Chart_Properties/show_x_values_as_labels = false @@ -43,6 +49,8 @@ Chart_Style/template = 0 Chart_Modifiers/treshold = Vector2( 0, 0 ) Chart_Modifiers/only_disp_values = Vector2( 0, 0 ) Chart_Modifiers/invert_chart = false +======== +>>>>>>>> dev:addons/easy_charts/control_charts/ScatterChart/scatter_chart.tscn [node name="Background" type="ColorRect" parent="."] visible = false @@ -79,8 +87,9 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="PointData" parent="." instance=ExtResource( 1 )] +[node name="CanvasLayer" type="CanvasLayer" parent="."] +<<<<<<<< HEAD:addons/easy_charts/ControlChart/ScatterChart/scatter_chart.tscn [node name="PointData" parent="PointData" index="0"] margin_left = -510.384 margin_top = -148.79 @@ -89,3 +98,10 @@ margin_bottom = -147.99 theme = SubResource( 1 ) [editable path="PointData"] +======== +[node name="DataTooltip" parent="CanvasLayer" instance=ExtResource( 2 )] +margin_left = 264.788 +margin_top = 446.78 +margin_right = 264.65 +margin_bottom = 447.58 +>>>>>>>> dev:addons/easy_charts/control_charts/ScatterChart/scatter_chart.tscn diff --git a/addons/easy_charts/file.samples/linechart (columns).csv.import b/addons/easy_charts/file.samples/linechart (columns).csv.import index 15bbc92..8dd0c09 100644 --- a/addons/easy_charts/file.samples/linechart (columns).csv.import +++ b/addons/easy_charts/file.samples/linechart (columns).csv.import @@ -1,13 +1,3 @@ [remap] -importer="csv_translation" -type="Translation" -valid=false - -[deps] - -source_file="res://addons/easy_charts/file.samples/linechart (columns).csv" -[params] - -compress=true -delimiter=0 +importer="keep" diff --git a/addons/easy_charts/file.samples/linechart.csv b/addons/easy_charts/file.samples/linechart.csv new file mode 100644 index 0000000..412e7e8 --- /dev/null +++ b/addons/easy_charts/file.samples/linechart.csv @@ -0,0 +1,2 @@ +Date; 21/03/03;21/03/2008;21/03/2010;21/03/2011;21/03/2012;21/03/2013;21/03/2014;21/03/2015;21/03/2016;21/03/2018 +Score;3;8;20;18;28;31;27;38;36;46 diff --git a/addons/easy_charts/file.samples/linechart.csv.import b/addons/easy_charts/file.samples/linechart.csv.import new file mode 100644 index 0000000..239c88e --- /dev/null +++ b/addons/easy_charts/file.samples/linechart.csv.import @@ -0,0 +1,10 @@ +[remap] + +importer="csv" +type="TextFile" + +[deps] + +source_file="res://addons/easy_charts/file.samples/linechart.csv" +[params] + diff --git a/addons/easy_charts/plugin.gd b/addons/easy_charts/plugin.gd index c6083f7..0a88807 100644 --- a/addons/easy_charts/plugin.gd +++ b/addons/easy_charts/plugin.gd @@ -2,11 +2,12 @@ tool extends EditorPlugin func _enter_tree(): - add_autoload_singleton("Utilities","res://addons/easy_charts/Utilities/Scripts/utilities.gd") - add_custom_type("Chart","Control", load("res://addons/easy_charts/Utilities/Scripts/chart.gd"), preload("Utilities/icons/linechart.svg")) - add_custom_type("Chart2D","Node2D", load("res://addons/easy_charts/Utilities/Scripts/chart2d.gd"), preload("Utilities/icons/linechart2d.svg")) + add_autoload_singleton("ECUtilities","res://addons/easy_charts/utilities/scripts/ec_utilities.gd") + add_custom_type("Chart","Control", load("res://addons/easy_charts/utilities/classes/base/chart.gd"), preload("utilities/icons/linechart.svg")) + add_custom_type("Chart2D","Node2D", load("res://addons/easy_charts/utilities/classes/base/chart2d.gd"), preload("utilities/icons/linechart2d.svg")) func _exit_tree(): remove_custom_type("Chart") remove_custom_type("Chart2D") - remove_autoload_singleton("Utilities") + remove_autoload_singleton("ECUtilities") + diff --git a/imgs/code_snapshot.gif b/imgs/code_snapshot.gif new file mode 100644 index 0000000000000000000000000000000000000000..9602bf0a69243f2c44d232c8266c9bb964c1d1f9 GIT binary patch literal 782582 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

r;BG#?wk6ol%$iewQ^ohZF-#9zrZIb(mb?i` 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 Q`3+hQ*XO!(DPHP@%8oaNe#hX2gZ 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ⅈIxaOaJ#VXh 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%0DRDKRD)G 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

kngH}=P} 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⁣?BUJuQZTqLNI3CKqKkQ+bS}Vr;v+o6a3zp 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�|ae)Yb@6jruP^63{Z)+b@^Mt-jW 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�2B#_7&%z4__fo97L*a83zu%8z!4QL#o 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

g|)}|a&&33zoUU$bTH$W^x&xPn>Bw%@Q~Dg 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 LBU}ji;Q9Xnvxi9L literal 0 HcmV?d00001 diff --git a/imgs/screenshot_2.png.import b/imgs/screenshot_2.png.import new file mode 100644 index 0000000..858f739 --- /dev/null +++ b/imgs/screenshot_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/screenshot_2.png-00ef4b140fda2b59dc0a00f84f140a14.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://imgs/screenshot_2.png" +dest_files=[ "res://.import/screenshot_2.png-00ef4b140fda2b59dc0a00f84f140a14.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/imgs/screenshot_3.png b/imgs/screenshot_3.png new file mode 100644 index 0000000000000000000000000000000000000000..446ac3237844e8d246fc59f509956e6779f752e0 GIT binary patch literal 10896 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�2B#_7&%z4__fo97L*a83zu%8z!4QL#o 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 literal 0 HcmV?d00001 diff --git a/imgs/screenshot_4.png.import b/imgs/screenshot_4.png.import new file mode 100644 index 0000000..8c54121 --- /dev/null +++ b/imgs/screenshot_4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/screenshot_4.png-c6adff16fa5e61b3ce72172e14b45dd7.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://imgs/screenshot_4.png" +dest_files=[ "res://.import/screenshot_4.png-c6adff16fa5e61b3ce72172e14b45dd7.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/imgs/snapshot.html b/imgs/snapshot.html new file mode 100644 index 0000000..07f3eee --- /dev/null +++ b/imgs/snapshot.html @@ -0,0 +1,278 @@ + +

+
+tool
+class_name CodeSnapshotInstance
+extends Control
+
+onready var viewport_container : ViewportContainer = $VSplitContainer/ViewportContainer
+onready var viewport : Viewport = viewport_container.get_child(0)
+onready var snapshot_container : ColorRect = viewport.get_node("Background")
+onready var settings_container : VBoxContainer = $VSplitContainer/Settings
+
+onready var script_container : PanelContainer = snapshot_container.get_node("ScriptContainer")
+onready var script_edit : TextEdit = script_container.get_node("VBox/ScriptEdit")
+onready var template_menu : PopupMenu = settings_container.get_node("Template/TemplateMenu").get_popup()
+onready var colors_list : VBoxContainer = settings_container.get_node("Colors/ColorsList")
+onready var properties_list : VBoxContainer = settings_container.get_node("Properties/PropertiesList")
+onready var from : LineEdit = settings_container.get_node("Properties/PropertiesList/from_line_to_line/from")
+onready var to : LineEdit = settings_container.get_node("Properties/PropertiesList/from_line_to_line/to")
+onready var save : FileDialog = $Save
+
+var script_editor : ScriptEditor
+var editor_settings : EditorSettings
+
+var template_dir : String = "res://addons/code-snapshot/godot-syntax-themes/"
+var templates : PoolStringArray
+var template_file : String = "Darcula"
+
+var keywords : Array = ["self", "if", "else", "elif", "or", "and", "yield","func", "onready", "export", "var", "tool", "extends", "void", "null", "true", "false", "class_name", "print", "return", "pass", "match", "in", "define", "const"]
+var types : PoolStringArray = ClassDB.get_class_list()
+var from_line_to : Array = [-1, -1]
+var lines_count_as_min_size : bool = true
+var exporting_extension : String 
+var path_to_save : String
+
+func set_editor_settings(settings : EditorSettings):
+	editor_settings = settings
+
+func set_script_editor(editor : ScriptEditor):
+	script_editor = editor
+	script_editor.connect("editor_script_changed", self, "_on_script_changed")
+	_on_script_changed(script_editor.get_current_script())
+
+func hide_nodes():
+	colors_list.hide()
+	properties_list.hide()
+
+func _ready() -> void:
+	yield(get_tree(),"idle_frame")
+#	viewport.set_process_input(true)
+	script_edit.set_text("")
+	template_menu.connect("index_pressed", self, "_on_index_pressed")
+	hide_nodes()
+	load_templates()
+	if script_editor != null : _on_script_changed(script_editor.get_current_script())
+
+func load_templates():
+	templates = []
+	template_menu.clear()
+	var dir = Directory.new()
+	if dir.open(template_dir) == OK:
+		dir.list_dir_begin()
+		var file_name = dir.get_next()
+		while file_name != "":
+			if not dir.current_is_dir() and file_name.get_extension() == "tet":
+				templates.append(file_name.get_basename())
+				template_menu.add_item(file_name.get_basename())
+			file_name = dir.get_next()
+	else:
+			print("An error occurred when trying to access the path.")
+	_on_index_pressed(0)
+
+func _on_index_pressed(index : int):
+	apply_template(templates[index])
+	$VSplitContainer/Settings/Template/TemplateMenu.set_text("> "+templates[index])
+
+func apply_template(template : String):
+	var config = ConfigFile.new()
+	var err = config.load(template_dir+"%s.tet"%template)
+	if err == OK: # If not, something went wrong with the file loading
+		set_script_box_color(config.get_value("color_theme", "background_color"))
+		for setting in config.get_section_keys("color_theme"):
+			if setting == "gdscript/function_definition_color" : 
+				add_function_definition_color(config.get_value("color_theme",setting))
+				set_node_color("function_definition_color", config, "gdscript/")
+			if setting == "keyword_color": add_keywords_color(config.get_value("color_theme",setting))
+			if setting == "comment_color": add_comment_color(config.get_value("color_theme", setting))
+			if setting == "string_color" : add_string_color(config.get_value("color_theme", setting))
+			if setting == "engine_type_color" : add_engine_type_color(config.get_value("color_theme",setting))
+			if setting == "gdscript/node_path_color" : add_node_path_color(config.get_value("color_theme",setting))
+			if setting == "text_color" : set_text_color(config.get_value("color_theme",setting))
+			script_edit.set("custom_colors/"+setting, config.get_value("color_theme",setting))
+			set_node_color(setting, config)
+
+func set_node_color(setting : String, config : ConfigFile, category : String = ""):
+	if colors_list.get_node_or_null("%s/Color"%setting) != null : colors_list.get_node_or_null("%s/Color"%setting).color = config.get_value("color_theme",category+setting)
+
+func add_node_path_color(color : Color):
+	script_edit.add_color_region("$","", color, false)
+
+func add_engine_type_color(color : Color):
+	for type in types: script_edit.add_keyword_color(type, color)
+
+func add_function_definition_color(color : Color):
+	script_edit.add_color_region("func ","", color)
+
+func set_script_edit_size(size : Vector2):
+	script_container.rect_size = size
+
+func set_background_color(color : Color):
+	snapshot_container.color = color
+
+# Script Box Color
+func set_script_box_color(color : Color):
+	script_container.get("custom_styles/panel").set("bg_color", color)
+	set_script_background_color(color)
+
+func get_script_box_color() -> String:
+	return "#"+script_container.get("custom_styles/panel").get("bg_color").to_html(false)
+# ................
+
+func set_member_variable_color(color : Color):
+	script_edit.set("custom_colors/member_variable_color", color)
+
+func set_function_color(color : Color):
+	script_edit.set("custom_colors/function_color", color)
+
+# Script Background color .....
+func set_script_background_color(color : Color):
+	script_edit.set("custom_colors/background_color", color)
+
+func get_script_background_color() -> String:
+	return "#"+script_edit.get("custom_colors/background_color").to_html(false)
+# ..............
+
+func set_number_color(color : Color):
+	script_edit.set("custom_colors/number_color", color)
+
+# Text Color .....
+func set_text_color(color : Color):
+	script_edit.set("custom_colors/font_color", color)
+
+func get_text_color() -> String:
+	return "#"+script_edit.get("custom_colors/font_color").to_html(false)
+# ................
+
+func add_keywords_color(color : Color):
+	for keyword in keywords:
+		script_edit.add_keyword_color(keyword,color)
+
+func add_comment_color(color : Color):
+	script_edit.add_color_region("#","",color,true)
+
+func add_string_color(color : Color):
+	script_edit.add_color_region('"','"',color,false)
+
+func set_from_line_to(from : int, to : int):
+	from_line_to = [from, to]
+
+var current_script : Script
+
+func _on_script_changed(script : Script):
+	if script == null or script_edit == null: return
+	current_script = script
+	var code : String = script.get_source_code()
+	var code_array : Array = code.c_unescape().split("
+")
+	code = PoolStringArray(code_array.slice(from_line_to[0]-1 if from_line_to[0] != -1 and from_line_to[0] < code_array.size()-1 else 0, from_line_to[1]-1 if from_line_to[1] != -1 and from_line_to[1] < code_array.size()-1 else code_array.size()-1)).join("
+")
+	script_edit.set_text(code)
+	change_frame_min_size()
+
+func change_frame_min_size():
+	if lines_count_as_min_size:
+		script_edit.rect_min_size.y = script_edit.get_line_count() * (editor_settings.get_setting("interface/editor/code_font_size") + 6) if script_edit.get_line_count() <= 35 else 132
+		viewport_container.rect_min_size.y = script_edit.rect_min_size.y + 168
+	else:
+		script_edit.rect_min_size.y = 0
+		viewport_container.rect_min_size.y = 300
+
+func _on_ColorsBtn_toggled(button_pressed : bool):
+	colors_list.visible = button_pressed
+	if button_pressed: $VSplitContainer/Settings/Colors/ColorsBtn.set_text("v Colors")
+	else: $VSplitContainer/Settings/Colors/ColorsBtn.set_text("> Colors")
+
+func _on_PropertiesBtn_toggled(button_pressed : bool):
+	properties_list.visible = button_pressed
+	if button_pressed: $VSplitContainer/Settings/Properties/PropertiesBtn.set_text("v Properties")
+	else: $VSplitContainer/Settings/Properties/PropertiesBtn.set_text("> Properties")
+
+
+
+
+func _on_export_confirmed(path : String):
+	path_to_save = path
+
+func _on_Save_hide():
+	match exporting_extension:
+		"png":
+			var image : Image = viewport.get_texture().get_data()
+			image.flip_y()
+			image.save_png(path_to_save)
+		"html":
+			var file : File = File.new()
+			file.open(path_to_save, File.WRITE)
+			var content : String = '
+'
+			content+='
+
+'
+			content+=script_edit.text+"
+"
+			content+='
+
' + file.store_line(content) + file.close() + + +func _on_autowrap_value_toggled(button_pressed): + script_edit.wrap_enabled = button_pressed + script_edit.update() + + +func _on_draw_tabs_value_toggled(button_pressed): + script_edit.draw_tabs = button_pressed + +func _on_from_text_changed(new_text): + if new_text.is_valid_integer(): + if int(new_text) == 0: + new_text = str(-1) + from.set_text(new_text) + from_line_to[0] = int(new_text) + _on_script_changed(current_script) + + + +func _on_to_text_changed(new_text): + if new_text.is_valid_integer(): + if int(new_text) == 0: + new_text = str(-1) + to.set_text(new_text) + from_line_to[1] = int(new_text) + _on_script_changed(current_script) + + +func _on_Reload_pressed(): + _on_script_changed(current_script) + + +func _on_minimap_draw_value_toggled(button_pressed): + script_edit.minimap_draw = button_pressed + + +func _on_ViewportContainer_item_rect_changed(): + snapshot_container.rect_size = viewport_container.rect_size + + +func _on_minsie_value_toggled(button_pressed): + lines_count_as_min_size = button_pressed + change_frame_min_size() + +func _on_ExportPNG_pressed(): + exporting_extension = "png" + save.filters = ["*.png ; Portable Network Graphics"] + save.current_file = "snapshot.png" + save.popup() + + +func _on_ExportHTML_pressed(): + exporting_extension = "html" + save.filters = ["*.html ; HyperText Markup Language"] + save.current_file = "snapshot.html" + save.popup() + + + +
+