From f41ff1419ce0c3bf13cde171a60eafc6817716dd Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Wed, 15 Feb 2023 16:27:43 +0000 Subject: [PATCH] update libomv with faster vector3 UnitX,Y,Z rotations --- .../PhysicsModules/ubOde/ODEDynamics.cs | 24 +++--------------- bin/OpenMetaverse.Rendering.Meshmerizer.dll | Bin 24576 -> 24576 bytes bin/OpenMetaverse.StructuredData.dll | Bin 126976 -> 126976 bytes bin/OpenMetaverse.dll | Bin 2211840 -> 2211840 bytes bin/OpenMetaverseTypes.dll | Bin 188416 -> 192512 bytes 5 files changed, 4 insertions(+), 20 deletions(-) diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEDynamics.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEDynamics.cs index 1f1b5390bb..d548a464b3 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEDynamics.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEDynamics.cs @@ -668,23 +668,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde public static Vector3 Xrot(Quaternion rot) { - Vector3 vec; rot.Normalize(); // just in case - vec.X = 2 * (rot.X * rot.X + rot.W * rot.W) - 1; - vec.Y = 2 * (rot.X * rot.Y + rot.Z * rot.W); - vec.Z = 2 * (rot.X * rot.Z - rot.Y * rot.W); - return vec; - } - - public static Vector3 Zrot(Quaternion rot) - { - Vector3 vec; - rot.Normalize(); // just in case - vec.X = 2 * (rot.X * rot.Z + rot.Y * rot.W); - vec.Y = 2 * (rot.Y * rot.Z - rot.X * rot.W); - vec.Z = 2 * (rot.Z * rot.Z + rot.W * rot.W) - 1; - - return vec; + return Vector3.UnitXRotated(rot); } private const float pi = MathF.PI; @@ -878,7 +863,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde perr *= (1.0f + ldampZ) / m_VhoverTimescale; - // force.Z += perr - curVel.Z * tmp; + //force.Z += perr - curVel.Z * tmp; force.Z += perr; ldampZ *= -curVel.Z; @@ -899,8 +884,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde float len = curVel.Length(); if (len > 0.01f) // if moving { - Vector3 atAxis; - atAxis = Xrot(rotq); // where are we pointing to + Vector3 atAxis = Xrot(rotq); // where are we pointing to atAxis *= len; // make it same size as world velocity vector tmpV = -atAxis; // oposite direction @@ -999,7 +983,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde broll /= m_bankingTimescale; - tmpV = Zrot(irotq); + tmpV = Vector3.UnitZRotated(irotq); tmpV *= broll; torque.X += tmpV.X; diff --git a/bin/OpenMetaverse.Rendering.Meshmerizer.dll b/bin/OpenMetaverse.Rendering.Meshmerizer.dll index 94fd764df6b56c8d3a832543f39d6bb84af6850a..f924ddc284993bb7233dbcc0e979d2a8ca4c4849 100755 GIT binary patch delta 107 zcmZoTz}RqraY6?R`~L;^H})iG3tU*1yZGj_4zF(h6~82%^({C5(LTb=5}`kL@#G`= z0Rkc#r{f-fb@HG5SHkMO%iq+=DhAaGP(glSs31u752pNW3|!Mw&fII~+PvSuQ6B(x C$}s5w delta 107 zcmZoTz}RqraY6^nA$`_u8+#J81#TryXV1l+#L7-|yRsNVmbxfjPoo`2GZ{Ba-^bG(_b8A%vFGj)^I>Yf$HO153#oyUS;rneun+l K_R?dF-I@S@JT~zF diff --git a/bin/OpenMetaverse.dll b/bin/OpenMetaverse.dll index 81bb6c5299f1c699af4a89fea7c204ecd18c0ab0..cee9ca4e7f6302677e13c98ccdddec905c2957d3 100755 GIT binary patch delta 210 zcmZo@XlHBy;t3rr`W;J;H}*T2NeaWPfkB5D5fQ^rnYTM*Y@>O6a%#ZC%;*F delta 210 zcmZo@XlHBy;t3rrujGSwHTJajFt+wEwe~Q#_OP_}u(tNFwf3;L_HeZJaJKevwf1ng z_VBd!@V55wwf6A0_6W502)6bJwe|?N_K39hh_?2Kwf2a&_DHn$NVfJ!wf0E2_QA0)qUXXJ&3WK>Yjr{r~v#bMtT*x7k!8{~aY>cLc3Q$TmiZTNppzH+A{r(J$^}q%|6jGE&Z_dg3D#5(zkc zFC&H1F43H69cg-{j5RXfwrS&OHZ7mFfu_@=>wci#XxlO<0sl3D{~6K9{wB;W4Vsw zI-Yyixrds%(`D;&zx%owtyZd~(XX4*Wu=E-pg)D`FF?yO2#ICGuJA0V9V)S5zjH$E z5W$B10iPkAB1Iy!QxqF^nOowZv6u?&6sL(2LOR8Th}>Wc^%64T!Pt_E~RVyUyq#@!^Shc z)&SdZ0`upwj7reDjPlY(qv;A7BMaq5C8MJB=IeATmRvT5HiC~^V`#gWZ$-uYaFmR1 zOS_GwT`B#xblW)k5)JmrOm;F{hZ3rQq{LuW9{>^@# z?{`0)8!0kCju7&hzj!e9`>W4}6L8Z1%xrogntKBsmr&Yc4t1~?ZmcPKQ^`myoivx` zF?zCe+dH&Sft=V7_$XMwYq_(L-w2~=A)LLF{$>kl9(=sIkhn+22e7IU z9pDstZ{5;w-6edUkLW19I(ma-&`E#pBKk0`TKdu=`bX#kOD7ZJdySCzDTM5<0qORG z2R_&D*+I}vBI0j9XQ9oYz58NU=os_{l`|&w)!kP z#f&6`?2LORC4^k#ni}`DFNTz)puI)h1xpBd%he_$gbav7jfi_GzY{Rc{Ne-Sln`6!G<_YJ9stk#%*$$Nnh`@%n(v3k2=hxe)_b`N~9CyYEHg` z(x&m!Cd)E^jlrg@<0W4-Ka-+|kZ;Xc+*(gUu7xZiYkVOj8JZG8OvyzqJK3o|nP(>p z2x@}%WL^lV%^UHZePw78*_ruQRtV`Ci}5p9A8156&-+s}S{{K$cuDQJms}y_;Rx!8 zCS!dYpf8J)(EC2BPEN%jJi(8T`Y;{lMI8`|y3&eTgX^mvO!s1_^E2@{TJgLWcxAPC zKMeq{nRMj+(T7*_I9Cs78tELq!4gg8frgL=g#BwvLT(6oI<7Gk_m`VGEMyq#qGgf% z=x0(aWTdvn-+C2I(APn96>`$n7>x5`yJ%I&gBjS4w|FU^q!hs+rbCB?kO?_xuLmv5 zBVi8gu#n_UU@zirb@KE<$W@cXW&D*@lf>u$m6b$>=Y5}9hxGJ3nOBE21GSUk;h48I z^azYj|4*xEtnM?15V(lKeb6*lini2{Fzk00CJb=WL=A2?VRgv^0r&f|mO+Fn$yGz_=!i>*K`ZNmZ6-nXg zNFycvm4>uPlA3_DLedw!ly#C~xo@MS>o$zsDv3a2^Z{g-#7jJ5g{1ntrQbUMxh++pn#eF97 zI`91Mv_0?c0o?Z-?ExKZf@=mw_NCA9llCW^m>Q%%?Z;_8KZV2Sd!!g5XGCME#S zWvhmyzd?_KlaTS@h*M!r#L%*8NPgN3PN<2b!%<|C3$!`Kak1TrRa~Z9XgEY3%SF0M z3B$-WyrI`A<>bo7d^cze!!mz_Q$gD82j@+N3) zO=lTNBR{8W(5n^I7-;p#T>NN~kJ{5ebRBi+zgnM7s7XFGKbw$CK8=1pA%q+Xc_9IE zvvm;EU-=BQyKONIAyspSD`W4rUnV4R{ODN}M9^l$m)RK>48?Ti%BX#FP``~vb+}Nc@G=)zF(tB)v1#-P2txGX!SYe$SVs+??^2$pOIYMcjkLni9QDAa3q z)XR{@o_hh(lTA}V_xe!FDxtQ@<7uvAy_g=#buahouUXObTRdt_9@M~r={Yq}^=Q;D zLQy~ET4=|#+l?B-3;HP>(;g4%3Z8yD3e!`#cFn?cJ6=v_uDf&5@+hyjp3bY>#4D@d z=^oH7JQ_S5lTFh>9d6WUAL{9N)Lj(T*LjcX&!f@e#=njRzuZd<{2?_OpCx$-Hy6C6Ln)G>JlqzPB^OF zgE}O85zoaat{h9jvLhGumS-uB|3waj7h_RdWub;gp}u25eYG;`0_##<#0p4jF{?m_ zWTU=X8MRI{>H;h3uL-DEY^c{FR~gN%9kC89qoYy3%ULJwZLyO}!SrG*YO5^Np4@WF zgXslU)WT}0b$q2pBZ{0Kfn{d|>e?vOLT*{$|9&I&>9r$12Ge8{>QpakPd923Pk&Mg z(-nCi8?C#M{V7-$S3~{Sj{3a^^%t&#BQgCd*E*Fk-I(h*6Q-X?M?GXk9qL5YbvJ%Y z;HvZDCUCtFi}tP#9?G>H*S=hTOh&tEK~3g*kX!znfEF{i^ybyv2;-6AsF@1tBz^$# zyvC=pbu@kLMQy_!O?U;b@$?m5L@#~>2YAf;6eBlsUBsJsnpeD#SGj^~qg;#`#w!@Z z)xn#U&UJV^ddKjiuUYxiDgY1h3aUnYYIO2DbQjovv7+wc>Em3t_}|}5t0vcVqT@J2 zEzCkaorGGJ$?g7Yn`vWMFTMoRvTW23YoLCgi@Mo{`e_*ICeXk{%XWMXmdPg6_4cpf z%G$zQqEJ%TRR-7S!h|;T>n*DH0`C<)2$5Bi)9Lmv&_0qL%G)P&0ZUp}IBLN_LV3m5pY{_HaPbn?dJ z9})6@Oo%1^@Dm9N`8MnfXq1!Dnq;AWRT)jx_uGGi&A-$bO}XV@1lm)0I+c6>s*aY8+N#gt`oTZSzf_p9%;il?9F>6JWv zxT=mp&G~V(Z_iHvr_Tzeu#|)^9ma!SAc^=g2yrGx*u}ZmJ z7BAr{w-j^BTpm-k`WYRvHRJGOJ{EDE7kZ7SjwgF@g= zeIBPBZ zM2y7@j{hAV8Sapj>mTq5b?CdR9e^hU4tTT#Az?}`l1~tCZy0G|&@f9lxhjaauoCH+ za=YkC9vlAUO!xBd>8uT`dw<_>J zUicPU?4%o~ll1qb6&43MB79_V>I{pMOwHtxKyO=;$y!N;Y5Svnq|BhT79Tkx>Cv=D z_D83X>k@CIZnUJ3uq;u`4Jb5?td~?fZKEZVShIz%bNt7aZ1Ql9pr!sVKZUL=aPPHL zA%m-+@iTHNu?o#4rm7+&o6|H-pOHi9`7D>L=5&%CO8>@^N484eo~Q%xh~@&PnPF}7 zzq90%Z1{l;Av43e0M#G`l5VXO$OH#6?V5~Cbl8x462>jmh`M8d~@TQCblCNCH1ry zCblQT3xw}Qdym9I;;zGqch_Si-yjotjI-D$)jArU%&5x=@r1Jx!X=BZ; z)t=<2B<#ayNr(EvS2LrWK1+5B;yv1n9Flb0J|wXhnf{=N#PjkTsn$Tys`%@)H@PTj zlKGaU4_Vq!_$KL4eLpg!kwmC|04aD#(5 ztsvfqL&#x+N)m?<`Y4YC-*{~(i7;q}_6o@m6!vC3^yqN1R3eU&;bgTD8Ul1w5MSPg zlfuTlQ1YCA%`TXeCFyS_7L&um7&bM17SJt8bHO)~SeuCUE(704QeRSk@Qor*NE!yd zQDlT5Xz#m;qe+E9D-tJ>69%nIoI<)Z6^&@=Z@!y4vOQ5BTc(ouX2Q5GWpmCZ{5d7H^t zPPpc^vwlRZPh#X}1lPPWGDQ-uoUjk+%u9h4u%oq%)Roi)Xe((V>89?Av2G*nB%X8T zSwA72BrONur=*9Z@o?NbNgsn8)?MU9Ne7)V);;7kgB;eqWGttWu;ca~)-T8nNoVc7 zt^Xmjx?t1Lrw_E2lb%lrJZm3ftsn(mk;Ibw4H?6!Bn-#lH)Nh99EabK&m`eEJV1Vw zgyZl4(YlE;aU32bNs@3J9wZM7f^n#4SPzl^7`P(wG&yR}H0xQix`@EP64KJ&axcsV z9Ej(L>1koafq0G_m4pNF0x|UxzU#4btQSaRZ={*9xG%TlHGjkDy_h z+pK?(DSZXacJ8rWBUkzf8k|*Oy-u#aAjs-JwHMa2HPNT7gx2FfnVU&&I!{~SA^2bs z@4%LDXV1AEvWq&E!eZEHZCZ(#LU zsEIVB^$i+eYeah*RNeG2T`vfZ_hs9o^pd2r_Tje1G<-5IC2Xw~b{;fVQsw*uL~lx+ z9L37ily*a+Vo%qUj+H*##WkfDMMl`ujkGnRE2i*5fyUXI(+*PuG}+dIo;GNvttCx( z6U)Sr@RqF=O_S6G2);s5hhqs8^Pa68EkuG@yghxgtv$VA&`4V$T`?`-8)tirwwNBE znYPF2&ysML@C3amX}W2-?FpJOLqs0ULh3B(R_^}jCuqa*5<~M4r%Ni%S`DG6CDqBN zqyv3qrYL4g=q6i7`n;s6{+M!DZl*?>NN3v3FG8k9cCmG#a}DZkdx{>Fq@K5 z5|QqlV^Q7c2!km6Fsy%Ge+cf+Y5AXAX1OGZtG7+8ll&11LzbZl-UQ;cLJdi%sz;&Fd~_K zFfBuZ;qZlZvh77$Z*G8Q+FqhhAVF7rVXb6;nf5g3J=+jEP|^;oUdcX`mKgY+?G-u~ z2@2f-g$|=RZwF|mZ8&WrX;eat{Z+crpm_Uh^rAsFyH01lBl3+(aN9@FdhZ4(&0b7< zBGFijEp-U{LSCU%j10bL>K^Vs+83u($q z;oA_q&c2Awuq~%^4C-xr zpKdqEL{`vW3>sitN#oZCYN&2nMf(Wi>+l--g)R{n;Y&GwI|OVVRNWwhD`T{xqo zHruz*vD_(^`mOY5B)QaYrSYX0DK7I{X@5?*Dvz{%OfMQV*|v@L+K7?p8)w^24;eJm z_6gNCfr~Ho+wGrHcmNIc19r*ZZr@4a2_7G8xYX~W9gv_HT1w)W!A_Rd>ipy=rLK3EEBK@d)_p72Rggv8bP^d#4CJ9?`{il8!bgH0%^T zC8-*Gi{~``-JoMpr>XXt$XCtL#dd}!7!(@z3r&^udR6_r?JUigh*y=fw4o%ts+^^d z8KIYfdK!_JZRhA9Bl5ECJRN65Ubp>9XBm;#Z5QYgBl5cKBHdy{GTnZO?lVG}{WtoZ z5z6eB=@m&|SV!8f&|bU5G2u1lcY4C0akf8bhus0+Oxu6yAcHE|uhQuTy=S{dH%Qt6 zS0nv8J!;^4wm)g)9#PB=sPG0IYtUrdO=|i);2UTAi%v0UrtKD8AqlTWgxxSG-cDKd zy&~VJgcEkgb{k}~D?017FW_|BRi=IspftP2awOsPCxneKsJ1l;D8g)oPmbv}Y5E&xu}OGl)5 z1(;-UvM~llIoxc$K`RoyEam$^uykjBZEC}kkgUL#u}97$YQI1;Q2^JdKE_w zi~KP_H5`>$ryqR+OY#d?Rn|{Brz9iIleEFV>09c^=?|+%RW|0B$gseSv|3Uje37*( zt9M-ZQY+8=4sO@*@oyd*djgEGdf)@!8m!=FLHJC!25WFKKrI}#nEMnEtUB57Ot*lo zH>jPX4y$)M;A`Qi$2KBCnRu)G0PFUPp!qQ!9SvBwvlt0C$NnYX(J0pf^8m-gtnoQv zoD?(6@d)b>Apck2!84m-nKK=&Shw?73O?3(*U_3;e-*SScd4TtJ9;5NYaH#_(n~;4 zLs`^jMlQG--IvMT<++=Mk7I)54aCIIwgUyiSGGB7^WQ&lX3YYn+<7xK8e?>mKS#>_c z&LM%%ZjN&HVok0iiHl}$wiJoty|G@!@jScAv4qsIS8?=VkN$~HaqaEPMk7H+yjAYY zs@*^;AsXDb_GP<~_%+nw?8~e-1$D`HIA37TNV@6T>=?iXNIK^%cMM`fB`tSt)*XY{ zXo=&YFJ58;{}RQFhrSrXW=lHg-0XOTEkKgfXE^(W6V9Gg=WteGPzZUAT{MUSnQmde z5_o2Efazu$Wk`BQSgeI^gNk3PkKvg6?X+A(EvU-wwnJG{&Ngu+a*-5OwAn2z-ΠZAd;Ce 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