From aae1b5494fc19430da86a2385d297d9c84836a35 Mon Sep 17 00:00:00 2001 From: Frederic Bouvier Date: Tue, 19 Apr 2011 22:32:23 +0200 Subject: [PATCH 1/4] Remove vim swap file --- src/Main/.renderer.cxx.swp | Bin 49152 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/Main/.renderer.cxx.swp diff --git a/src/Main/.renderer.cxx.swp b/src/Main/.renderer.cxx.swp deleted file mode 100644 index 9ebc72734e90afd3e326c450895b3ceb453748b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49152 zcmeI537q6fRp%4s8ibMI@PJkS-6K6&HFb6O3=G*ljn#E^IdxH4)pIeV*_r>$%IUnw zqpFLZ85G$;U2#zmbOnZ0M|U`cRad!&b&*4m8@vDkVNm4Kbs5A}VZZN1#Q(~FRo4ut zxSz_IUv=jHALomR7x7-acyVUp^!%dtq_HCzK99^~UiKq*ElysO$vkc%lkq#Xv-0>t zpVeZ!*Xmp-R3>wqBskvfl*TL7N_V_cuT?jCRlnHLXN$#JbG+j>%YMi2jFrxvyKsX0 zA@(V-Pl3Hrpx>*EUiFB~(IbZ^Eq0eG2STV4ni}6xgT0 zJ_YtE@c#`3dhLg0zD{kv4Qzu4SUi}2MWlbG{rxchZGtb@-xu+38{9wyiSr#`4!q0$ zejwkU1}-6CdH*1A18CUa58-q0eG2STV4ni}6xgT0J_YtEa6c(fEbF#^=AohhVEGCvLGz~jO9fDb)9lX)SS1V02W2ag38gGYeBM`7?u z@Mqvp!5hHq!LNengC7Gea3i<@Oo3r=3HV2p5uXO{0{;X2GI$=?24(QWU>tlm_;&DD zC@Veyeh2&_cs4i-*1;MW21DQy@D&sh_ks_CJHa_{4LAh8jMCyQ;Q8Q2Fb*CBK83R6 zP2gui16&Knz-8bNxEJNem%&HC?}1+d&jA%M4~D_R!T&~S@-FaF@Dgx4Xo4HSQ@{c6 zVDLF~B7Y4&4BiOt051bKfK_k+e3|zA5_k=GHnk>xY2Y$K%uLR&%*iwPtVF z+u*Nvwb$(xd$m%bRP6SShi^}0<+(rE>vd{p`aOT>SVp23yIsH2%a*sB#l{{YX{_@a zQ(_N(G{dD<**{(D*03-c9?E#$X06lf7wg_;t5)_}ZNF3GO?D`&f%CCq4QuhkVvZ2~ zymu>qJ+CpFACeqr=Y%Bd?J`xKD%R^~ilwtzLUwyz zX`|Q~_QF_0UM|z_pQ+bMxlE}JJyIikInM+#1dkUwmveb|=QEjpx7MtB(9`d>izVL+ zZDx)QyzAB)VoWpm0@57IWG<~WOZ9%)_l~Qj&1TKtYE(O88|TiQNPCA3PW;uu*}0ib zzu7xgY?kZh?ZGhO!70kvDb96T{kBAmzG`6ElYAB!`Xs`3+mLO;gbq_bKGUS#Tg?Xf zkGDI1sn)JZ&ulddDRr2qX*zugt3k$3txpRQ^*KJbK0n^{w+hvME%_>6@|%8V8*`*` ztKZw{ZP$cKzFwqH)yIpahWwlUQeUN%+(c~`n|{4X>}2GrR_QDiAJ+iMmut0#KdvTK z7kU$+tL-!6euTc8wJrm!U>=#YGM8ePRjZ^#?3Oyd-yFZWU9A*LjKpo1d8O=E=>3Hs zUYVII4c6y5qk4<}z_T+6C>^8jKf7 zkZ%LzbD`RuR=Z0#;_prgNe3$R`W=6KIX}1FtJQZ7DV<=vS1q3zZ}$pH|Gk8jfzm85 zhy~nYv01DR47cO1wA#zY`;=ikKc^jY9X2~%>=kz`ycS7gtg1a7ybgxl>|LN>HV?z; zEYICNkM7y+aj<(J?d;=>>k`e_92iaUdYZt+W{sY~@V-FGaO6&{SRW^Fy>@1&z}m_3 zbBpvf6C~0R;f>QL$FJ?wdj4#!?nnC{uf}Vwf>5P!|=h}Vqt$wF8kg@66!U0nwB_GNRn|!8oN%G-rtD1Z??Y9SuJk_t) znOI9_lcD9sEM0Nnxz1n7rzh(SpxJ)2lzcH+Z*LUSUUd9Qq1}u3g5Gx9uQe;JXd;`o zvxL)fqu7oHsI_21e!MFb>(v%rb%Xv9>BDXWm0FE9eVB<`UR#dsdBMEDRfEZH!2~25 z<zBXStl^V$`Zjy1PmX~Jd=OoJbxHl`TOo!`;H{UFcjd)ic_GV$} zXX~}5m!}qfZ^WCeReBrVY`xX$jCd!hT&p?aElzsg#F4{?Cq@q+oj5$=t>-7lB*|jE z#kyyUs(QVRTGxYF%dj}+)hb@IMQU3zV!d9A*FJgqzL#%RdRxVgFVU}W^}X&!t6wjB z8^ulEW5wXtHvO_!WUyIfNSciB%>n{ymYqaY%szZGt zb5ANHvDYG`@}OF|MioZUE4X1Nlm;`u}PN*sUz9302#-K-Bf>yPSTON z*~?B1d553;E(UKwCchPQ!BfEj;DN6o zlm7;IHFyE|86fid)!;a|2z(B?{I9|5!0&=*fiqwNjDrV&4%Ez}4Uo5c+#y|MM+I0Z|sn zcw#yg78D&;nOpf!-gkUN1^6o(1EUGq>~4;gTWcNWo=&$|&x)|^cScWC{hpDNvqK|j zGJ=P?td}LdK5tunib-5D*ldd~rcQEW=wd|B*0fHOLc4{^#YT{zFc%aP@+OzdON>J% zA_+t@lsDN48;?mfdm!@Gl`)Ztcj!zs z>b_QVo~01KSu1-G%DiVyEfM`rE@%EFy8fozj^;sed=x&%GUqdATCKXU%w{i{e0Fxu zh(13085e&Dc42ap5-b+mEG5dme2+g>%}w|?YzEuT^^NZ62^RY;y2J^u6aF&EoL4fy zm(iSgT12LxXH2m;vsxpYdoITkM%7n`Jdzx-O_%bPEJP9IdGy0B?Jbje2VRcEkzr-j zV=3vEb1)D-VQG;RbQSFPVD;5*wo8+j3nkXS1zzd1NWal3L)yfwM^LhC)>{3pC*eI8 z-ee)!$cLvv7hf!P&zc-!k0KdJCu{V(y}T)wL@rZQ0NXyGL-Is(hY;+bx%j*6S{W+~}agp?TxBA;75zuxsN?=z2*RdY{w z`*+yO4%1%AMjc9)O47K0q{{4;ed;?~rW8sg$S$$JA<}1}`5SshpJ-#ik-SE~-mA6i z+hGruVDXL=kC^@ooqaGwqJuW2UKb*EYO7_^v)$$Ca9E%edWXZxC2>J=OSuM9iWMwA zMB&@bE|P6yxr5-99lH8z=49E8kmW`$hrGI0SX^INn_pSD-p%z=ns_QnhGSC+63^vU zXBH;c=FvN>&Pp;ti8ME&o1r}%>*aP4A=xE^#Rx&TAUz2@Fhhk@mZ?!Et>_4oy6iYd zNrGvgL#9m8xfZgmFDw)mC-c_~c~@WUMar)Wfla-$XcOdjqa*3Yc-Z_M6>W zwTZCDipSIG9J-n%ri3IJ8a?(XF|$Drm8f-6ml-uOiPcQD(Q2eE8KSexKuIIx2li=G z)EvoKR~&H9Rs*iu+6-AJ?_#-{MvA8;CD&5N6H?`n>7rrFM-ww-im!UI!xAl?ejYlK zL5ImQk&#m0tm$;mvDk(IWlf%kEFWQIDQy%oA{H5l>5`af!f*idW`N0uZ+oUa{j97^ zBPFC=WrI@IhS@`jcd3g3vqT}9NE8wweKnx+{~<)KSD*tB`Cn}I-;R9$EU*L?!BKDt z_!x5iZ-Fl8fE&SMK?Zyn`To~H3tR(c!1sf{M81Cqcm=o_{2=%X60Jdyv)N3Vt7mT>oq! za=pm#j{~1)fBkdd!{CG9C13*_0bhjHp9X&ngzk5N3xA}8$tOQ|+Am#E@k(_zd#74; zcE9V0BWJe@CH>*}*}%di?46Pfz>)9z6t|_bLgm`X-WSnG@t`>vc9$O04zV+MV+uhnTeJMaV zlqnI!a4j>!!7%5NF;1;vsmx@U2kk`Of#OHlcf` zmCzN9tcO0|>-3vV7ey4M9$N@)6rZB|M-wYbY?o&Z%Y=eR-oB{6r38m3CMLXw&xWGx zC-|4aQdTMMrJoMU0-pxL??0;{H#-diQpaBjcJ1+I?)9c-03{wS)=MCg#x@6eB7-XV(E;hQR z=CgCUS?3Mcsi;v~7=s`CV)#Th*5KX#8PjsvgLTo7Ls<%uSb2G=A5po>x~5PRWp-a1 z+Krj~+>~11FqEfjY}kl+UaV`;x>?zxD70IwdkS3?K0P0GiQn9iw901Fol=;wL`B)N zpPj#MaYnm^6vQ@QD*JF{8jY06HKZ=qT!3hyHD!G}P>NkMbD>8=%9-ZTv<51_ki37g3TfJQ%iK*48RP%l>=;Oj;X)KJb+T+G3XS67Lo(CCuy7_7Qy6tu58Rcc4 zz1A(2bGb(GT$cGGdt~fN_DJGAsMb&e4ft3|R5jxsfoys--)s>pCE4#%CZPsFp0P9W zST>qHp-QcTnzOf|n>(tCV;4@V;dr)D);WH>=gP?}XClcEJfPMWo$W%sMWM=Ws4e8ps_>t)$h>lC+ycW=X-VY%$uwl`{} zF8UMMGAs|V&@n9}oCfoWo=#SQDdA+ZEX(6=7RxLnS0Tj8)-PL;B97)IRuDRuTVAqc zaLG~k#;RYeueMqw%>=dFnNoF<#w0(-VW~m6)x507u2}J`NK`FjE+|4HHSsGIcu;qU zKF0p1*-Vzux}V%?`oXkCVTz><&u_GuDUe2`ux?{on}yA`7AeSdr76*oIxb*0BfTI} z;9|KvwNa~=QDB>5uc`@}EdE7%w`1_gY%(R&gH%6=Kvj!f9Zf7EdTu9G3pZvqjT`J9 zvac?i!Lo}1IVd4B3A^DzMbG%9A{=T&UXmTQUKmMk_}i9@TWmyY9$hpBtSWS>4@s&e zryy%g{AL2v$sMK(^$=-Utw3*7J9baskWRag5^%?wceh**VBHgtuOS2wnI|AZ*DQ-n zuXQ$-+RbK-Syg8{kHJA{!@aY~nr^3WFeu%ke+6CBgg1@i*pBC6PiR({k>XT+8qg+4 zgCnQ&Ti;JJUW&4;kW}+?*eNmuR>T6(z1d5&m3~TSE%}_}G;A`AmR+BRj4mj2gvB}K z53ya9NCBE+IcaKW#bCA6$>n%6ZJIqGIt|{g_p7$cctkWz+KpBn{HaZXq0dZH2orzn z+In~9!4k&?&san9P0>0KZmR!Q* zY!M?*b}s6*3=h@eOT?WEy%MHA%ua_IjY*7XB_d&tsr-K!p8RT&L6QIEjQ)F(^`8f1 z|NnN72M+@uMb7^S_(?Dceh54Pd?&aVybpO_&H-ExhQL1{>wguz3p^ief?*)G|L+06 z34Cw_JPiB;vi=`{H-o!@*!BBh1bhLR{|#Up%z#INzd+9aBzPP62`~d5D8G^SUkJ{C z0(d+S+5d&$1>hEN0~iMXhS_rQz51~>-(0r~#V!N7-IY2f%L)0^Dp>@# z0+X@dVe#(;yPm;{-i6fQ>3@b{qtk`ynYq=OnS5bwxv)ApJwLgWXSmsHQsRjfKVpW8 zT)`R`TRY@pl~TsByDn{vmi;QLCv+l1(X`^Ru(4^Cpt#>1FS1H)L!!~My}@X9SxOjyP9z3&fmZKN}6}#|7F@_(Lm6nP}BHKn*HL0{>cd}Ou7Ts}DxDtfj zW)dO2$60~N{6e8ZgL^{L!tBhoj((xjcPYH~%-`+zP z&??l+g?>AdZa@?!mQK%gtihbLiU^X}ER3jGhjfK7vfopJib8Er9hH%=w+8JXzdVnS z46{PFPop)fOyjahi&U1WK02V(g53_Ke7`yEmzX%TgGDN1Qr<1zs>t1wG6RVX@$OMm z#&DM=jWr3HJgdbC`@k+Om>PVSHVg(mOY43+Z&*M!W9n)Cj*Fqa5!!?2@DtULbo@4I zpI(+JS2Ua>UYto;nmRp#q!)?ln4j0xHOCH-M_8~%2S_wAJ5Cb;k~$%gvV_#*8g3NH z)(B`pZA{_E8Z8d3Xjc)ngzY}zLpP447B)uEw|Er92p*2tw$@;rz0=2 zLt~iiVsB&@A(8x8(%8t7UnF{BNbHz^grnioN)UUsOBurGi82H)(js#{;_SAn#4YV2 zN-5L)V*%YRL`v-~rnN)?MDQz6CBpgPh1y((H6tdP6`>N)M3Ou-4w0@5BFWR8<5bDQ zd=l!_9ft2?w!Npylp*I};C z_nT@eFWTgsclgSQ5eBWmJ6o%_8a|6rqor~?Tm<$oQWB(3qj%{yGZI}s zlu{He&{kh-IH$)(JIAg{mnFNXU0PdBXU1>$19Za)K8x&ax6W*eeX~6!%Y0rF6*H)e zymQlSLyh-YLa>r9+9hNG&7E+~@nKI`8Jb5qBqe*&TbTHxPbz!E<8~6VO&3OGu*TQc zunv`F#$A}vN{?-~!R4uKVOKI19#Sm3Q-eLO`&ux~8!y1X>w$7aw`0Q4;SLb=x6~2^ zfsvqOA2SS#)&S#5R0mbR99LX_6ZU5JzAr2G|A@?)d#wB~KL6f{tp9rOB5)R51AYK} z4H^Gl@Imli@HX&Yz>C3)z|VskD1sHR06ZXP0zQU5;G;ln1lnL7d>8l>`hX6&3VaD2 zz!$+C;AKE`15W@4z{k)5yaH?iu@6`Qmw`jz+rR_BN6`t0oxt7TRp6E2=fJbTdGJhd z1rVLVp98TU_yBl6_$BZHunqcP9$XF{1VpFsK6D7b2z~+F3Qhp0Q@9a5!sEf?fSeT& zeZr3eu_O3?@Hp`I=ndWrUIFd`KMpFu2R{fd29E%rM}Ht^`fmrvz%Y0exCDF^-N9$T zJ>Zkz6X5yaD3}13fgc2y0%=dNF_4ctiLSDZIj$GiASDi@i?SJ|fF5)g3oVSM*>l@u z=FKtO`QM$vS3TMC8L<{ce&)y)wyJ7=t}o;e&2szDkhN<*&lZ51$?vG>Jf;RTJ14%z zF*;;Xlf~YWqp(P99-nG`rPVg-IJcJ3M^hZ6YWBhx8n{w51UfpcnpmVovtVFYms)Ih zi=tWs^59yO-MWvUx{#vPcw@rlv+Y&FgcO~6w^;E}ZFl?zGd#z(HaN+%g&v%@?ON%q zCPf+JvZ7m4>1l6~84X7XWUa6(!AIrk1c-er53@Zrud)W+I4M(*1t`nDeCrEP_|g~BA(bCYXp ztMexdC+F8hb)z&g3r{98Q4CMk>!Z$HX8w z^$-M{+#$$$@>G*Ap~gH%?)3b!Sx##Y&&z6*^A+-s?UzJ3@1=wvHj5WA;F4VljVZ!c ztjq73*{WD+bR>a8bR_pZ%r<3L&DJ_lLd$+^uzA5t6iH_JX};%ji_6oTPh6W3sW2pX z-fq%~A~{RrOwX*Wohq!&<#n*Dp;j&QH1a^n2@F>@&n7V0!_%IBRy21NJy=oWC$8`jrY=m6mQR znsX%xi>$Uf!Z~GVrEYd*hY}7{QbQ#stZBQ4_AfSBh1+ZK0XsMW?lwooQ-K0z$lj-! zsol54mnlgb?q7qiYDU`8$GZEB)g06K*WiR9-5n48CbM*#oN{)U3Cw+M=DM}@)tSPP z9T{!Fx>7mcwfxg4lhrAo#|@9g`J(u%jzZ)Qf-hY_q(fR@DMZX_e)luREp=SLi!=~fl) zIMAS-7E@oDLPY+*1R3!!to+~N`x}t;+u#cDC1m%zK@Xe&{|A}$q1c*HUJ|O1;-U)sV6u?d31jvGqBfH-X-UM3UdLT9e z_aeWGFTeMLJ3t*A27ihC{sHj2pbdt=gTZH!*X6u_3mgDnKt>nY{ng-Cz)Qiiz^&jG zumxto6c`1U1Cj5a0OYK|XTjUSTfy&xH-jGq;=AuAa3i<@tb;5#1pbN}1AdkiK9KGaxrc#~mH`;laravbp zeQPa^7430Bcs-Zx@(hxVSVI~0l%^ZCKosLGJ#A)I=H|OQs)u(HIqi+YPzxbz)uD`< zB4*5(7w0I>IUW5z`m-Q4h~~s1W+oCGW4q|j;dtbDHnL5R{hm8Cke0M;op6EM=DXbSekO(A;X#v!C#}dlJN#13?A#Qm8gco$VD;w#>{0mVYB} z$Hag`qEInO$EknJx_+lfHIZhws@Z)E4C79#XUZ(M*M-)f=pa6oAf)@w)Tb;EE*wDr1e(!EyI65ED{_P8eH7 zeo=l=q9ATX!(?lTHV`*L+3-vsu_kbEJQ zlHS>xlEV%~vAd0wk_CsBFqT3*h{;ZzkBKivh$mj_a=CQ3b-7$TrPwc%l5}xpP zF(}s7TQ!_YIfH#$VL3%~UP~BITD}AgIX9WhVGgQ%ce2b4!s4mJho?vRwB(2ylG6mn zT^h?k?UZJOpE#tWPKq=Vn{ym*bpJ}mu>3+1O-reVvq{Y1ve^m-^}QkC=YJr)wWaC@vX`$(_8h+jd$WIl@89rJhb3!D&|)wXgcMV&Lc(TT>~PeZvq5 z!-cFv4^RvyZH}>-q?L4(JxW4J*gUuCnwJ?Vt;j*RND=adIVv5~Uc1!Y8Sk)hg$OjE ztCH!gd)wEKkvX9{*CxN-xLjoNqKiD~iB|=uL!<&h##!nxj zVjqi*GrDike)|L4} zov)%&H8};7ST5(X!FR7C!l!S@7YNwNQz zJNVv@+%IPUZUavR;{Q*40bC8P0vRB-0OJ4eUErPIx4~}$@dfx2Pyjc9b#N8)_YGGe8?GgL&{6a4-6THv_Q|xD{-HO>hQ04Lk*0 z1U`$t;N9R>Aa??Yy?~q}`0_=h4W0+Kz)>&+9s<6IZs6tMxxo1pT;coU!3WR}ybk;_ zcsf`EVgn%l1&)F*p(pq(cnkPZa0G}=z!%XI{0aCiAT|Nh;4*L#_#8Te4};f(JHZ{` zWk75LZUsfK2#$d70$)QFgj9cYr$46jI6)5-%fpL`HnnIp>sCKh!fy2gGS4Ej_}) zX48F)H_EUhX?o$vDv9uW{J1y?t%t-9-%IW;Om?`|>mWj!6YNAf$bbCfo?FL~^5SXD zgJEithNypt9MPrdQ=X}2qgf7vt7tll<4Ih(U~m~xTS#aWG}N*?=F}DH-qbye=szTR z^*E`VGZNlJ*N|w6t$#~8O-2i3|Cm6bI#S9WmQVwk3dLgKjd_Ra$k@kiXKG#KU0QYY zd7?%kSqvG%GPy>A^ip_a(@HBBYld&>Mpa9{!De-j6J(Hv#Z8Y~+Y@P7_h7JXqfP5V z{mVD5=9JdD;fqAQBF$@ynbN@eCZ&Cyy38t^B;#0@J0afY?Vt*iP2SUk&dR(zuU*?1 zb_KIna%CZemF^~)-6&s{U`aP!etDR_@?iJIZ4iXK*l5*MQ6?VWn^iM`N-}n+D|eUQ z(YZ6A;Ehu2flN)RW;@XZAUXM3E29slphIKLNScw#qWfO5HOk7D;pm#m(O3)2wFk!s z%0Gf0;slooDDf><;n?A1LDCZO5|)-d7x%`kKbT*di^P^P5S}(q$vnR(hLp22lWNjo zBWENZLkano^P)6W1BcV|`T4cw)e&!Pl?x(P^D~9XDRtR6b!vWLdUa;W^t^OZMfUv9 zThrt8fZ_gsqyQtP_HuK_;O$qaPGl!fx?J))ET=uP+Gj$hY;iW}JgNJdQUJT78K`GW zk9A&|%_vB0aiZs%MUz$b&-ANoe^gx|gseM$TpI3(;cg{PoOD$6L$!R^zonKvi(#jabmBL6=MAyD>@MgDK|&sUM}Uk&a8+h7Ge6#OZ2{O^F< zzzmoKViRyRcmQ}ivizIDtza97AHc_eM}xmYc7G3e4R|T|&tMC5fynqRa1&Spi{L@v zjmYtGFW_xJWc?X14K4>m;L+go$n^IB@fjfY18)TX72E-S612bur~vULa2(u=tp6L} zF7OlJB=|ZqzMKQN6Zl{bTmt?a+5V&8BjAsK*bKY@^uTrCT5vIVE3*EJKovX*JP~{+ z_yltP+rV4Ft3UzV0OVZ2_km9!*M9`aeSc2_H-d))@hk8WPy{~$E&~U_1Hs#n+r>uU z1)u@Mui#;OKKv;i=DD`s}|%`^PkgGHKUR~Z=-u~LNQxo8CRiXj_RMqGxLk{M*P`*%UBeFMaCA%$ zhLKU5d;@Q)|uiti6jmn zyZtshQk0p!Cr;t`%~rpV8lBV8iN6Nh|p%NDH7!hdl5dw)<%O$;qZ2^-ccDhWXKs?bcq~3QC+dUL3 z3eFO-@en9ziU7BNo>vzSG8k>RYC#@~lq{?Zeiul!+`JvGk;>sg)R!MtX zBv)nuS1ZJfur!XgX(nft>Xh*Ur|tx0y%*Rc1;I&o@a|gGr*g(AlB3o`9qu?j^NqJ= z)at>wTa30S%XPQ?TEhFK&^5d~N(iMZL*r}@nbyOSPLIhtI+_&iaMs(puDk9!y19%I zb4?n*au7%RlJ`N`((THL4RPc*A|B*0ppiG~q}A8Uw&sJMc#q}oDlQC}TVV5< zNm>uRnzPgF>|RPY<^oaA^SCP1*gR{)L325tcFf&Km$)%BZnk$@NF}5UvtP`hikkh& z#2B~cBk7&<4ij_^5cgJ+FrE}dCS42}lp#7br2f#(!*+)_ql>Ox^f@!+g(F%|hI@_7 zWuvr$nG*I~OAyTci~Jh?XXNN_{ZT;b1uK)x~j(`oWRks3go~s#vP% z1w2NAj_sOoFm2Pa#`qSFYCf<-#TLREvROxd#)O$e3+|<1thyg=A5qQ;%;|dOjXhni z2ce=qdDsgN93u$}2`4w>-_LseGi?>Q3fsOt5%tx+;}zKPz*^JuWaJLJs)8tao3(H$ zCxvQvk_WbBdA^xEDz$?j!%)r+5}9JCtF`BOvDGkKR>!|SRO<|3D(du56*qVQWFm$S z=sd}ZHME8svDW0AyG|6-;*$u!(HfRtr;2Qax>Sh9I+kAJ#=pT23n8^aQ1G|hEI$OEF+_1iOv*FAQ_l$;5zV*ogm21 zW|$T*HQn9&i-(brSpw%}nHsE;>9|-8292KDb430}49$GN%KuF(|KE$e|2N<@-~~YZ z0m}V<-wr;6tbZqXIgs=I6(D{94}dQr>;Ed~0y!ga5Ihq68S?xugPVcK`9nbV^8Y7z zJ-8X10&`#-h>U*_JOYSsK-tq5`Tn=T^T7>Z4LlZn7Ww@i@ay0?K;-#J@O?ne`o9YN z3aEf1U<^C~{3CMvSHa%{xhwEaAa@2#1KHdEI`aDmft>UIIq(c1=K;aR_$@ z_(gCNI1R*q;KPC3A8-$H{ENX)fm7flI03E%4+9SY4+e6FfSeonC2%t+gYO4&kHDWI z*S{3VIsemO1uTFm@IBzM;4whj@BPw-Mz1|PM_*gl?i-Btz27>oOd4Lk^XVH>pD{c+ z<@AkHkjiigJp4LYbeF@w?gVebbnm_<6Ufdob=c!Njj+JVi(;o>IL2d-lyh8NuWKuVEgA5+#5vg=!zS3j zE3-Iv4JLs-oVPlK*=Su%N4vYUxCW4x7K0{Hj^nOv3M=~#*ET30QX44^z;SED?}ZsO z;|t499iC|U`eDCAdW&|;%zkESerp%KodTx~^`P|k zb-;_q;fjdlDdT-N0!Q2n=W?_23k$Z<#Y`vgN385Yrvz=3c$`%^<~X@DT{t;8b&WB% z3&|-jZm;n)~S=xw*RBzWI5e*lm)&&MdG}^b=s0awR%b?hD z9nFmeiKJqsbdWs^hh4(o*AZbhqE&`0)Ver^OX>V+ax0twU$8QUwPy$Z3!T5RDB}}m zFIq+8$?U${{xV0{~Fmg5em(nzjbdiAaGRbXpuck!2Hc!r8}_ zF@8U0m}yW{Gx?28;4Xx%gV^7+j9pt?w+YzFBjq^pcGH z2`95*(`{fIN*d#yOWDkVbSJ0N3?rBjHk$d7#&a~b4ZAlLMM?~9!wW8hFRZ7~TC4qr zaVx`FE2&%+tBDayTT|5dXgArLUT(}3+?qApEV0yXW1(*vir-_l$&|iAB!k;0RTJ;<1 z8roi#B`zFQlRoVIkg8VM;1I`^=DH5!P*RC18y}()HYYFC1!Qf^AH(jU)gkTi;bHy; z!h^{FS0FZ)MRsKWe~y2C4;jA;#P(nA{d+xf{fog3;6dQi$n$rCWiSdpgDn3aK?$4z zSAxGqUKhFkb>KPR$H7y%jMdk0C>g zoGthCJp&AZzk?>P0nY`u1EEm~+}95cDh@fVI*qLjqn_lPm0e+(MT9PuktTHp36^bH zZB$(uT8V<}XT67J3K zj?*Q?i0YzWX!Cd1$QRyBPezBNu`RuX8IS%f=uJ0vlW(W(Wau`fcfXmdbIM4Z!46Le z&kS}0NG@8Ep)MB-8GChisSt;Zv`uX{7ZIQqsYStPd1bwQpxI5d;0Ya!8q+OW1;+l?0q z05NqWA=KKRoNTOmMNY^Kt!-8m@T`BA#X%5vWudqJiL*Upi&Y*R;G2d!+)FU&L{7hY37 z<>hjaf6OeRsa{cUX_MQn)U%-6J7*>(BFG{rx-YKRuZh=X%r{JLaRXl-N@(@%%AsJk zs-em<_oB`%*nVXTlA{=r;xdKT>n@e(bEZj4RQA_9y%NVmq-Rogz5TS`j#h`fL)#Nm z7A}fYIyo~GoBfzKS?{*ki)VkI5|-qqI1EID6BS)CFlLcmcU?R(Idl2mhP&BSN-Ksi z^aGtZjBQCsy=XaNwHYL)UW2C;7Nd=5Svfe~yUh4Yr-3BM;RzD}V*{r7TBSzrXSN-E zX$`+#!SP8&&3S|vu+*k;&P58`3lbxFOZ^QSC+2u^kaY%YdJgPDkueS3YT|2GZGSqw zpdjw1qJHSa+>{y*>eB7Ejs3|tb!M7XcMi>>(Sn@zyh5@3O&PeGWP?gZnYW#5O-Z9$LE+j~ zytLW$0*7s>Q`ad1CSD|WO>hn;-Alav;`KnCG;_2Xos!`xl76&wlAgwHi)LivGJx+EXTY3F%kFEtT&Nuyn6t=`6k%fC!X3;D(6 zWqk7fTb7z52>xCREy~$%g)&>c?Ouz$vb=Ep9G&A^fZAq{&~$Abiqfx!5ueg~IlHdu Ho#X!jzAm5x From 38af5a2a072f8cb218612df6347a22686a9cf022 Mon Sep 17 00:00:00 2001 From: Stuart Buchanan Date: Thu, 21 Apr 2011 20:43:05 +0100 Subject: [PATCH 2/4] Improved 3D cloud support --- src/Environment/environment_mgr.cxx | 31 +++---- src/Environment/fgclouds.cxx | 130 +++++++++++++++++++--------- src/Environment/fgclouds.hxx | 9 +- 3 files changed, 115 insertions(+), 55 deletions(-) diff --git a/src/Environment/environment_mgr.cxx b/src/Environment/environment_mgr.cxx index 4d05fab29..04208d304 100644 --- a/src/Environment/environment_mgr.cxx +++ b/src/Environment/environment_mgr.cxx @@ -97,6 +97,7 @@ FGEnvironmentMgr::init () { SG_LOG( SG_GENERAL, SG_INFO, "Initializing environment subsystem"); SGSubsystemGroup::init(); + fgClouds->Init(); } void @@ -111,7 +112,7 @@ FGEnvironmentMgr::bind () { SGSubsystemGroup::bind(); _environment->Tie( fgGetNode("/environment", true ) ); - + _tiedProperties.setRoot( fgGetNode( "/environment", true ) ); _tiedProperties.Tie( "effective-visibility-m", thesky, @@ -128,27 +129,27 @@ FGEnvironmentMgr::bind () for (int i = 0; i < MAX_CLOUD_LAYERS; i++) { SGPropertyNode_ptr layerNode = fgGetNode("/environment/clouds",true)->getChild("layer", i, true ); - _tiedProperties.Tie( layerNode->getNode("span-m",true), this, i, + _tiedProperties.Tie( layerNode->getNode("span-m",true), this, i, &FGEnvironmentMgr::get_cloud_layer_span_m, &FGEnvironmentMgr::set_cloud_layer_span_m); - _tiedProperties.Tie( layerNode->getNode("elevation-ft",true), this, i, + _tiedProperties.Tie( layerNode->getNode("elevation-ft",true), this, i, &FGEnvironmentMgr::get_cloud_layer_elevation_ft, &FGEnvironmentMgr::set_cloud_layer_elevation_ft); - _tiedProperties.Tie( layerNode->getNode("thickness-ft",true), this, i, + _tiedProperties.Tie( layerNode->getNode("thickness-ft",true), this, i, &FGEnvironmentMgr::get_cloud_layer_thickness_ft, &FGEnvironmentMgr::set_cloud_layer_thickness_ft); - _tiedProperties.Tie( layerNode->getNode("transition-ft",true), this, i, + _tiedProperties.Tie( layerNode->getNode("transition-ft",true), this, i, &FGEnvironmentMgr::get_cloud_layer_transition_ft, &FGEnvironmentMgr::set_cloud_layer_transition_ft); - _tiedProperties.Tie( layerNode->getNode("coverage",true), this, i, + _tiedProperties.Tie( layerNode->getNode("coverage",true), this, i, &FGEnvironmentMgr::get_cloud_layer_coverage, &FGEnvironmentMgr::set_cloud_layer_coverage); - _tiedProperties.Tie( layerNode->getNode("coverage-type",true), this, i, + _tiedProperties.Tie( layerNode->getNode("coverage-type",true), this, i, &FGEnvironmentMgr::get_cloud_layer_coverage_type, &FGEnvironmentMgr::set_cloud_layer_coverage_type); @@ -174,9 +175,9 @@ FGEnvironmentMgr::bind () _tiedProperties.Tie("clouds3d-vis-range", thesky, &SGSky::get_3dCloudVisRange, &SGSky::set_3dCloudVisRange); - + _tiedProperties.Tie("precipitation-enable", &sgEnviro, - &SGEnviro::get_precipitation_enable_state, + &SGEnviro::get_precipitation_enable_state, &SGEnviro::set_precipitation_enable_state); _tiedProperties.Tie("lightning-enable", &sgEnviro, @@ -198,7 +199,7 @@ void FGEnvironmentMgr::update (double dt) { SGSubsystemGroup::update(dt); - + _environment->set_elevation_ft( _altitudeNode->getDoubleValue() ); simgear::Particles::setWindFrom( _environment->get_wind_from_heading_deg(), @@ -322,25 +323,25 @@ FGEnvironmentMgr::get_cloud_layer_coverage_type (int index) const return thesky->get_cloud_layer(index)->getCoverage(); } -double +double FGEnvironmentMgr::get_cloud_layer_visibility_m (int index) const { return thesky->get_cloud_layer(index)->getVisibility_m(); } -void +void FGEnvironmentMgr::set_cloud_layer_visibility_m (int index, double visibility_m) { thesky->get_cloud_layer(index)->setVisibility_m(visibility_m); } -double +double FGEnvironmentMgr::get_cloud_layer_maxalpha (int index ) const { return thesky->get_cloud_layer(index)->getMaxAlpha(); } -void +void FGEnvironmentMgr::set_cloud_layer_maxalpha (int index, double maxalpha) { thesky->get_cloud_layer(index)->setMaxAlpha(maxalpha); @@ -349,7 +350,7 @@ FGEnvironmentMgr::set_cloud_layer_maxalpha (int index, double maxalpha) -void +void FGEnvironmentMgr::set_cloud_layer_coverage_type (int index, int type ) { if( type < 0 || type >= SGCloudLayer::SG_MAX_CLOUD_COVERAGES ) { diff --git a/src/Environment/fgclouds.cxx b/src/Environment/fgclouds.cxx index f5a531382..ccd21e0ce 100644 --- a/src/Environment/fgclouds.cxx +++ b/src/Environment/fgclouds.cxx @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -47,12 +48,13 @@ extern SGSky *thesky; FGClouds::FGClouds() : snd_lightning(0), - clouds_3d_enabled(false) + clouds_3d_enabled(false), + index(0) { update_event = 0; } -FGClouds::~FGClouds() +FGClouds::~FGClouds() { } @@ -65,7 +67,7 @@ void FGClouds::set_update_event(int count) { buildCloudLayers(); } -void FGClouds::init(void) { +void FGClouds::Init(void) { if( snd_lightning == NULL ) { snd_lightning = new SGSoundSample("Sounds/thunder.wav", SGPath()); snd_lightning->set_max_dist(7000.0f); @@ -75,6 +77,10 @@ void FGClouds::init(void) { sgr->add( snd_lightning, "thunder" ); sgEnviro.set_sampleGroup( sgr ); } + + globals->get_commands()->addCommand("add-cloud", do_add_3Dcloud); + globals->get_commands()->addCommand("del-cloud", do_delete_3Dcloud); + globals->get_commands()->addCommand("move-cloud", do_move_3Dcloud); } // Build an invidual cloud. Returns the extents of the cloud for coverage calculations @@ -101,7 +107,10 @@ double FGClouds::buildCloud(SGPropertyNode *cloud_def_root, SGPropertyNode *box_ double x = sg_random() * SGCloudField::fieldSize - (SGCloudField::fieldSize / 2.0); double y = sg_random() * SGCloudField::fieldSize - (SGCloudField::fieldSize / 2.0); double z = grid_z_rand * (sg_random() - 0.5); - + + float lon = fgGetNode("/position/longitude-deg", false)->getFloatValue(); + float lat = fgGetNode("/position/latitude-deg", false)->getFloatValue(); + SGVec3f pos(x,y,z); for(int i = 0; i < box_def->nChildren() ; i++) { @@ -111,7 +120,7 @@ double FGClouds::buildCloud(SGPropertyNode *cloud_def_root, SGPropertyNode *box_ string type = abox->getStringValue("type", "cu-small"); cld_def = cloud_def_root->getChild(type.c_str()); if ( !cld_def ) return 0.0; - + double w = abox->getDoubleValue("width", 1000.0); double h = abox->getDoubleValue("height", 1000.0); int hdist = abox->getIntValue("hdist", 1); @@ -147,38 +156,10 @@ double FGClouds::buildCloud(SGPropertyNode *cloud_def_root, SGPropertyNode *box_ z = h * z + pos[2]; // Up/Down. pos[2] is the cloudbase SGVec3f newpos = SGVec3f(x, y, z); + SGNewCloud cld = SGNewCloud(texture_root, cld_def); - double min_width = cld_def->getDoubleValue("min-cloud-width-m", 500.0); - double max_width = cld_def->getDoubleValue("max-cloud-width-m", 1000.0); - double min_height = cld_def->getDoubleValue("min-cloud-height-m", min_width); - double max_height = cld_def->getDoubleValue("max-cloud-height-m", max_width); - double min_sprite_width = cld_def->getDoubleValue("min-sprite-width-m", 200.0); - double max_sprite_width = cld_def->getDoubleValue("max-sprite-width-m", min_sprite_width); - double min_sprite_height = cld_def->getDoubleValue("min-sprite-height-m", min_sprite_width); - double max_sprite_height = cld_def->getDoubleValue("max-sprite-height-m", max_sprite_width); - int num_sprites = cld_def->getIntValue("num-sprites", 20); - int num_textures_x = cld_def->getIntValue("num-textures-x", 1); - int num_textures_y = cld_def->getIntValue("num-textures-y", 1); - double bottom_shade = cld_def->getDoubleValue("bottom-shade", 1.0); - string texture = cld_def->getStringValue("texture", "cu.png"); - - SGNewCloud cld = - SGNewCloud(type, - texture_root, - texture, - min_width, - max_width, - min_height, - max_height, - min_sprite_width, - max_sprite_width, - min_sprite_height, - max_sprite_height, - bottom_shade, - num_sprites, - num_textures_x, - num_textures_y); - layer->addCloud(newpos, cld.genCloud()); + //layer->addCloud(newpos, cld.genCloud()); + layer->addCloud(lon, lat, z, x, y, index++, cld.genCloud()); } } } @@ -266,7 +247,6 @@ void FGClouds::buildLayer(int iLayer, const string& name, double coverage) { break; } } - } // Now we've built any clouds, enable them and set the density (coverage) @@ -335,7 +315,7 @@ void FGClouds::buildCloudLayers(void) { layer_type = "sc"; } } - + cloud_root->setStringValue("layer-type",layer_type); buildLayer(iLayer, layer_type, coverage_norm); } @@ -349,8 +329,80 @@ void FGClouds::set_3dClouds(bool enable) } } -bool FGClouds::get_3dClouds() const +bool FGClouds::get_3dClouds() const { return clouds_3d_enabled; } +/** + * Adds a 3D cloud to a cloud layer. + * + * Property arguments + * layer - the layer index to add this cloud to. (Defaults to 0) + * index - the index for this cloud (to be used later) + * lon/lat/alt - the position for the cloud + * (Various) - cloud definition properties. See README.3DClouds + * + */ + static bool + do_add_3Dcloud (const SGPropertyNode *arg) + { + int l = arg->getIntValue("layer", 0); + int index = arg->getIntValue("index", 0); + + SGPath texture_root = globals->get_fg_root(); + texture_root.append("Textures"); + texture_root.append("Sky"); + + float lon = arg->getFloatValue("lon-deg", 0.0f); + float lat = arg->getFloatValue("lat-deg", 0.0f); + float alt = arg->getFloatValue("alt-ft", 0.0f); + + // Adding a 3D cloud immediately makes this layer 3D. + thesky->get_cloud_layer(l)->set_enable3dClouds(true); + SGCloudField *layer = thesky->get_cloud_layer(l)->get_layer3D(); + SGNewCloud cld = SGNewCloud(texture_root, arg); + return layer->addCloud(lon, lat, alt, index, cld.genCloud()); + } + + /** + * Removes a 3D cloud from a cloud layer + * + * Property arguments + * + * layer - the layer index to remove this cloud from. (defaults to 0) + * index - the cloud index + * + */ + static bool + do_delete_3Dcloud (const SGPropertyNode *arg) + { + int l = arg->getIntValue("layer", 0); + int i = arg->getIntValue("index", 0); + + SGCloudField *layer = thesky->get_cloud_layer(l)->get_layer3D(); + return layer->deleteCloud(i); + } + +/** + * Move a cloud within a 3D layer + * + * Property arguments + * layer - the layer index to add this cloud to. (Defaults to 0) + * index - the cloud index to move. + * lon/lat/alt - the position for the cloud + * + */ + static bool + do_move_3Dcloud (const SGPropertyNode *arg) + { + int l = arg->getIntValue("layer", 0); + int i = arg->getIntValue("index", 0); + + float lon = arg->getFloatValue("lon-deg", 0.0f); + float lat = arg->getFloatValue("lat-deg", 0.0f); + float alt = arg->getFloatValue("alt-ft", 0.0f); + + SGCloudField *layer = thesky->get_cloud_layer(l)->get_layer3D(); + return layer->repositionCloud(i, lon, lat, alt); + } diff --git a/src/Environment/fgclouds.hxx b/src/Environment/fgclouds.hxx index 34ac595e3..9d26419ff 100644 --- a/src/Environment/fgclouds.hxx +++ b/src/Environment/fgclouds.hxx @@ -47,17 +47,24 @@ private: int update_event; SGSoundSample *snd_lightning; bool clouds_3d_enabled; + int index; public: FGClouds(); ~FGClouds(); - void init(void); + void Init(void); int get_update_event(void) const; void set_update_event(int count); bool get_3dClouds() const; void set_3dClouds(bool enable); + }; +static bool do_delete_3Dcloud (const SGPropertyNode *arg); +static bool do_move_3Dcloud (const SGPropertyNode *arg); +static bool do_add_3Dcloud (const SGPropertyNode *arg); + #endif // _FGCLOUDS_HXX + From 202e9571540cb12b66e06a4c26fe89a7876bbf95 Mon Sep 17 00:00:00 2001 From: Stuart Buchanan Date: Fri, 22 Apr 2011 21:06:28 +0100 Subject: [PATCH 3/4] Further updates to 3D clouds --- src/Environment/fgclouds.cxx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Environment/fgclouds.cxx b/src/Environment/fgclouds.cxx index ccd21e0ce..6bd1d5aa7 100644 --- a/src/Environment/fgclouds.cxx +++ b/src/Environment/fgclouds.cxx @@ -357,12 +357,18 @@ bool FGClouds::get_3dClouds() const float lon = arg->getFloatValue("lon-deg", 0.0f); float lat = arg->getFloatValue("lat-deg", 0.0f); float alt = arg->getFloatValue("alt-ft", 0.0f); + float x = arg->getFloatValue("x-offset-m", 0.0f); + float y = arg->getFloatValue("y-offset-m", 0.0f); + + + SGCloudField *layer = thesky->get_cloud_layer(l)->get_layer3D(); + SGNewCloud cld = SGNewCloud(texture_root, arg); + bool success = layer->addCloud(lon, lat, alt, x, y, index, cld.genCloud()); // Adding a 3D cloud immediately makes this layer 3D. thesky->get_cloud_layer(l)->set_enable3dClouds(true); - SGCloudField *layer = thesky->get_cloud_layer(l)->get_layer3D(); - SGNewCloud cld = SGNewCloud(texture_root, arg); - return layer->addCloud(lon, lat, alt, index, cld.genCloud()); + + return success; } /** From 3e1aba3b2ac391fdb1eb1b5c9abdf05d80dd737d Mon Sep 17 00:00:00 2001 From: Erik Hofman Date: Sat, 23 Apr 2011 10:17:31 +0200 Subject: [PATCH 4/4] Sync. with JSBSim CVS, now properly --- src/FDM/JSBSim/math/FGLocation.h | 6 +++--- src/FDM/JSBSim/models/FGInput.cpp | 4 ++-- src/FDM/JSBSim/models/FGPropagate.cpp | 12 ++++++------ src/FDM/JSBSim/models/flight_control/FGGain.cpp | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) mode change 100644 => 100755 src/FDM/JSBSim/models/FGInput.cpp diff --git a/src/FDM/JSBSim/math/FGLocation.h b/src/FDM/JSBSim/math/FGLocation.h index 23b3845e6..c60e8ea2e 100644 --- a/src/FDM/JSBSim/math/FGLocation.h +++ b/src/FDM/JSBSim/math/FGLocation.h @@ -48,7 +48,7 @@ INCLUDES DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#define ID_LOCATION "$Id: FGLocation.h,v 1.25 2010/09/18 22:47:24 jberndt Exp $" +#define ID_LOCATION "$Id: FGLocation.h,v 1.27 2010/11/29 12:33:58 jberndt Exp $" /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FORWARD DECLARATIONS @@ -142,14 +142,14 @@ CLASS DOCUMENTATION @see W. C. Durham "Aircraft Dynamics & Control", section 2.2 @author Mathias Froehlich - @version $Id: FGLocation.h,v 1.25 2010/09/18 22:47:24 jberndt Exp $ + @version $Id: FGLocation.h,v 1.27 2010/11/29 12:33:58 jberndt Exp $ */ /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CLASS DECLARATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -class FGLocation : virtual FGJSBBase +class FGLocation : public FGJSBBase { public: /** Default constructor. */ diff --git a/src/FDM/JSBSim/models/FGInput.cpp b/src/FDM/JSBSim/models/FGInput.cpp old mode 100644 new mode 100755 index 65ab24db2..51b4a3984 --- a/src/FDM/JSBSim/models/FGInput.cpp +++ b/src/FDM/JSBSim/models/FGInput.cpp @@ -53,7 +53,7 @@ using namespace std; namespace JSBSim { -static const char *IdSrc = "$Id: FGInput.cpp,v 1.19 2010/02/25 05:21:36 jberndt Exp $"; +static const char *IdSrc = "$Id: FGInput.cpp,v 1.20 2010/11/18 12:38:06 jberndt Exp $"; static const char *IdHdr = ID_INPUT; /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -191,7 +191,7 @@ bool FGInput::Run(void) ostringstream info; info << "JSBSim version: " << JSBSim_version << endl; info << "Config File version: " << needed_cfg_version << endl; -// info << "Aircraft simulated: " << Aircraft->GetAircraftName() << endl; + info << "Aircraft simulated: " << FDMExec->GetAircraft()->GetAircraftName() << endl; info << "Simulation time: " << setw(8) << setprecision(3) << FDMExec->GetSimTime() << endl; socket->Reply(info.str()); diff --git a/src/FDM/JSBSim/models/FGPropagate.cpp b/src/FDM/JSBSim/models/FGPropagate.cpp index ae2174df9..6202ccc1c 100644 --- a/src/FDM/JSBSim/models/FGPropagate.cpp +++ b/src/FDM/JSBSim/models/FGPropagate.cpp @@ -71,7 +71,7 @@ using namespace std; namespace JSBSim { -static const char *IdSrc = "$Id: FGPropagate.cpp,v 1.85 2011/04/03 19:24:58 jberndt Exp $"; +static const char *IdSrc = "$Id: FGPropagate.cpp,v 1.86 2011/04/17 11:27:14 bcoconni Exp $"; static const char *IdHdr = ID_PROPAGATE; /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -193,7 +193,6 @@ void FGPropagate::SetInitialState(const FGInitialCondition *FGIC) RecomputeLocalTerrainRadius(); VehicleRadius = GetRadius(); - double radInv = 1.0/VehicleRadius; // Set the angular velocities of the body frame relative to the ECEF frame, // expressed in the body frame. @@ -273,9 +272,10 @@ bool FGPropagate::Run(void) // orientation quaternion and vLocation vector. UpdateBodyMatrices(); - CalculateUVW(); // Translational position derivative (velocities are integrated in the inertial frame) + // Translational position derivative (velocities are integrated in the inertial frame) + CalculateUVW(); - // Set auxililary state variables + // Set auxilliary state variables RecomputeLocalTerrainRadius(); VehicleRadius = GetRadius(); // Calculate current aircraft radius from center of planet @@ -628,9 +628,9 @@ void FGPropagate::UpdateBodyMatrices(void) { Ti2b = VState.qAttitudeECI.GetT(); // ECI to body frame transform Tb2i = Ti2b.Transposed(); // body to ECI frame transform - Tl2b = Ti2b*Tl2i; // local to body frame transform + Tl2b = Ti2b * Tl2i; // local to body frame transform Tb2l = Tl2b.Transposed(); // body to local frame transform - Tec2b = Tl2b * Tec2l; // ECEF to body frame transform + Tec2b = Ti2b * Tec2i; // ECEF to body frame transform Tb2ec = Tec2b.Transposed(); // body to ECEF frame tranform } diff --git a/src/FDM/JSBSim/models/flight_control/FGGain.cpp b/src/FDM/JSBSim/models/flight_control/FGGain.cpp index fac82ab61..fb864e06b 100644 --- a/src/FDM/JSBSim/models/flight_control/FGGain.cpp +++ b/src/FDM/JSBSim/models/flight_control/FGGain.cpp @@ -47,7 +47,7 @@ using namespace std; namespace JSBSim { -static const char *IdSrc = "$Id: FGGain.cpp,v 1.20 2009/10/24 22:59:30 jberndt Exp $"; +static const char *IdSrc = "$Id: FGGain.cpp,v 1.23 2011/04/18 08:51:12 andgi Exp $"; static const char *IdHdr = ID_GAIN; /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -70,7 +70,7 @@ FGGain::FGGain(FGFCS* fcs, Element* element) : FGFCSComponent(fcs, element) if (Type == "PURE_GAIN") { if ( !element->FindElement("gain") ) { - cout << highint << " No GAIN specified (default: 1.0)" << normint << endl; + cerr << highint << " No GAIN specified (default: 1.0)" << normint << endl; } }