From e7ddfde48a8f0f43b519b4bca6dbc2acad0477a4 Mon Sep 17 00:00:00 2001 From: kruland2607 Date: Fri, 6 Jan 2012 03:12:27 +0000 Subject: [PATCH] Change Simulation plotting functionality to use AChartEngine instead of AndroidPlot. AChartEngine has built in zoom and pan though they are currently not used (because they are a little buggy). AChartEngine supports mulitple series plotted on same graph. However, it does not support the plotting of events. Removed the sliding drawer from the configuration. Instead a new activity is launched containing the plot. git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@275 180e2498-e6e9-4542-8430-84ac67f01cd8 --- android/.classpath | 1 + android/AndroidManifest.xml | 133 ++++----- android/libs/achartengine-0.7.0.jar | Bin 0 -> 108006 bytes android/res/layout/simulation_detail.xml | 98 +++---- android/res/values/strings.xml | 4 +- .../android/simulation/GraphicalActivity.java | 51 ++++ .../android/simulation/SimulationChart.java | 227 ++++++++++++++++ .../simulation/SimulationPlotFragment.java | 255 ------------------ .../android/simulation/SimulationViewer.java | 81 ++---- 9 files changed, 418 insertions(+), 432 deletions(-) create mode 100644 android/libs/achartengine-0.7.0.jar create mode 100644 src/net/sf/openrocket/android/simulation/GraphicalActivity.java create mode 100644 src/net/sf/openrocket/android/simulation/SimulationChart.java delete mode 100644 src/net/sf/openrocket/android/simulation/SimulationPlotFragment.java diff --git a/android/.classpath b/android/.classpath index 1f6c7ff4..a69f6427 100644 --- a/android/.classpath +++ b/android/.classpath @@ -7,5 +7,6 @@ + diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 511447ed..e660bb6f 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -1,79 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + package="net.sf.openrocket" android:versionCode="1" + android:versionName="1.0"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/libs/achartengine-0.7.0.jar b/android/libs/achartengine-0.7.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..63af27a7351ceb3788d192ed837c0ec7bcfb74f8 GIT binary patch literal 108006 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 KqY>H=IY-v+rq}(J>vY$B?_}k& zPamW`t}+Z5O?7((NvHtTem|G-CG<@>qfYg^LzX`uie3$KD+FSF@KV4S&pKKi-7_|5 z1NGR#xL4j@a1a?~P2IaPAAhTgMa`~;hCWPFm1dm{vlwb?JU6}}-U85Z#IMrMRi9Uz zz^&D)pZfGhdz*AkQ9*HVN5l0!TTX`4ePA9ELX{{u^sRlNR_E}_yiIiYB zENQXth({a4VN~nsPC;t+=)$XH*@-uRziIbec;y$*ceEU3p?6S<(!Qz2KHj3L8kT42 zcsJj;s|}=1uUkScKp9CNocoa&o(Y6l)3kJ|uwv3V>S7KeK2<7~9^y0hc5%5o#~EKm z?=Ri6)1PBun2BZx>8j4}>CgG>G|H3~6&4Q-1LAI#)Pe51N`?ko~kM-Qt;c_O{uhc^iJ%PgEX@#u)0%eQqW4`hj~kcCE71 zj>YESH%)dBz-6OvfVVm^U&Z~E@foaPv$~xKLD+B5xvk3k;q7B&ag1=9%o0J=O9$CM zB$0Bf^8^3qAhKhjZr9bD$R|P@@6Ubr;$u%Vy{8S^O*jp=g#k4KUT-L}50J!X5f@&G z=JU}kJ6@i@cozge=CQ7U4w|u}IwH`dAS4AQbE;o}-+e6n$bsgvO-LD7PRS|2Q!;i2 z_6!$EC6_Y)pe~SDz#z=0t|H!z0w*1!LQ1lEvLU`eY?SimPVo!(v&6hO#J&!8&9+C3 zagt%byy87$O|bffI3x2G<7Pu`zZT!JV=w8C(q_L8A5K>WEW zeG4Mj8H)7&_8Mj8ev<%FRHja74ww^`j$s4(*p&Hvi$VEbn;h0j;oy1$`Exm}is;zOxI6sFFvCE5zlJ26 zqwv$A9qh!G;dJ)jROhHL-c#~`zZtM^w&_2zVE;saivMr~`zPr0O_-1#QbY^;$}X-M zwP=}j#!uJ`71E=&3#pERN&VJ75A!0EBNSI6kVZlq2u1uQ68Y5wk1m~>;0-bRm9u~O zafsUgW7YPko)r#u>Ozakpe4Ww*cwFqR9MhsvIA|LU{bPF0>sR;i^u?fOe0XRfxPI~ zQSB03l5-z6vr6R%oq)}2q^e_D^P;sUO}%n-a_ePV?H^M3LiQ57@QiuBXw#G*P)F3c zWoHM0UnH*Aggx_gJ$C&<)jBy%)Sb#=vYXGZ^p@bcsyjBZTOIeezL4zVcxa4A23R5> zGGB6pjJ2Y6XA-tA&7P>u8Ci=|*j>*7JfRO#H6eOGXdrXJAp{;gED!edQ=bf|<8C z6q*!vA|z9KT4AdCk&n>Va*Hfy3WnU)hrdsJLhrYOPhFj?f5otXj+pheb1U*jcgXq_ z+mBoI=zc}Il{>N-mg=l*QRH2dFbZUt{%-m`zWEi*mf3*OY<3U%ze&!2fO`XtA2Hb9 z$p-k_@Qv|*PB#CqP11kLG_n73i{OBU4%x4QPLW>1(6M2zh*j5FE>6jM0+kblUR17f zlMG`_KwM)q44kW7`Pz?;Uuj8+(EEn>eFFshO^7SL6DVSL4^lsN#Uw$!>8+_TNkl}dHRPO&FeE3$L*WEl+?X)HyII07b$E;d#AQWRCEv8HK&Qhz8 zic*Y7J2UvPYSycrLQ9y8R~~@1x}eYyKP?P5C@r9NA77T{jA4%-Muh^)eGB}+jw7V? zcok!{_}DqJNTq=B^>*SsD>ifmzUinK6)@Its4Z_4)2J5Lc{jPiqrdb@Mg5e%lMm_b zXvxT=ZG|Yxn#*ZN%BnrhWk$DUv5LQDi;(O?N&YHH)hpXA?l-6OxX7jWRP0@Mx3(NM766BwPVXoAZEL%a6^f>+9iMg;ZZWy+@=ph_RW28M(t z@5Q_;TnC1O2*5h$wzW4vTe2g~=}npuDrPF)<`qrK;MYjX03J1&bDunUoMc}R&IJfvekj`en%7bn{gZd?NtC(%_BW! zGht2>r^4@qOI-bl4`4-No1BE0-oc{?Na(A-Ot#$ z?;ef@p1ur7(1z+20+!_-(MeYy{{QAHiLjTNG5wuIyuY)^wq8K*iL? z)Y!$+-tJ!{g3^{1suG%>d956`rL|5=OM`}OGBO_09@T(#d@y6KbgwHIpx6eGu7rbL_qu!G#*_1HbKsSe z^JvL;zUoK3Qw9O0z( zojI+DcybZ*iA~Ez`>WYtv4h@rL*ucVJ#9oFJhO&f!5T@Qw|4aJ39tNJKRPj);;s3T z59yxhm$<9~ zhdHy*A-j3Z zmC4q!-8lD6iBuelF&Bh64LU62gy#-@i2R^N_E^4%fjZ>D=R&bXmS(bKBu!OyUaU*U zKJZ~Q7-vwGOMSvmr&(}lp>&%|(CaOD0<}#au!=7;{0WeeoAc@Otmau{G|1wVJVYvC zWu|0V|C%(V{G;UT`>56MR|P5f9J&OVRj$NK2vkEi2@x0i9i+#|KpQ@X291p>E|JaZ z8GBvDrBAvH-Be~-g`9wLwkkoGyAVrrh?~g{5`R~6}^F4gQ`ai#4O|Ac`O8@!4L=9aG zolXCR3sY0B|6!ssn%5PZYU|p42un$rzY~BCEQBAY!6ZXYZlrjmvXP~1?y{S?}yU=lkCE?W0oN=jZ~tzaT^cB?(0xym&Cz4%Y{QGm9?i8yaq_(M{k@-zTtyVB7DsGI9{M$Py;sm6niPZ& zJLy&(MxygsnTMHbDUZsO&G}~&T(0*-fUiwL!`mtkUsXoy{p#`#ejA$(&1IY;U3wSi zTFT-ol@4qg-ycz(j{fGP8>mfFH0O67;6#iBx*kRD6$Tsd6jmBy&mA`vTy}4{G46GK zZEwpeRjSR|>qUeD?JTK=Aq2_&9_5kA3m%BQ7mH|EIfr9YI73Z?U-pArf&IDk7Bnx)i;osO1oFlA!4l=*QyHPuFOh}u^8)cYJVm;y5{-Ts+n@Zf(-QCr~Mx@oTk?Q8Oc)B^;GfP(ZArQZfLK7-hPn~6bBYtuFJteEU^cM zkeUVy=1a-Q4s5OiLuAwwxMYqX$*IV-{9IMv!dY6aY{{xzDb>!GvZ~qq?eXN{b3dRl zcRzti;B#q->;ED!R8K1t0cdi+`4V{f_HZ=gMlXCvC>J>C6X zNm=NYP{U!%Uc*Oh9hrbdeJ*xeWZs%ygr6)8RSnO0kj(lr zF&b{a!oxBg;R)l`7wnmE!i`!8dQ97 zn%fU%RD5^!`rJ>JB!44hL0`_=IQ35|HYZzNx2Uu(RTfklI_fVR;zVsNio`S*W)E~k zjZFi$Az0$@*qPaId8d!emh%-9_&MrJWl6FAetyx$-pWb{z;DZ40mpNXIvp3at3M`5 zYa)CX6iK;Hmwa_sSyARtU6Q}&7}>*Wl9}&fsVt~oV}cyhRA88ubn_W^p;cg7M~aWO z%HZ#&*I*ZgedglbmjRnDAo3d5oOmiW+073^*j(gJ+w39WPH|#}Gdo0yy}8r?G1^c$ z%QoL=xCj-?#mS?2D!9b$7Fs`RA5VZpO`8b9VEN$ZNNo4MaF;nyv&64jK35ZayO3LY zNr=918f!+iJr^Csak+AlCeFhI^riPIaK>aJkOQ9D!%{(49k`A0@!YDX7n*aNpa^`I znMdfAIzo8#wy7dDg#^GK(upjoOm4!gpDW|?EII2LA$lV|;4_48hLQ0FIPPG(&3>f| z`-QH->ki^V_{HuaIYR6XH;19Wl`t^|OMy0JusaCT_JvMC)Iv2lrXF+LwZ6XBK*j7= z2D;zzv<~-oz4inOjDPc+xq*;({1kSX@Xdq)B%l>k@0TQI*coqb~Lj&U#9FTkOE7Qx*P=F#Yse{dk;~1x_EiniKj+h)K=!TH1*Qr z7|`hwwv|81JO=sYIJ^b{4xn(3XDz^~_AV}bmodHHx)9M+P z-^8)tuQqWrg_LgSfq%8o6iBeDL@jU(`K3#d9Tmd7siSSP#XYOtaL`q?nQjF}p#-Z& z)PMM>-A7zMb|>l7C!6~ zUmvviOZ5UDdqENxhg-Je9-j%Jr<>5l)jvyQKI{4Tb39&~9>y^@%~c?|GbP}s+#F>C z`Ez$l2Cv7&HZNCmubz-8&T+dv$`{$L?8G-{E%6V_r5teoR_2kpCd}h8rj_-$)G1H; z9G4jXR-`(LE$`$AVTi8$XnY%0qXDHL{P2UnF&~m;wkl+?%Z!z(tJdq3^X^3&xqYfu5*7%i6@f#p z#}dr;GTbV@G3j}DOx?$#83<|lY9l|()*Fl?aEill>V;=4qNm|c@e5ohd}QSvyZU;A zKiKs)$i^0P1D?K%0xK0Fr!Ropkl4g(RWb+8$ux?F=Zm*&GrPhFeV5w|k~av2H%gj! zbpFSwDDMDc?$bRf76A5{F^*<9rJnpHKVC}Rsp6?B|B^E_Ps5^X?J}6=8C)8AkeKov z?3()q7L0TV_3u-&mmVAG5cYPn!_^K9{}2wZ4C>r5>&9K+^exn!diL58Or19F&P8`_ zcxt*6x8Ay-HIt3f#M6^31O*h#&++9yoqS{TD2Mx)#hc6uXMRek#$7WVZPq#F2i zAH4RiXP8NcR6-wIomai(;km*dk9eL3-?(3pvcD7nNqyy_JnL~H+pHq>NNFaYDRYMF zppRTJl)6wHlgwb2zDau~6k3hsaZgxWdWK>UgDq+KY#P+(GGtU_uN9)dNNg4o-?2U< zU5f=w0(bn~4xe6unDyrnJic6G-cTeSHQx7}aLis8aHsFoR~W~>=H`zESgr-9$S7>pDl7?^8)UzBx>y+vt7ASIlir>l1(> z8`i))D-*!?Z3y@9;dgrV_kPa44hSHjH3U^#C26hbP=v3v4JY8~Oz3Z8ItWR(3L>$$ z$QUq!;1gNL`mke`XzD02q(|GJY4-R7vd&@K7yYO6BFEL=w4J>MohV4^AC-*YgC%55 znhju`ESD#(ndKgCOoe1>>aVpZVt%n+D zRF>I1z4*Be_*>biXYnnh=6q{zFcYsyf)2favUXJLtp+8dpEvEo4xzD%cCTKde| znbuo4FYDiF{Ts3ybfnYUS?6A9D*4Nzk&|esFX|?H)yJEw7(%d~tr|3L)g6NU)2Gme zw5ifeC=DWCV<}B~!Mn5L_9_tPff+ID`TkkTQOnCZsAtn&W_HE{+fVzhs_c)Y=5JC1 z8P&K^D;MEuQ4z$$L6>uXG> z&^gTYnvQc26Paef&O9*9!M(DLdoDUpjC1J-^yZnOnDB3Z#l%5lEJe`+`-iQN zsB*QBNOap&yx!}fpK*83NwhjSy6#MRPQ3bNK`&(eu3q%%IPgfibm7wpqtD>|D>&iy z`Bu8l?A~s~?bl5XPt72-94_(9Bwu$1<%}qwy<)w8ca9=3w22HbVwZL zDCNdnEUdO zQt0x9yeFM)!dKpY_QF1E#GaX`tZDti$Kz2o%37tG8X?DQg?rAvJinbXR-_*jDNMRz z1PZPm1b<-kjSUbfmY90yn+OV;3i&=FYt=>!lD9V1`3T<EwX*r zoc@KMm3b=U&gl1bT)KTH46%iVncX|gX_BD+!($8<=E{B(U?UFV5uV)ICsMGv2|vY= zqT0x;C6e=c+1|2Z-Vc8McY?qNJ3)Z=o7{8wCJ6rHkdTw9or$TFsS|^+p|hp2ii?xI zwdue3JvCbu6eTo2`m094Y@D>vRCOzm9-G@blX5{LN^(gqUkml^KsHT)>7_{C`*z(K zCaWpejOr5NnFL#o^9Gf~LL}nLcgw(Y*7L^s7U7#3_<;U}lPks)5sqvze#bmB1;^0T zZNhd$j3v$=q{OStY#&G&ddjKsYnYef2hEZ>P#k*d^ha%5zM+zclptMtRA_a-NyGIj zeA6nU-kj4#t1))%akWnEF%FB_SZyj_+n>cw2Bb;(^iwA-H|bOu9%<{ zO$WTG9NVm%xD{khHP#&0HrqN}*R^e%^_I8>lg&5|`H^J>+nF|7i6Le-BZXg2en9dp z!K*>nTD1Y=u%bHP;p}xY=1qDj=D|LTCtpH2>T=iYigt)*gAf zkLcp*gR0f6WA*74axtS3w;3CCxwVrX0@dy?IhP=|G?9&jGG!gTMdS~HpRP;h+HJg4 zJCekn_1ZXUZfZC?eamZ9vMs&J1ENVO3sm(YbYzJpJ?+yPw18SR-x(;OvADFYy6vpg zwl`H!o*#q9@Q*DO#weEfj(}CBpeF8FL)kG-au>i@M*pyX4;8+to#H-3vg8?O7!f`V zUX{}or@ewf1k{~kktMflQFE)|3U6Q$vq@WQqZr40^WGh}g$FfbcV8R`1)^eHNTybW z>X{n`Oe!9qjB7`8qvWk_&V-t?SYW}f0iXoY8fh5Xa4|$)D9-_KF5@k{2~YN2DM1RI4moGHKm@^T<5T ztSsj%^y}~^3=#J9q@!0`KLLdUD2I1IaMu7V-$2`$uJ^!XxZW=-g*$u{V+PF~zBe(2 zyPn)+kuC}juYe&^zfDMQ7qZVPpYYbs&^rv`hH}m)^l*NW+ffAj0*2MPzfd(0#(xyl z(Y0MN3Dy$@h#$kTb~ZhLIPu>z)FSxWt$U#djIg9GFqd{KLrr6T@Hs z=J@{H--vDp3j|dD-Kb^wPoUv{Jwj1aGsExs5#@h9%6~q@oD66W+!6GEy|a1~OWP@P z$t%1BFcWYiJ867jlQ9JHQF&U5UszDqmL&G``!}^B!ie9atZ}U=MUW{)bZA~cWWdOS zD=E2xUJJ^b%3h#+1swCB@4Hu$X`>|Dtb6Hgk0&0FbJ-mB;(nhkkUxL}j5j`!08k2$ z`{6APAfMxyc_8_V@lw1ZwgLrjfbxaV?|=4z6S)Q&L(3>WC^D!saN@d zP+FS6g3E$vyX1MQjmed9C&QbXF6qK%O?Sm+bK{176uz2##|8@zYx|9Wh!CI8-Jf5} zk=KOJcWSfBvJ{5-2M&&y?|%3BQap?UzQ*;#>*win!9s77cytl2#QUl(PE5Sbaq6ET zks`QF$YU>*4{8QxQkC?;mIPAn`=QKD&-G+*JjLhrBraMU%Hb@sS z-lFa#wnxg{Iq7DbA{%~7RP0^JwN2A#p4pQ~}mZ-71o732OX^g9>j7=)oB!-%$hM4AO`mqp~ zjrRcK3v87(CKyR~Lj{)Ur{Z9pJU)@Od5i;(QO8^B#>nE_eb~MH(|4zL(NW37yw;<~ zjik-#m0ZiQ0m%)U%@Z*AisKfN&fw!Tn?3oldMB?^BLiQzb!JCyK9bUkso!SPM{gwv z$XnxBQsK?H=eApL(bEV=C{i?e6L;4R4sZ9mSrBX0%+94vS%Dmz9hrf39C?GAVL~o5 z^Db_K_2SRaFPuk?tuvjbN%Yjdv&E5B`u7m}deOj~IgZi@V%yF8DFn@F7T?ygD;udh z+C@#?$PIhQ*WW5}g|KU(V@)gSZSRGDOi0gCtZ<%HE199N@G$w-+xNw5k^+km-FSl! zi$K5Tiv3VibI#PJ#!uX_9;CAtWKvxn!&f=xJ?}znn{1wqARODL?y*>BtXeHgXYYga zB4uZ!mE>9r7sF|Y7)bS6W|~*t;E|bzW<*dg+NT6|5Rtiy>6E zl|+py$7jx4H=D18%6gNZhBXYuU^L5!&0MR=_PZATR6^W1j@nw2%MpvN9i{6W!Dved zSm}uQcl1ILI=Mj$p3w&=4wmYr?M^tGR=Q`Ow+nH7z*r|*jgXD%QSA_Jrz-0O>v7=) z3ndD9G+W4z4Et^6RQw1oBfd|bn8cB*Qw&CXuv3mRP?}s4>RP^N6T4u)p4^VpqoxKC zZ&*HXOJ#^rXA-VOyrO(&v_0lq3?oT}-*2{F>@F0)pDMco8ZR?AKtn`L2-T z)S~->v1G8)dhvkPvSo~{O`s$EZ0W+O;!X!?YZ7Ptg$wn!HiJ|NTI@Q+4lu@Q#^{CQ zvUPQ!H1g`W!SO(eXDr*m2#&QG9b6pO8IN$V>##FUA~qwEK@E;I$=r-_IOEx8-X4XA zgSpf2-LPAX=r)bM=}DJ`GVe8JXI)-?vU?L0gwHVxDk^R-aWO}TUPL%Xr9OAA;HMtqiFF_%$ zcYp!Wq-qx`{6L`z^?qzdsveCOZSGZNOoS+Q@2wt2exP-w`$lznE#=&C*?aPdkv3nY zf68|d;RonnJ&NA;`%mxA*ILZyU||7~GZ7y@M0~WrJA_ZM!UV{BA+HC}LUA+QKIDG| zWR~Nhy**4`Uu+Cd@fQ4QU+vKM9!0z8pP&mULUU1m!xh*cUh{Esn1Q8`|CQ%O{nP~U z;B3Xzte#N$mbRbJ0P?p%T;7HZ1OYSN1z8@gr$@7f!4xbq!e>|=%ff*{Du^1@R8axW zs<4NRR7bIGfHd4)*XJw-daPIiskDg){{a*0NkTVd+&f;l&*V?a%Bvo11LLluIcy4g_r3oPMo?YO<`<8xS z^={H3GC((=w=~k7xYF9XroMz|{1g3yFp5H`)dT*=qV*K56LLg?hSoF2TO|U$}IEKAwG>2of%yzFS#@=kQ$U-aR)NQ#muFCvwSgUm!4^_eRDdCiVn)BaGZMw%0UU zJBpU>d+@i&7@cofz=+J+cl>Z?1F2vuWFmapX5|egXGtj1o-z1zD!c_T4KITqW+R&3 zz;S85pT2mHs;O9As;@`PF~b{#W8;K#)IzlZFI9qZi9)$!Obn{PZ$PDpS+Bv;@fOVE zGSUe&D?b)Y5;Pp9tDHTKM5GhEphK9*#?`F84`2kzei*r+M^>gkq9i>d*l2`ml}-yH z;1&Z3VNb_J)~Jn1Nxe-vP>zN!u%IUhX^@MnV8$gxV|-Mhl_`P&#b9q4IK}c1TET?( z)P!r$374saHO%7yC`X4@3F_D;U_vNrf_6xR9MnRaCJByY<8oFB?AWBCgrj(b95g~W zrU}(3N2pc_;@BpTLAr|IN68>ZD$)rU*hj=<<8)U4I4Fa4RKtvaOI9sSzQ`(e60EC9 zCv2rim8|uHr;UL+CLydxdXkb?iW7{#Q`>5kd+j%9Mdd%3GcQGdj_J?gZo`rt={&I|QUho;+U zv~)tyW=^zeLOSwMDmCE?wEK-(5N)EMLo>{gAKN$z^sox7pF%mzI6v@10E$Tk++s19 zry_i#Duks(LL3+GLjtonLbB0tlPvT@y%T!$ks4kJ-e-i@KTd#%Do)EdH6JDX>hOtH zc`+U9%Jof#pl6v$F}ie2*DNQc_)5$cU5JecLK0`%i>XOj-*&i0G3W>MXXkqdY|=== z3Tnci=yM}=R6?7k2{9-~msSaG*d{naZr@iX49FAihem*lBxat3FQ@=8q*>sv)CHno z-7vy*4d6HOn8(Pzl9)te(|Fw)u(wuj@wikWJHZ6pssJB};c@rWu@|Vf*WFq$Pi0@L zxCEi!gyVc_g1uu3a!CHjQ359S0#J*6cRx61y#?_65tpw{mS#SeqY8bZ6dr=VK>mCE zJl#FKoncW!85>q{Q9J=0 z#B+Zuy!qO}Pyv(4`aFbu-SD%@O?%i5i*3;n*6+xDEP2bhBlRgnW)M9?s1==>6CDVy zr3!0%9NVyiE^M8Uxehjz?d*;1YE4Ub2VoIf3sq0f3wQX_2zNR!5^uTeTkH$1>zKU9 zq>*d=ifiuDovI_VVks-o93A|djKVGjqK$6*i0z-(mZg=J**6G7J38x#PWZxIW#lt> zw%L5yT_oY$;7!EH6&GoUer$oZ>qUO9_n*jTEx`z2A39%tEH!)l~R<{5by^4^6ypxLanX3nT0Y+dGIH%YTCUqz;r3cF=( zEvZ}lx2(P;tzsW_iwdaKC85#*KEkiBjqMUIH~o&YsmlO zBL1_0OjW!5$J)V{tv-z*DpV*&lr#Zal0jt697c%Zk0=NWT-ng~PSUOV`VGb|+%i}3 zKL@WX@hyAH46~Z%)p6LO=70-{FYGVS%MSN78(j>liRqq~Z~FPu@3g`F>+>Uh4@h@d z9xqrk^7xuzz#pG8vZ~<|O?$Crox-0FMSxx}p3f>d%17&XDw|o_(Zx6vmV^5qWA(L> z{?H8a{f-@TH}X)gdraYW%7B@jR8;-;svIRnY)ElND@QBMO6sh921`v(ZxIf95kS$j z^(lLSvV>d7*|c@THS+B0tVUyx>8`28QYk#v>cd^4zE};h#KkD&irKmjNxN3h#-}k) z>m5{x(NZ~Z6(*%r<{M7|>)MoMd@N_SS*f%F$7WtBF2<(D!coTbr;`Tm@eWl5jgGwn zJByEu2r!#Mxxe8RdfA)FNFiQGqwWh0Nz5jtQfBBn72MisnG5FC#Ogbh4<9?gb`##kpX zE(-+I6`CX-Q&jlGA8tjbx?n5U_Mz{VCbp}@w>)a07$LOEXZ+nGJ2YoD#>&prScdKq zQ=pYsKtLlS-QjP!h~lc6_^+Mb2PItNX(tark=A;6=7#^rux1H!(IpDRqAjBNWv4uX z_D;rlwaTUZVhQ{>)P2|@)v!19@1+~R(Ve-@kNPeZ79vAcz>?%b=1I^h)1prlV@|-- zhMwexen?itJcg}s>2)OeL9;7+qC;_UldGw}*vlrpvfR@r;Q_zMC6q6(AT5apOisv- z$TUR643!b1^q1pck7)VngtVigRC-a)?zfjI_Aw=nKgP`8knxwAUrYr)1v6ZmPQ4MQ zx~Ejq6w@_LMJW*ybn-m@I3vvw4!Yw^93TRG3L)n?G_!gj2&|bGV}x) zx{G<+r-2hQU=-<36ffX!+dPCF-)1HJm#;X$vM>ym z331ULJ7T)7$RGIqs3@<7SLRQ*hJ+!w`uqsXBAp|CW6+-q5G#8@7h|}TibqIkA$!a_ zuH7h4kp;N#6QBM6)-O4h!&jem>fPjem0I#3qZwH7k)D- zjKa$E##W<-r$cV4rcP@G|72mJGc0iP#}ajy9>YUdOdJMVaj=B5ntp?;jb+4S354-P zYi9QMvK0kLF0H29hN}mcj$_TWoc=@O8m-+LMe&E&fU&~(L95z?u&8prhMoA7W zryZGfY6xl*&9<3V`iAKVGY5~oXZNy8vE-kYsamy@>Dq7qL-Ev9vAeViO?xsTvbQ+Y zKE?_@b@MIvJ^Lp<}sok@dH#W;6|1srA+UW|*XzlwxFB))w$hguC2w~&06moH9$g59Dukp{Cc9jEt-WTJOp}@X-)$FSYJY?jM6Gx$-E{t zq2j{3v$6YN**?#Y!Jw?u^kF9LA?qX1cm6jhbk?5$-(A0^Fwun#M;V*MXbHw@tNU}h zOXDd)2o(s31ok`9F!=33DbTTD2WcAx`b z3g34T;Y5H`BS5Mipz!96LUX#*OK_g{h)v+Xx~DMdn{}XqZOLkBo~T#kx&8SgD-(td ziCrZTqVPmy7-xP)RRPqIWn1td5Y8!X)Hq^-DF~UA(zj2RFAx>&m5Q4wi|C%U)N(ap z#8W^o&CC&ljey9f51)}d7V~#Nk?kGJ)8QJ}T!Oo#NA_6c34KmT^DMHNzBrbR*BkQi z1y_ak(4&Wt5GgjPlbF1jpq;WCb3qodj z4GhvjDCZ{FM2!k}(F5%6Qo=%iOu_@o$Z6$;V9{BnC9ueC^64CU(UXcyu>(LO@x6f< zzY@ws6%7g^%3BI!o-0w~FAWpqbac^}?=KoCp7=7AQCLF6KaozR=tXPioiQT!6xpqb z*Q^HC}h-iA$cy@ubS%GqC&Ss;=Qp89wjD?vmI~U!dJd3LHEX?6Zqg8 zzHb9bIX4E9oJ2x+xtBaG65X)?`x9yPO)3^GrrAtMEp`DC_LCo+kxHK{l{J4VuHQ=A z*;9o+Lx%n-0IRDAeTFvtBV_20a>s!3`-Lbp^sY7L4#78JgwOg3GSJw>?e*UpY!&Fx zp)KD9!uIzjzUcq8K=}6|-2aMbqzd1Q`F1Xb|9i5&MpefiMF{QhsGjD!9mBlz^^CPz zzP3%vZWMgTvZSyK7-?(iXlR^EwkhM(;?H9d2CG={C3F9j`)Ri&#TrD27efT|S+2d8 z92S<(*SBMy08iS`f`isLtzy<;*6H)Jv2NX)$?+Z}2$x3K#SQ{t)lEp8AIxWSQ6-;V zjx9-aj8EwJ(XeYSHE9Nn55f)<=GoWm_ADkabY+RmmpY|~P7C#53S7G1PCYyo>DDy( zTP?dA-P6#8dJmvWdI8aJ1s6^gNpn(_1}roHv zT~^#_q)%FEhU^_Ne+DFT%IFL`WZ;U-p(amJ)u`RuXmRBFd2{{RZP-H2-S8suUYLd9 zZ{E#|hEZL(3tV=7J6Z-aOY8lbDqNC%*}OopT$`$iQ#n+sLhZNAy42@TLjc{3+PHdxr`G2R3sVT_V4 z&=8iV#>Aw;9^^-evxK7CgfUhb+t~;^r9Vir-(QgZiJe}<@`*VpJfWRu$xhf(3%0l= z2jui_PWVi9=zBbvNO0nb%n1>&6>raBlXl266`1h(3 z4zXS;jMr-V6qC5^=QMJOsVE>5i1WK&r3*KUSaWpJK;+FKwCVSxi^-+a-z5tFv%JBS9BMWX7en=_;6;Ue*ZR@ z9t$f5_2XOI&y@`bi1Yu~v-oGCFVTkoHa<@kaNnKoHhFlELV=PB@kxL~B@BqLKthEI zGOK?C01eE*4))vRW-tmd?d2G;%3|CdU<12<<{16 z?N+m**4AaEx8Z!#^({j+gAX!^IP3e;>plA?FW&p6!`|b(sZ0T+U-x$cBs+5*WUa{( zO9lffkLzryIFMJCkO_IBR;B}bRaw~vclKc*Eqe~Pv#VP#q|@{)FEJ)kroxdhF>Hjc z=#ddI{H!>US3$VmAjZN{Nv7fi&Ur=TxY1yfsQJvYR%MgvGCjqjv(?Pa-49+HHl1W}n)PGSo*Xk*BrO>e{KRL`TEa!C;^=V*;vLam(W5C*c9f2! zaW&Gpx*?1Un+HLb%YsDx9Pq~VmH&sbcYx1qN&bgp+qP}nwr$&)*v^ELWMbQ#iLHrk zYhq`@_qlub?tkyyyZigR{drCv9E329ZR(Va4OwO#Q zA7X`FjAT9zB?=jvq#7rphSCKzu@>oD;)py?yS8QPu^nVc)k2~X z5#H@^FsLzvge@0dBpvjx!Wp5Ipv|ps99Xd6SZGc5*N(SK5wAO4&+%GhSQoZ=OZvO_ zp$-c#!S5wIMk$KgxLEP-V6A&uW<0J7 zRw?p>$UIQ`20*@*aER6$mH8J3AW@omfW7p+FDrquw-Etsqs*TZprV-~LE-g7S_7CT z4UDs?26DDs7{{<;I08!|hbp$OJCnu6f(k#yU+j@Y^%s>qKEi{7-WAGoeRCJOmkCd> z?jG}$(5B^BHJ(YWHja~mriDU-BEVX}Uqb4s`1q1u_pZiv&j?K0Tqu8lgm5Cu1lAKqTRMhZt!fp$bOap;_xrC&KMg+DP! zoyBoCcuY?2i)uIKELqc};N()UFe8bgD9*Kx7mE=7N-9eQT=f_cPNmJ=iR;xw$pRd* zVkw1+-|KH4evDFhzX@Lg400%Cc~c+bI=5pxG0FUreIukIP`sgr;f9d&sC?Qp#Q~Z0 zW@TgenIgx<*}}#+0XJ1rkKe*}TW>AjUQD&!Pw!L=d1s({#!jIj?t8}uUyL~d#W0ke z%r9j5bDx$qo^PWmBo&G4Wqi9gF`T36%@e6M*dp0gGFJJ1Cky=)W#Bzc+(mSNAoI7|wwy4U0iv(fdV*UjZ(@`B{aC+a2#A*cAg6o8z zcp9}Xv`_0)2+TP{(mI=>UkA`)IA0kMubU_Kix>>g& zuO1-=cECa7dtxB?1Py^IFb0IN~joJb@JU!9ITykc0uJ|w^zOS;VE9bu6N5qs$?RT?MrLbT3XB! z5x5IHT2IOXGR|l@97n2to|E@ORjzx1Fw0PyAVS<+RB1cOAuM2y%+=Qzs6dXb(Hvx} z{xc?rd*^vp%=gzAtoTe=yHjgdTg@%+Oz-`4!@0Gn=l2Dj!cFPdUOveQK8;$J7&8}0 zPae?^8kw(v6B(GhbOC>Lek67bq7ARLd$&V-Ggp#!V*1=V;i2-i`AwDv;ve2#i2m%w zP!h%b*+zH_w%xex|3uS5wi8Glbg+&0wSD*zjmsBY2QRA&L=%tPVnCQOX~zeIWpDc$ zKcuRrv?o%OL*Q`R)B*3tcam!#m70hpNGhL^5xdRVj9Qw0Q51O=i_4hCMh)JZ30Bgg-z+@_nHkZd$F~g$qer9- z>uW+w4@nywjxju4xcfAOW-m=_B4C)rCC8eH(^$@qTk9dMeL_5Pof_A7myPgnb%H3( z97oFm+mPT80S8yX2UjMIC8x@iV1slh2Up~cB?gZr6t~<$WCy~B?tQd(76O%=$Jm(1 z7*gwej0o%}>fsA>yF!@|18UgH=1tfs_x0?aA9_v(ws$EWk^PA&gun)s)IgwsaH*Y5 zz*)g3Em?5@5;Hdv(E;%7MaGWu3qg=JYrIG&gr-qzL6gvF569`qG<$H(r6 zvRE6fkhS50p=7`K*8F%E#f94l&Myo;MDUqcIZ<&dq%K2n{*mhb2^;)f6~`DlyDlEJ zPa}^hIvP$yU1Nz@_J!P~(;+4YPF5#8K|=BK)!X1UvzOiu+oNexjU#pTgC7^)khOZc znz_^^(Nyj%*EuvFrqvE%o-Mip?}sz=Xl|-POn;fVEv2UJ;{wSGANH8#h#OB_b#7mW zm{NR?GI|OufqYn>8+l6ULiCR`G-Gd>3sY;fZ%QhmsezgD3WX!i`6JNHB(P@UG^t7o z73kljG>Q~P-{f$_8NQ%rL`3T`#Y-xbqgyASe-nc~&<31oF0PZZK2@x|kD{HpP&V?_ zneV1UCsDkCBwL2c>$7SR1z(SuJV#ve*DD4pFniJLtYwW~W6XVsCiEf0`rJ9Tk~=Dp ztDVY~#iXt}-u6B>MvO!l7{PFhh{bk5G%I=ZJ8Ign8qkolsPxs>{kotUW1cH9Afmj{ zq(!K5=2s~KS478?5xwR7Hr3WN944xE!OfFk`B>7!JdE9m*M4Oz8WUQk=UBs9!}Ea2 zR;Dk>xRnydRlGA=p853`!lvi4rd4|Knl0n2Of4O&EK`SW;@KBr_pna6o9i*C zV-F68ZfIifS=koH0V#(I>kYUcM?M)?(_Lnep2jtDE+XzoMuUi^p>AHLfDZ|375g>x z^x&p2lx}+V4sOb-8g-DxzL`EjcadsW_bsOnTgHnd)18_A*vnmpvwmC`gc1FDrAk-K z_JmDnc^CAfp?}cJT@##|2$kd~%;b-x(r+Qz*lf*zm`& zaH?+1Z?Bla$nM- zWcrolFuPAO>y(>KAhg9j*2&}^)Ua8cJDR~holv)91N^)}&g)3$^(*Jls6v~xP)DT{c@<~lFUJk{nSL#tB#>Oj=he9n}wHLJS_(6 zKD3&XTI{#`zNH*n>iaY<1i=Lv;x*qe+hx~_3+rr3WB7fa&-aB@b$$LI#{{UN(0D@>7IAzy)iHRQp)Cl6a8r1Y#kiRt#)65sU^8uRYD?&RMh zxNtqyGeP5(CiYhM=UzSEF}#~wef{jjmk72gN|_ZSpk7#~Q$6KZHswEmXjfX@M8&rBZhk@?Ca~PaqApN4R)n5v)UGM#5Yxsd~ z4}e~4SbzkTSTIL^M5O*8>#H?v;HR8`WSZKENE}209qM^?+~$Q$Q<_Ib41Z_q%GQV|10mJi>E1BGdOH=Co4Br7QEE*M)pAW% zi8H06>3s*wAAgGQOfHMr@|FOdeR;;2kF8pAqe?xEgE9(2# z)S~ORG_x(ikS;;?_)A&3Ex^2b*u@;`NrOshhoLp2aLvOW+v7>7&n?}f!r_*{KE5i$ z>1(vha7w+4Ity(Yac2KvV|c$pO^}bFg$<#G=O-#4y-+VV#*!rXT!i+_0+H%*7iKt*=DV?4_7eOZoqqd ztI%)6LNnI#z+WQ$%(n#fAp#gs@6D($Rbp9`+k6UAuS^&~vfUf8j)&aoHCR2!lM&Xy zQn~e*K!_wNKj6SFGH;dZ{ob~;x~VX8!|{UzajX637dgwhJG(B#I2EO4XwMrno2iOa z`l*{(O$6pY%NNGZ6 z80C_rDBiyCCXb;h#9FaxE!|ANltVvCRG&dm7l)i@!%*kzGeyrnmNAtcWcj4#cAJlR zgmu@rMbWQjdlcN+c&eo=oU2XiQ=`v8lk-itS+>jB3Asd*nx&|j@9ilrE^Afj=jQY6 z>neoAv98MTcyi*l`z%ebEIO+?wFQmR4>i(>bE6J=wuhM-5g7?rg%98o%2TN;;&RVR z%4GhhTT~VNhIjaKp4sm@l53jCKSAQ&q-MOJQ6Qj9B4^=E69Oep0umMGC5OEVIe zjMC@xGIB?sJ;?;|A>^R<#FDiH&=7ZAs0@fM!5$YOq3)n0kr%ONe?&w1!Phc@7{bSt z!D*TZqbMhYX(c3jC5WNzQ(Na`gSe#fxTA>02UiUT>-B5lMdE?4kW6^MCOCg0=DT*c zVkSCaL{2cFlR|igPJsTzpq$WJkcZ5cS{9$GSN>+PN|co4C5U7@NAO0lxiy zQ)C0&7IEFt-Z@rarPE{+iC{FWWk(0uz>xkfEmdk~S6Wt%x)jY4jn z8Ri89D|!s=#_n-F?}h{+2X5f%pXuti6B?j8i)Q(M%e`)sN8tz>JS>E2g`)dhoQa#onWOrYvl zrGMkk)*OraQ14=$T8Ks*mXl=ni7MM^Oq{i@@J(?DdcrfuUlZ(}l@hWaCjG9qrw)xY zpUmb%Hf&`3mv8SwBnlU8mJADrqTm?K@_pEyIy=c9^JxmDbY`ZT_aMz%yZXONd{0@S zx>++({HYVw`A~TeW2~I#qXkW`PW;l*W za~^7vj%2BvcwvmSEe1TgFeE&8TdQfFGdE1=aUJxMVY`RE-jdjt7tZ?8=P{_vxAp{O zj>~8|(pM43zFuF?uxpBpj*Kv5w>}sir&wpbrz-piwt=}1vx>5BtlIw#HK8_Nv4n2^ zDZOuO5p-)0XEJx6W<*@ai<^ASI(OfV=k_DsQypqPf~Yu;y<(|r`fb%P|Gea{2$r6J zOf0u=C?xs{frg+spO4hXjBOxeBd>Xr-hg#D9>MC@Ya;{Va_lZJ2R`Qs23@DWb4gG^ zX254zRx^`10sCQDrotJh3aCR`Uh(8j<2G4ikza&8aDtj*OzLn+g4PC+_aS$g&yaOD zu3Q?!5%$uF_k5ipoo6?dpkkgge>3C0c3YW=xN9(l%P=3t`$-c}O0b6Qk_6f%j#9$4 zzJ}+j1J4bsI$A0^d4s%{McSLrMu=i6fuK#2eO)+!Z4sONoipk?R>tt4lfyZksoSF0 zz>Gfg@q2Juex#G2{PLoyLdezHWax+ zs?Oy2+4T9#KoBTmBST^f^M77DJyrI*aK3rzFlyxoM_ubw)zg%?SGZ=!PEAx%#ftSk z64ZHU)_o9MbNNhfYxnJ=kDk4w(q`iIFOO6XiT=nnz+Md~K+IdR|E@M9tle|~S)%^A zH$#2R6;&PUBiqh{la6)?f+es?sJBTTr@UEjj6Yw+Dw?901C4RbO&ZgMI+Gs6;HobG z5HgXgaPO+`7?)K+Y}oj2bcWN?cV-5Am^0VwYC`uldqPEts?XwK?b5&Nbd)n7zynl> zaFb;^zB8td;Kl8XGjBVPY!-rri>fyPOi|iND%cn_!da}{tMNoohgAqJmWZ~uEU3^+ z$7D*1jNzUAP!bnG?jm@5h0hk@u4(4paIH8vjHg2?EFljC*u`zk^oqmLKw zfR+E?Q#a~zUvsw$Z*;!75T%i;%=${T?}vY~)m%Ydg7mcrwOWqdQR3MsX;yNexpJ<> zwjG4u)2E$W&ipKSQEz1&ob62@>9K0}q>BACZRAosH{KtZ)G*UE<{^O;))FH1gx@^7 zS$CZn*zq)SdQ;Ard$V<>~KmHNs0V27q#%{0304_sgsW6iWs;$K09io z$`PC%zB?+xp2u!PvfJAh0ZILdiNs1k#skg=k#SG@9PFsfdm(2|NwdxWGjwtxCt> z1X7##9jMVuX;{b2ik3B7C#CPB-5oYNm>7vmv{c=-$+nD`S6XGWJC^j;E$Q0{w6u+| z6?uO0%r}hrNBhf&Ry%;jI{B8_;^BG?w!SPmL5Vmp??|ZlNJTs?eD@IuYC9a~M8*+l z1*KuHfC*kGGOBi=kjARaBKAq+Y}G=K%)FEC~+)Hl{V-fA;U(5dCkrcHn4E0sCm6+uL(~#89g%)7v#kDD&VgK zF<&Obxb-vl6ucPTq6W#KKS@vc-dTRPa4ZmGpO6`{OM$=aDX$O@UQUC1pq&Nx z3RGEOnj9Nk=5Zcy$R0jb;VrGCeEG^O0^ClV++EM1PP z<%ZodW%MWipg_orYSN01U5>HeB?=!T#>4Q&LrxxfMrDo}$<&HlemE`JS_~1%f;3fY;?XNHI*fbMX1j}rXccC33YZjGIP!e zE??{Q1hP0|tU@bz1H=ZVSQMG7S3Sm>ua{MNQFMzIOeky`ou^(N9n}*SY=2wXyhZ%; zmfSw1oZ%2a9Ed4IARwaut{jz&{~0hbRYTVaZ5W-OpZDb}KD~(5Aj58)kYZt^5jHe< z0y%1oR3JGL%65+xdlH03J0QttKT_5*ne#3g*AO(+D^W|xjRzD2c4@SWzl!+>cW${1 z%`c||(qAJH0lO>-bNrQ%j)js_Cu^;j{ErXkytgxPkF~&BVUO@tJw`~P5Nuq=bi)GN zXKA7`2>mWn3E~O}HN7Wgz@U)iJY+M*QSnlDv1;5jrNd;;;bOxfUW-C_ zTPgjm`&U_bIcc_(aK5-(QQPfa#KD(4FD_opk%VG(Xo4xbgy7CBk!fHs;jKC+9+XF` z*1VahRCZgI_)RvF`jqOlgSOy(`jbYhE|QHcLT~ot^5+?6M%Af!4Gm39$3^EloXOG$ zHkMlY?eP)?)RxQ6uGt*!=kEl-^|v0zwSgIvZRaW$kB)@I87C)u*h>>|uwY-an)Yf? z%c|Pun){k3{J1%7$u}^#b#+(h^IFZGrTsN{Q#n2(Jg%(RYZyi+6+Fnz%DC%lOHSU3 zY~Z`3NBw$)jsyO+5Zn{ZC=r5Nm6$k>9Aq>o@h+va)8tpSpz!UBoaAXNH!E^BLgxlS zUat0Bu!5yiBuc=d3}RAki|mCt-l&2i(&Va!jqQ-M>S%gjWqQYZ2Pfhk4Q@?xzE8x5 zz23-7{KPTn=1hXam@7@)lR@Icox)JtnE_39#*EuX(U%D_RedU7j#CiV$$&~w@0d*&ngqN5sGh6f*KfA zs^!X5DU|pMXV>&Hy~oU!Ag)ab;uf|9O+$o!>C0Rzv?q<9Rq#+IV8)r%cm6fiLu+r@sUKNx|F5%k86?EUA(s0;@sLI}@IA$=*^w;vHOLvv{Nw#HtyRPJ#*Do;=ehD4BFHhjR7? z<&pLGI3kUApl;8^dqFu;tCTUe=aobHxc5-ZS(C1T&Y|6G!U>X^)zpLgWWqHcRlB+eE>~8Omc!%qgE&mQRIz^E8Fs-{G~B?=|xtzU#$ikYY_0g~=(l zN3Nz0GibVeRLS_TFl?6992IDGQW+zeY-x}g+scJJjqWLL#k~Zo zj*cuOl+6P}T;+p~WLDJ(Z@BX$+ROOvM`d)TTf&_km4mCgahz#PtD#Mf|J&x*d}oaE zg3f7Ej>np>4JL}AgHQJXp9@!Mlf4QBd$(w%=nOfob~kC$kK|>Kewy0|blZTynmNCy zIe)05+mQ<9Etw#EWg;{*maa9ut{L824wSc&z?`Ax3(~w&?|NN*@>mO%eZr~9$0sZR zB{XGy52t?u)4e9-3;QTQ%{9SwFlt9S#^CXYWcoBfau+RGFWY3&dfYo_!uSA%>qin& z#1-xD3QIs|0`8`J9`tlHqX6n_aM%PGTw4qyd(>iy|dKQ?Rf~n0ZAzwmE$1Q}Utd zz{C&nw5M2RPSRj!XJC3U3WlggD{`71cITuOD-krpXw+pXwaCwd%oe54;#!r1*JO=o zLwNFswQ+H#T@P5d3qSnTDpQ$l+3mn>n^ZWW5JE?MkY_A@)^p3XAQjO6C{;S9CXvrq zAjuWc7vpJ!JM`~$pN}MJaYW)&5}Ky3F$K7+WX5DJhpY&nO+S&Q&VO$`e*5Ly8cRs)nCxZI#?GP&G#S;(q}SdOFp?q@tFAwjef4`*x2)Bfu=g5 zpRF}X6!N)Or^CQ1tgO@`xdQ&;F|Rks5_FyU@wH1(x%r$7W1GAS!9W86Q?(@!EoW%y zWOX}xHKa3I$vY>MuNkUo%KUZFlInoA262=xO~V1;@iiJYInH*L?vIOY6W0lOWFcm$ zAZ|(1`g&y+Bp5r`YIS}7qJvhqkQ4OR2~%iC80K)mz$F84Q2oyVjGVQro4JFz%kLH* z@4e%a00aaCDTIOtgog(Nf&@fO@BrU%aB$X-c{B+K3-}49JS8W8Yh{-TT?+*o(hwmb zlN?10XK5P)n?wT*6KxXG5EXyr@BSt(5+=w>Z2YW@>fL05f~8u7(&S2nQq}$nCI;WT z0#r0?T%d7DK}kVTL7|u$fT~T5fa|feg2+%oasLuy;|(DiHxn?qb%gL=k{SO#!S!!u zs)nta-U9mjB+v{Vunb&XEA@IoO+S=dZu5L)m`4xGqFh{=na@K|^nZn#kgOh=@3 z4G`k9CZ7@Wt|%=f51iz1K93tK3`Y@h>|7Hm?6$jji3}$T&+k%OzZ-COeJ&lphRaFq zcjd`p9OmdCioh&BhvYGsy%q)L=g*lad0_!D(aV#Y2$vh)?a(ADI(+lktY^_+U{qQW zv?pLUZH&*3mUid$3qLm-aA3OQBPw}H z10Wm)VME)pOl*x>Ec6raS?u{4rd7ONOvS#|k=f>GhI6Uxh{f*MgRD zrrp!}Hj^}<2XX8-qQIrfClLLp?cox=1C`k=P_UnY9YYnAl`5^pO*>p=h-)*0b=rcE z*+^|UlFhp5-XD)G$YL~E*75UL{oX^y$dBT5IpRnoMSV{b??k1~CqBuu{f8{k!Sl4a zd@(ue7LihC6~jw9$lRz*rqOCkz}qB`0R|K!GGT*P@c6Q3dep#;J~&C`kg5r#XvLWJ z$(i!$_4~IO3fsP)#`D);A>Bx5`#FeOhE;EtwAlB9Jfoo=6ZCwY`3%UHix`H zFSk2-T26rw%q>}=F>m!>V}~8LkG!UOUY05A?oVeKNOhQ;kRse(`+69!X>&q?5cdze zhaAB?s)z?6{9{BR{3%^;eSE2u+N0<0iDQ<$Ls^4L*tft4E}O$71KB;8v&vLtF!D6(l*96I4=ezvYN7t7ZAUD<;B}5pCJQRM8ISZW1iS1 zO;C;~;0x~3yd_3m2w?YoH_P9+Z_k#FDH|l_Wo$0w$6g^uf$``lBA_iF_ga#WP2T{Q zE5~z9JxG#@vX?D73CB^-!^$S<(KH}3RCyu^)08?MXJoIbmzDgM_~K{oI8*xLHP1b( zvN`sX8m4B+2=7DBeiM3{WB3g!Tx;^gmc~pD)dS{@u`cp5(znG*>#WOb34a?P0e`Ej zFRC{qyfry?AVw4^9WmYMw%zjl?yEY#s!5!9EvNcmLVPY%pKxI-WuE-Q25S^TePFaUhs&!$ z1}J9)NuDfIred^ZhDa9Oy&e}9x@dO+xza)*3h8~-(Bx7*ZP`~1kt=2xPLJ|!VW&Gh zpLIH_>2+*7a5&A^Ug^6QF}iu7mE=tu=%vu%M>#^cp7|aywil-gWyo3aiVDuuTIjWy z)TZ|QQ@87OaALumQnMSNa>K$DQSD);I zm7xA=@EiEqmv0|vnHb0yjAj;ouD2vMWREA}b_PP`);T*_;##~Em@YIqaPiqbr(8DEg__KT4_!a;2HlY{VN6}G$(M~s4EWoFjsYDF4L>zT?*TZbU-%Om) zVt|YQ6?|Ls?3KT~sgN`+?=CG@0t+9D1u1%475Sd%i*F z1q6~}52W7KYy1m_Jz7X>=C2WglK8quq=WB04M;HlmQfl3jk30;u8CjFzKbR-bZa(z zisS8`6nG6cX-@tADJRD4fVh%pP==!;d)%cnR+j!7AI#jr?D+$~cLuw|=5}v>>c%Dg z_gwwOw^)_7@YOGdrs*BT1CNnU?-h|C&Iid)fAJS&s%=>@17stR1}yDT{P$7HZ%=k{ z4}c@h?_-oOr8OB4VXSuxPj`Mh8;?l@3yAMZu=;MQZm7^fXlhX2oDSnW4HtdipVg4T zq^HFZr$xm-;w_Lw;BIpdKM;N#ExkYnnx0uC^hn^~aO^3~))$**3SYK{TqV~m`bXYh4DYvfW765 zL_nE~XQikoz?xCx%=1s{6=!j7_57H{iq^&#^-Bx{j}|8Zp+S3uHV{XEbPKuxlPCom zu}L&buZnIeSLzHsD32BA_LohsRm!p0m*(b62^}&smKmuFUf?#m|AqKu#^5FIQ2p0j zB4NrB_9cM+Sq2>cV~O#%e){up(l3q~Ay^1W{DUZ1sL+y$V!17!?sIC!%>%h% zwqukA#8&hI_GPzh7L8b(Z7RQ;^j8tDhePEUz|#9lRBmwmIg8OIOEj;-`dE;y4VRp+7b)5- z7wR6I@V4q(bSfy)sji=x3w2ADHNyma*48zdl4x|pigMN#>DQ>xz2?CU(NdNg#-9mh zUU2d8F5b?`{C`>__t*?Y^|osogE)w7AjNztPtaRgXLfl|t0Y^bDF~4q%8x9G8w<$8 zq$S%Y&%$EG3sJ`8Jv{qF>*Kw_@g?(SIkn|}ofM^70*wL7qY-{?-0sCyT(tH03x=&H zLN=0i-LZ*ojsM&NZA=xaJ)Xg?l?H+PK=4QU*+k`(&c%b>V=%|&VbP-K*E`D(U0V)66YbAcsx2tjG?AUc&5LoV^; zLMK@dIfAVtm>8U&9kTIDF=4cB-VQmOl@~T9$dgpRsBaZ<6ft}n^1>Cgz(SsBa9ZV% zWsROOKfB$o4iGoIx09=W)=YizcAp@Hq7t>$@=z#N3tM_ywb4_Pf#qY9*pwURrd3OF z&Qxx~o%`mv->qxwQMwnS>|o0%Z?D-p2I4|I{pmx?RqJTXS<=k)f7D;My)!OwXEhCRvr z!H?L!*VC*|0eOA0X?d)K!^H6+$0daZ1O)kFu84ai49*1h39-%^VuVOKLVnVQ29s~s zggdx`5)qJykvNf`DdU|E%Lib%H86h_7?LcOg|MFGRP9Ep!#P8i6YlAG!Hro8v@ zjJqEFp$WNg_L3C~mqd&ui%A;CltdtrFr@A~XgIEep3|hZBh8Mg`OCd$?iR8u@6|oW zg*4ZkAT-->`pp2NM}Al=+cqG^wwvzCJ!8auQUuev;!|h>u0d*wYWZcDW}Pd(ei+#X(5z^onR(HZw5h@p#+-IYAxtWl9BU?rPF?7|77~f zaCE)zoF*ggnPJ;?_NdoWUf(EZ8vJ67c{L9=`Fp4@nkV$n}*cfDCPBO$=A%WmCB4B{c$?xBI z1SN3Uo=HfSPvE-zIP7=nbLpDvbIJR9@P7FLWJGuoJ{@g`uD3sM6&&OX<&P$ErG(Z$ zNTlOL9g4z$+lC?nwSq*>2s64gaCMK=6%-tlHqea>93b)@wPE|bqfgte{pO_aT}sF>#dP%viuXGF>aHZn5!Xvr_;?^gZ1>elaaXPz zq*zh-9+^}3s;Y|9rZ}eMeO8cQL=gPBXLKh&XAXuW3U*Pva-&h!;3dk$Vto>^?N{sp ze%_=o<*C;O%)FJITF^%%uQ6?zJePKRmG>%+qG|*84n_4{S*qti7s;KEs)BIu9yDjJ zO>2^>#%5z9wShh3Cx!2RBR3`SD<@gmnDHzM9Hyyg^Wx)HMKXQVUXUh7SYaN@d6r@b z0mJ2tk4;_H)jajHU$DZs`Q_6#Q-Z4zNjtK1MZVd_1%({=t&WwfzO0kDBe>03-A7uI zmqt`&0dhImgZCm+rZ#t&BF~a?f>i00 z!0Y4k_@ZNrGDp$*eMXasFJam%(ngW-&4c>Lhh-I3LQAs9muDj_Z>5gtlwV}uKw1(# zV^*SA`K~2jO!`1r$Jaclk1WoslzzxY<=GRR>lhgCkznVYcj!}<@FSCW@(Pk;SV!h# zrK?RpTYuA?O+gSDP%04y^J2=Vag($fpg&B02qcB6@F=c(gyE%Fy(WVl8c_Eg9`L;8 z*ErYFk@qDOWV#YXjkt=Ba$xpF@PU6F8NjQdUTy%Xr_60-fXxD|e9RBHuQOenuCraC za@-b14-K?Gl}9~Zv7)v*Z4PJ-Ub!;AiokWF^}l#U09QqA4%n|VUjzFW8@+t|Jcuyi z<@WDYU?F5jydBTN$f9lWRbL*b(MGSXQ}e5=X;`eFAQLV;ct48kBKJ{I^s;cT2O8{M zj5B1JRjKPFuG}|^&IsyAMGL*-rj|rY&W-=oa*~X${;+RDL~5`(S^_0D4lRJ*B({`W z)1~C$yG=|o#-h>g+oGUQbE{&_0AVFB7ddyYHZU1I=N!ak&3guA&vO2qtpeamHk{1& z<6D|mOfrcjty{evA!)BU*ziFq5w$^@)tT~?fX7wk{1{>^;(a6u1h~D+BUnpR!9Gt9 ze&tt6{B^&a#y)M^7o;)AqMri4R&JcvM-{gmDu67sp$&WdCxzX1W9IXKi@(egnIElP z^p4Y0O`>A!4hmWmt^DsY5zMa%alSj2*)I z-Q}fs%gS2L9-rWLIQ;0Ok1_vTJQXh_w%{ug4wXI0$OhPwf|nsh8*m@)u0NPFbT=-~ z0s9jQHuK0hYKo__#4=Z4NEYt&@B_Lpdw$w8b6L~!psqgL)fEf4NOy!QV}QF-C1HZ* zL=UpMy4Nf8%0)8S1L_t~yoQv_Oq#U!PAe1`2GT23em$b{LUFTL|GRj){`YQ!N6-0F z8_5cTC7$)lDNh_5OCmfd+*T*4k^UfUXO`?(NbArKl3s8%#ykt)=Id>HD}D8Q9Wp>( z+Y94HM8zqvk?q{mX79d>VOFjPd32CRX(~zS0p_vzMy0M`elGFVoPtB_pD^djd=bog zd3?j!MAzEkcX&sp9jf9J8(3uWB=G!6lYvkPEhaYsT;ODFH=_$kif?zR1JFs;Gke-u zMdsQ5pJ#0`>*Ovua~(e_gr&H`O}OY?YM-NvboD?t_{6W`d0<9@~Zi zJqS;XvDE*r?TM`GjZ{E2aBo?%N5L7sE>^O~zO(Iam;6A=?uNvCl8wnXDrj`;5(-*g3we~x%Ec9 zjJw52mdN@{v0$5gjtxoHMrT6MiVBrf!qTz58)VihX97EIG0<<{K9vMjt#;Q%KTdIR?tSVcQ z?!zTJkx#nA5dEZ^)R6rc2{t856I{g<1NP+QDL7=_{wVVeu!~k@{wq+C*K3`c{RflvOd!r4qaEqw)knx{5%4y9**0 z+;-nAZKp8M5Cm{!n%5IDaEGE$EA#;Z=u;r@x-pRF2O!~IHEf=xJy3ro$gw53B4a@5 z*8_4K{eg=uVxlg!XtC1q5PZD38=b@MKW~4a-4Rn}0NCU`05gd6@9gq_m_S_$`ZJ)K%bN&SKRBIOlX|1F3vK&9W8Pnk7_Rkf%pc4z(GIXj^xp#>0l^e+|zx9 zdxm5-rFvj^LU;6DCv4t?XBc4eolFpPkrY5I4a#fSV;~+ve=PYqUz)t);m3K#G@oVu z%%XD1YKAauIly?QXV{VLj~BU}j>tz0iG}!W=_rVH%9RNT~B*~eKu8acz1Xh1JEw78( z(r3KHggY|MsC=7f+H#jeEpaiAeIS`(rCa9ZT0cXu2!dQWFm3163jy6P$E8Nu0dFYo zADpi)jx)fgR($Z`yQ#EsjYkOhQt@%>XKN!QmZsp`;nleM=32UE*@LLz_bKmpU+}Dd z*^op?-pRlxuum(c#8FSqsV*ALwB9VOl*kn9VGM$c2+Y*X8Cdy(+OpN=vp>}42M|jQ z<5Y{20A)5gBo2s@XgFmioJUIhau*U;*2NwT$B~Juh-({*uC%L&9-=|@fb={P?aWKA zV#YDd_luWgMsF)zT~qGu@S_eI(MUYw@4F}+`x(=)@R8srv`p~}d9<@s4ZGbUv2eCog`^ev=;jU{{j>Z=arsXQV^b?*7r?rjrL}|k|0Ku!gZdvABmhi?{dU1Wk^ckgPawb5 z`(Jc`4}S(x{W}nAdt=N0Kb%DV9mqcukN>L&{9dBt*}r4_wP^vdfBsp1tB?Tz!_C~)?SJ+LK&=0bBM!YH>||waYHTMANdN0$?eODe`EeVVpI%n&MpAP6~HOkA8>&8qM#)}&dL8klvZ^Hpc(!H@&5*NuJamd26XohAb#kd8xn)@{{U39 zGyD5$OIS#sgEUJefdZ?%Bq29!xu-W(5_S@Y(yZ1KQ__4Roz4zR6&b`0gbI*~J z*D{WwAw*X7qzrqo$kTenbwujLG; zsvA$WJ#ze-M$d|XnA{bg!@1>FSL5kuI8&o6-1O}yU4EdvcxpJ@PKP6V8DzNjNL0jY zsw$h<1=cn^{MtY7RP$nSodT^lk=oj}fjSuGB2<&tBKKMWFu8%>6V$aZc95BMu`@?* zfmi$PjkwXv&zSP<+{h=2rC_@heJ%~um;D+Z$3j>G{pUryd%d&)zvThM`gydiYOov~ zcEF=pSH$g)X;hR+d4G*Rm);hA8oBloy*-cK^2@7HA*Cnf8_>EmY_4Oet0Gj;{qM#K zHIQ533wY-;S}7%4cBPuV(y5^94S*ByhC6IY;MX*o@rs$XeM_nZ&0^{a>cMVJB5qoI z-EPD*I;s^ds5(sxurlO>dId7894nPDEtJT(p+*5W{eGHNHj#p9@izwk>QaG)rQj%> zmZxCwn{FjMqeg&Y!%T|~FnmK(u6VH_(j?%FyzEht4qcQnX|w`m(lZRkd^#v&awi&ouM?|h RUfw=@P5gVb - - + + - - + android:background="@android:color/black" > - - - + android:orientation="vertical" > - + android:layout_height="wrap_content" /> - + + - + android:layout_height="wrap_content" + android:orientation="vertical" > + + + + - + - - - - - + + + + + - \ No newline at end of file + \ No newline at end of file diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml index 60e3d8fb..5ff10449 100644 --- a/android/res/values/strings.xml +++ b/android/res/values/strings.xml @@ -93,6 +93,8 @@ Submit - Download from ThrustCurve + Download from ThrustCurve + Series 1 + Series 2 \ No newline at end of file diff --git a/src/net/sf/openrocket/android/simulation/GraphicalActivity.java b/src/net/sf/openrocket/android/simulation/GraphicalActivity.java new file mode 100644 index 00000000..8335bd87 --- /dev/null +++ b/src/net/sf/openrocket/android/simulation/GraphicalActivity.java @@ -0,0 +1,51 @@ +/** + * Copyright (C) 2009, 2010 SC 4ViewSoft SRL + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package net.sf.openrocket.android.simulation; + +import org.achartengine.ChartFactory; +import org.achartengine.GraphicalView; +import org.achartengine.chart.AbstractChart; + +import android.app.Activity; +import android.os.Bundle; +import android.view.Window; + +/** + * An activity that encapsulates a graphical view of the chart. + */ +public class GraphicalActivity extends Activity { + /** The encapsulated graphical view. */ + private GraphicalView mView; + /** The chart to be drawn. */ + private AbstractChart mChart; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + Bundle extras = getIntent().getExtras(); + mChart = (AbstractChart) extras.getSerializable(ChartFactory.CHART); + mView = new GraphicalView(this, mChart); + String title = extras.getString(ChartFactory.TITLE); + if (title == null) { + requestWindowFeature(Window.FEATURE_NO_TITLE); + } else if (title.length() > 0) { + setTitle(title); + } + setContentView(mView); + } + +} \ No newline at end of file diff --git a/src/net/sf/openrocket/android/simulation/SimulationChart.java b/src/net/sf/openrocket/android/simulation/SimulationChart.java new file mode 100644 index 00000000..75d5dde1 --- /dev/null +++ b/src/net/sf/openrocket/android/simulation/SimulationChart.java @@ -0,0 +1,227 @@ +/** + * Copyright (C) 2009, 2010 SC 4ViewSoft SRL + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package net.sf.openrocket.android.simulation; + +import java.util.List; + +import net.sf.openrocket.simulation.FlightDataBranch; +import net.sf.openrocket.simulation.FlightDataType; +import net.sf.openrocket.simulation.FlightEvent; + +import org.achartengine.ChartFactory; +import org.achartengine.chart.LineChart; +import org.achartengine.chart.PointStyle; +import org.achartengine.chart.XYChart; +import org.achartengine.model.XYMultipleSeriesDataset; +import org.achartengine.model.XYSeries; +import org.achartengine.renderer.XYMultipleSeriesRenderer; +import org.achartengine.renderer.XYSeriesRenderer; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Color; +import android.graphics.Paint.Align; +import android.util.Log; + +/** + * Multiple temperature demo chart. + */ +public class SimulationChart { + + private final static String TAG = "SimulationChart"; + + private FlightDataBranch flightDataBranch; + private FlightDataType series1; + private FlightDataType series2; + private final FlightDataType time = FlightDataType.TYPE_TIME; + private List flightEvents; + + // Define 4 different colors and point styles to use for the series. + // For now only 2 series are supported though. + private final static int[] colors = new int[] { Color.BLUE, Color.YELLOW, Color.GREEN, Color.RED }; + private final static PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE, PointStyle.DIAMOND, + PointStyle.TRIANGLE, PointStyle.SQUARE }; + + /** + * @param flightDataBranch the flightDataBranch to set + */ + public void setFlightDataBranch(FlightDataBranch flightDataBranch) { + this.flightDataBranch = flightDataBranch; + } + + /** + * @param series1 the series1 to set + */ + public void setSeries1(FlightDataType series1) { + this.series1 = series1; + } + + /** + * @param series2 the series2 to set + */ + public void setSeries2(FlightDataType series2) { + this.series2 = series2; + } + + /** + * @param flightEvents the flightEvents to set + */ + public void setFlightEvents(List flightEvents) { + this.flightEvents = flightEvents; + } + + private static String formatFlightDataTypeAxisLabel( FlightDataType fdt ) { + return fdt.getName() + " (" + fdt.getUnitGroup().getDefaultUnit().toString() + ")"; + } + + /** + * Executes the chart demo. + * + * @param context the context + * @return the built intent + */ + public Intent execute(Context context) { + + int seriesCount = 2; + // if the same series is selected twice, only plot it once. + if ( series1 == series2 ) { + seriesCount = 1; + } + + XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(seriesCount); + + renderer.setAxisTitleTextSize(16); + renderer.setChartTitleTextSize(20); + renderer.setLabelsTextSize(15); + renderer.setLegendTextSize(15); + renderer.setPointSize(5f); + renderer.setXLabels(10); + renderer.setYLabels(10); + renderer.setShowGrid(true); + //renderer.setZoomButtonsVisible(true); + renderer.setChartTitle("Simulation"); + + renderer.setMargins(new int[] { 50, 30, 0, 20 }); + { + for (int i = 0; i < seriesCount; i++) { + XYSeriesRenderer r = new XYSeriesRenderer(); + r.setColor(colors[i]); + r.setPointStyle(styles[i]); + r.setFillPoints(true); + renderer.addSeriesRenderer(r); + } + } + + renderer.setXTitle(formatFlightDataTypeAxisLabel(time)); + renderer.setXLabelsAlign(Align.RIGHT); + + renderer.setYTitle(formatFlightDataTypeAxisLabel(series1),0); + renderer.setYLabelsAlign(Align.RIGHT,0); + + if ( seriesCount > 1 ) { + renderer.setYTitle(formatFlightDataTypeAxisLabel(series2), 1); + renderer.setYAxisAlign(Align.RIGHT, 1); + renderer.setYLabelsAlign(Align.LEFT, 1); + } + + renderer.setAxesColor(Color.LTGRAY); + renderer.setLabelsColor(Color.LTGRAY); + + XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); + + List timevalues = flightDataBranch.get(time); + List series1values = flightDataBranch.get(series1); + + // compute the axis limits using timevalues and series1values. + double xmin = 0; + double ymin = 0; + renderer.setXAxisMin(xmin); + renderer.setYAxisMin(ymin); + + double ymax = computeMaxValueWithPadding( series1values ); + double xmax = Math.ceil( timevalues.get( timevalues.size()-1)); + + Log.d(TAG,"ymax = " + ymax); + renderer.setXAxisMax(xmax); + renderer.setYAxisMax(ymax); + + // Don't allow pan & zoom just yet. + renderer.setPanEnabled(false,false); + renderer.setZoomEnabled(false,false); + //renderer.setPanLimits(new double[] { xmin, xmax, ymin, ymax }); + //renderer.setZoomLimits(new double[] { xmin, xmax, ymin, ymax }); + + // Add first series + addXYSeries(dataset, series1.getName(), timevalues, series1values, 0); + + if ( seriesCount > 1 ) { + // Add second series + addXYSeries(dataset, series2.getName(), timevalues, flightDataBranch.get(series2), 1); + } + Intent intent = getLineChartIntent(context, dataset, renderer,"Simulation"); + return intent; + } + + private static void addXYSeries(XYMultipleSeriesDataset dataset, String titles, List xValues, List yValues, int scale) { + XYSeries series = new XYSeries(titles, scale); + int datasize = xValues.size(); + for( int i = 0; i list ) { + double max = list.get(0); + for( double v : list ) { + if ( v > max ) { + max = v; + } + } + if ( max <= 0 ) return 1.0; + + // Do something stupid. + // return: + // 10 if max <= 10 + // next 10 if 10 < max < 1000 + // next 100 if 1000 < max < 10,000 + // next 1000 if max >= 10,000 + double numdigits = Math.floor(Math.log10(max)); + + if ( numdigits <= 1.0 ) { + return 10.0; + } else if ( numdigits <= 3.0 ) { + return 10.0 * ( Math.ceil( max/10.0)); + } else if ( numdigits <= 4.0 ) { + return 100.0 * ( Math.ceil( max/ 100.0) ); + } else { + return 1000.0 * ( Math.ceil( max / 1000.0 )); + } + + } + +} diff --git a/src/net/sf/openrocket/android/simulation/SimulationPlotFragment.java b/src/net/sf/openrocket/android/simulation/SimulationPlotFragment.java deleted file mode 100644 index d91e1351..00000000 --- a/src/net/sf/openrocket/android/simulation/SimulationPlotFragment.java +++ /dev/null @@ -1,255 +0,0 @@ -package net.sf.openrocket.android.simulation; - -import java.util.List; -import java.util.Vector; - -import net.sf.openrocket.R; -import net.sf.openrocket.simulation.FlightDataBranch; -import net.sf.openrocket.simulation.FlightDataType; -import net.sf.openrocket.simulation.FlightEvent; -import android.app.Activity; -import android.graphics.Color; -import android.graphics.PointF; -import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.MotionEvent; -import android.view.ScaleGestureDetector; -import android.view.View; -import android.view.View.OnTouchListener; -import android.view.ViewGroup; - -import com.androidplot.xy.BoundaryMode; -import com.androidplot.xy.LineAndPointFormatter; -import com.androidplot.xy.LineAndPointRenderer; -import com.androidplot.xy.SimpleXYSeries; -import com.androidplot.xy.ValueMarker; -import com.androidplot.xy.XValueMarker; -import com.androidplot.xy.XYPlot; - -public class SimulationPlotFragment extends Fragment implements OnTouchListener { - - private final static String TAG = "SimulationPlot"; - - private XYPlot mySimpleXYPlot; - private SimpleXYSeries mySeries; - private PointF minXY; - private PointF maxXY; - - private float absMinX; - private float absMaxX; - private float minNoError; - private float maxNoError; - - private ScaleGestureDetector mScaleDetector; - private float mScaleFactor = 1.f; - - @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - Log.d(TAG,"onAttach"); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - Log.d(TAG,"onCreate"); - super.onCreate(savedInstanceState); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - Log.d(TAG,"onCreateView"); - View v = inflater.inflate(R.layout.motor_burn, container, false); - mySimpleXYPlot = (XYPlot) v.findViewById(R.id.xyplot); - mySimpleXYPlot.setOnTouchListener(this); - mScaleDetector = new ScaleGestureDetector(v.getContext(), new ScaleListener()); - // Motor motor = getMotor(); - // init(motor); - return v; - } - - void init( FlightDataBranch data, FlightDataType selectedSeries, List eventsToShow ) { - - mySimpleXYPlot.clear(); - - if ( data == null || selectedSeries == null || eventsToShow == null ) { - return; - } - - mySimpleXYPlot.setUserDomainOrigin(0); - mySimpleXYPlot.setUserRangeOrigin(0); - mySimpleXYPlot.setRangeLabel(""); - mySimpleXYPlot.setDomainLabel(FlightDataType.TYPE_TIME.getName() + " (" + FlightDataType.TYPE_TIME.getUnitGroup().getDefaultUnit().toString() + ")"); - mySimpleXYPlot.setRangeLabel( selectedSeries.getName() + " (" + selectedSeries.getUnitGroup().getDefaultUnit().toString() + ")"); - mySimpleXYPlot.disableAllMarkup(); - - for ( FlightEvent event : eventsToShow ) { - XValueMarker xmarker = new XValueMarker( event.getTime(), event.getType().toString() ); - xmarker.setTextOrientation( ValueMarker.TextOrientation.VERTICAL ); - mySimpleXYPlot.addMarker( xmarker ); - } - - List yvals = null; - List xvals = null; - try { - yvals = data.get(selectedSeries); - xvals = data.get(FlightDataType.TYPE_TIME); - Log.d("plot","data = " + yvals); - } catch ( Exception ex ) { - Log.d(TAG, "Exception: " + ex); - } - if ( yvals == null || yvals.size() == 0 ) { - yvals = new Vector(); - yvals.add(0.0); - yvals.add(0.0); - yvals.add(1.0); - yvals.add(1.0); - } - Log.d("plot","data = " + yvals.toString()); - - mySeries = new SimpleXYSeries(xvals, yvals, selectedSeries.toString()); - - mySimpleXYPlot.addSeries(mySeries, LineAndPointRenderer.class, - new LineAndPointFormatter(Color.rgb(0, 255, 0), Color.rgb(200, 0, 0), null)); - - //Set of internal variables for keeping track of the boundaries - mySimpleXYPlot.calculateMinMaxVals(); - - mySimpleXYPlot.redraw(); - - minXY=new PointF(mySimpleXYPlot.getCalculatedMinX().floatValue(),mySimpleXYPlot.getCalculatedMinY().floatValue()); - maxXY=new PointF(mySimpleXYPlot.getCalculatedMaxX().floatValue(),mySimpleXYPlot.getCalculatedMaxY().floatValue()); - - absMinX = minXY.x; - absMaxX = maxXY.x; - - minNoError = Math.round(mySeries.getX(1).floatValue() +2); - maxNoError = Math.round(mySeries.getX(mySeries.size() -1).floatValue()) - 2.0f; - } - - private float mPosX; - private float mPosY; - - private float mLastTouchX; - private float mLastTouchY; - - private int mActivePointerId = -1; - - @Override - public boolean onTouch(View arg0, MotionEvent event) { - mScaleDetector.onTouchEvent(event); - - final int action = event.getAction(); - switch ( action & MotionEvent.ACTION_MASK ) { - case MotionEvent.ACTION_DOWN: { - final float x = event.getX(); - final float y = event.getY(); - - mLastTouchX = x; - mLastTouchY = y; - - mActivePointerId = event.getPointerId(0); - break; - } - - case MotionEvent.ACTION_MOVE: { - final int pointerIndex = event.findPointerIndex(mActivePointerId); - final float x = event.getX(pointerIndex); - final float y = event.getY(pointerIndex); - - if (!mScaleDetector.isInProgress()) { - final float dx = x - mLastTouchX; - final float dy = y - mLastTouchY; - - mPosX += dx; - mPosY += dy; - scroll(dx); - // do scroll. - - } - mLastTouchX = x; - mLastTouchY = y; - - break; - } - - case MotionEvent.ACTION_UP: { - mActivePointerId = -1; - break; - } - - case MotionEvent.ACTION_CANCEL: { - mActivePointerId = -1; - break; - } - - case MotionEvent.ACTION_POINTER_UP: { - final int pointerIndex = (action & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_ID_SHIFT; - final int pointerId = event.getPointerId(pointerIndex); - if (pointerId == mActivePointerId) { - // This was our active pointer going up. choose a new active pointer and adjust accordingly. - final int newPointerIndex = pointerIndex ==0 ? 1:0; - mLastTouchX = event.getX(newPointerIndex); - mLastTouchY = event.getY(newPointerIndex); - mActivePointerId = event.getPointerId(newPointerIndex); - } - break; - } - } - return true; - } - - private void zoom(float scale) { - Log.d(TAG,"zoom by " + scale); - float domainSpan = absMaxX - absMinX; - Log.d(TAG,"domainSpan = " + domainSpan); - float domainMidPoint = absMaxX - domainSpan / 2.0f; - Log.d(TAG,"domainMidPoint = " + domainMidPoint); - float offset = domainSpan / scale; - Log.d(TAG,"offset " + offset); - minXY.x=domainMidPoint- offset; - Log.d(TAG,"min X " + minXY.x); - maxXY.x=domainMidPoint+offset; - Log.d(TAG,"max X " + maxXY.x); - checkBoundaries(); - mySimpleXYPlot.setDomainBoundaries(minXY.x, maxXY.x, BoundaryMode.AUTO); - mySimpleXYPlot.redraw(); - } - - private void scroll(float pan) { - float domainSpan = maxXY.x - minXY.x; - float step = domainSpan / mySimpleXYPlot.getWidth(); - float offset = pan * step; - minXY.x+= offset; - maxXY.x+= offset; - checkBoundaries(); - mySimpleXYPlot.setDomainBoundaries(minXY.x, maxXY.x, BoundaryMode.AUTO); - mySimpleXYPlot.redraw(); - } - - private void checkBoundaries() { - - if ( minXY.x < absMinX) - minXY.x = absMinX; -// else if ( minXY.x > maxNoError ) -// minXY.x = maxNoError; - - if ( maxXY.x > absMaxX) - maxXY.x = absMaxX; -// else if ( maxXY.x < minNoError) -// maxXY.x = minNoError; - } - private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener { - @Override - public boolean onScale( ScaleGestureDetector detector ) { - mScaleFactor *= detector.getScaleFactor(); - - mScaleFactor = Math.max(1.0f, Math.min(mScaleFactor, 5.0f)); - zoom(mScaleFactor); - return true; - } - } -} - diff --git a/src/net/sf/openrocket/android/simulation/SimulationViewer.java b/src/net/sf/openrocket/android/simulation/SimulationViewer.java index a3e59038..3746cb5f 100644 --- a/src/net/sf/openrocket/android/simulation/SimulationViewer.java +++ b/src/net/sf/openrocket/android/simulation/SimulationViewer.java @@ -9,36 +9,27 @@ import net.sf.openrocket.document.Simulation; import net.sf.openrocket.simulation.FlightDataBranch; import net.sf.openrocket.simulation.FlightDataType; import net.sf.openrocket.simulation.FlightEvent; +import android.app.Activity; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.FragmentActivity; import android.util.Log; import android.util.SparseBooleanArray; import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; -import android.widget.ImageView; import android.widget.ListView; -import android.widget.SlidingDrawer; +import android.widget.Spinner; import android.widget.TabHost; import android.widget.TextView; -public class SimulationViewer extends FragmentActivity -implements SlidingDrawer.OnDrawerCloseListener, SlidingDrawer.OnDrawerOpenListener { +public class SimulationViewer extends Activity { - private final static String TAG = "MotorDetails"; - - private SlidingDrawer slidingDrawer; - private ImageView handle; + private final static String TAG = "SimulationViewer"; private ListView eventList; - private ListView seriesList; - - private SimulationPlotFragment simPlot; + private Spinner series1Spinner; + private Spinner series2Spinner; private Simulation sim; private FlightDataBranch data; @@ -54,15 +45,6 @@ implements SlidingDrawer.OnDrawerCloseListener, SlidingDrawer.OnDrawerOpenListen sim = ((Application)this.getApplication()).getRocketDocument().getSimulation(simnumber); data = sim.getSimulatedData().getBranch(0); - simPlot = (SimulationPlotFragment) getSupportFragmentManager().findFragmentById(R.id.simulationPlotFragment); - - slidingDrawer = (SlidingDrawer) findViewById(R.id.drawer); - - slidingDrawer.setOnDrawerOpenListener(this); - slidingDrawer.setOnDrawerCloseListener(this); - - handle = (ImageView) findViewById(R.id.handle); - TabHost tabs=(TabHost)findViewById(R.id.simulationConfigurationForm); tabs.setup(); @@ -74,14 +56,12 @@ implements SlidingDrawer.OnDrawerCloseListener, SlidingDrawer.OnDrawerOpenListen tabs.addTab(spec); spec=tabs.newTabSpec("tag2"); - spec.setContent(R.id.simulationSeriesList); + spec.setContent(R.id.simulationSeriesSelection); spec.setIndicator("Series"); tabs.addTab(spec); eventList = (ListView) findViewById(R.id.simulationEventsList); - seriesList = (ListView) findViewById(R.id.simulationSeriesList); - // Initialize the eventList ArrayAdapter events = new ArrayAdapter(this,android.R.layout.simple_list_item_multiple_choice,data.getEvents()) { @@ -102,6 +82,9 @@ implements SlidingDrawer.OnDrawerCloseListener, SlidingDrawer.OnDrawerOpenListen eventList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); eventList.setAdapter(events); + series1Spinner = (Spinner) findViewById(R.id.simulationSeries1); + series2Spinner = (Spinner) findViewById(R.id.simulationSeries2); + List selectableSeries = new ArrayList(); for( FlightDataType fdt : data.getTypes() ) { if ( fdt == FlightDataType.TYPE_TIME ) { @@ -110,7 +93,7 @@ implements SlidingDrawer.OnDrawerCloseListener, SlidingDrawer.OnDrawerOpenListen selectableSeries.add(fdt); } } - ArrayAdapter serieses = new ArrayAdapter(this,android.R.layout.simple_list_item_multiple_choice,selectableSeries) { + ArrayAdapter serieses = new ArrayAdapter(this,android.R.layout.simple_spinner_item,selectableSeries) { @Override public View getView(int position, View convertView, @@ -118,7 +101,7 @@ implements SlidingDrawer.OnDrawerCloseListener, SlidingDrawer.OnDrawerOpenListen View v = convertView; if ( v == null ) { LayoutInflater li = getLayoutInflater(); - v = li.inflate(android.R.layout.simple_list_item_multiple_choice,null); + v = li.inflate(android.R.layout.simple_spinner_item,null); } FlightDataType fdt = this.getItem(position); ((TextView)v.findViewById(android.R.id.text1)).setText( fdt.toString() ); @@ -126,24 +109,12 @@ implements SlidingDrawer.OnDrawerCloseListener, SlidingDrawer.OnDrawerOpenListen } }; - seriesList.setChoiceMode(ListView.CHOICE_MODE_SINGLE); - seriesList.setAdapter(serieses); - redraw(); - - } + series1Spinner.setAdapter(serieses); + series2Spinner.setAdapter(serieses); - @Override - public void onDrawerOpened() { - handle.setImageResource(R.drawable.arrow_down_float); - } - - @Override - public void onDrawerClosed() { - handle.setImageResource(R.drawable.arrow_up_float); - redraw(); } - private void redraw() { + public void draw( View v ) { List eventsToShow = new ArrayList(); { SparseBooleanArray eventsSelected = eventList.getCheckedItemPositions(); @@ -154,16 +125,18 @@ implements SlidingDrawer.OnDrawerCloseListener, SlidingDrawer.OnDrawerOpenListen } } } - FlightDataType selectedSeries = null; - { - int selected = seriesList.getCheckedItemPosition(); - if ( selected >= 0 ) { - selectedSeries = (FlightDataType) seriesList.getAdapter().getItem(selected); - } - } - - simPlot.init(data, selectedSeries, eventsToShow ); - + FlightDataType series1 = (FlightDataType) series1Spinner.getSelectedItem(); + Log.d(TAG,"sereis1 = " + series1.toString()); + FlightDataType series2 = (FlightDataType) series2Spinner.getSelectedItem(); + Log.d(TAG,"series2 = " + series2.toString()); + + SimulationChart chart = new SimulationChart(); + chart.setFlightDataBranch(data); + chart.setSeries1(series1); + chart.setSeries2(series2); + chart.setFlightEvents(eventsToShow); + + startActivity(chart.execute(this)); } } -- 2.30.2