diff options
author | UbitUmarov | 2012-07-07 03:16:41 +0100 |
---|---|---|
committer | UbitUmarov | 2012-07-07 03:16:41 +0100 |
commit | d50b852d530bd17f2bb5a7964e9ddf81acff9146 (patch) | |
tree | 12f62c914e23750f9e4c5ae6651048d6ef5d71ce /OpenSim | |
parent | added llSetVelocity. will refuse to work on vehicles and on attachments ( th... (diff) | |
download | opensim-SC_OLD-d50b852d530bd17f2bb5a7964e9ddf81acff9146.zip opensim-SC_OLD-d50b852d530bd17f2bb5a7964e9ddf81acff9146.tar.gz opensim-SC_OLD-d50b852d530bd17f2bb5a7964e9ddf81acff9146.tar.bz2 opensim-SC_OLD-d50b852d530bd17f2bb5a7964e9ddf81acff9146.tar.xz |
ODE turn off material dependent friction while vehicle linear motor is Effective. Increase a bit world damping of velocities
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Physics/UbitOdePlugin/ODEDynamics.cs | 9 | ||||
-rw-r--r-- | OpenSim/Region/Physics/UbitOdePlugin/ODEPrim.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs | 4 |
3 files changed, 9 insertions, 5 deletions
diff --git a/OpenSim/Region/Physics/UbitOdePlugin/ODEDynamics.cs b/OpenSim/Region/Physics/UbitOdePlugin/ODEDynamics.cs index e27be1e..e900c02 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/ODEDynamics.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/ODEDynamics.cs | |||
@@ -137,6 +137,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
137 | float m_amdampY; | 137 | float m_amdampY; |
138 | float m_amdampZ; | 138 | float m_amdampZ; |
139 | 139 | ||
140 | |||
140 | public float FrictionFactor | 141 | public float FrictionFactor |
141 | { | 142 | { |
142 | get | 143 | get |
@@ -145,6 +146,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
145 | } | 146 | } |
146 | } | 147 | } |
147 | 148 | ||
149 | |||
148 | public ODEDynamics(OdePrim rootp) | 150 | public ODEDynamics(OdePrim rootp) |
149 | { | 151 | { |
150 | rootPrim = rootp; | 152 | rootPrim = rootp; |
@@ -345,7 +347,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
345 | m_lmDecay = 1.0f - 1.0f / m_linearMotorDecayTimescale; | 347 | m_lmDecay = 1.0f - 1.0f / m_linearMotorDecayTimescale; |
346 | m_lmEfect = 1.0f; // turn it on | 348 | m_lmEfect = 1.0f; // turn it on |
347 | 349 | ||
348 | m_ffactor = 0.01f; | 350 | m_ffactor = 0.0f; |
349 | if (rootPrim.Body != IntPtr.Zero && !d.BodyIsEnabled(rootPrim.Body) | 351 | if (rootPrim.Body != IntPtr.Zero && !d.BodyIsEnabled(rootPrim.Body) |
350 | && !rootPrim.m_isSelected && !rootPrim.m_disabled) | 352 | && !rootPrim.m_isSelected && !rootPrim.m_disabled) |
351 | d.BodyEnable(rootPrim.Body); | 353 | d.BodyEnable(rootPrim.Body); |
@@ -401,7 +403,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
401 | m_lmEfect = 1.0f; // turn it on | 403 | m_lmEfect = 1.0f; // turn it on |
402 | m_lmDecay = 1.0f - 1.0f / m_linearMotorDecayTimescale; | 404 | m_lmDecay = 1.0f - 1.0f / m_linearMotorDecayTimescale; |
403 | 405 | ||
404 | m_ffactor = 0.01f; | 406 | m_ffactor = 0.0f; |
405 | if (rootPrim.Body != IntPtr.Zero && !d.BodyIsEnabled(rootPrim.Body) | 407 | if (rootPrim.Body != IntPtr.Zero && !d.BodyIsEnabled(rootPrim.Body) |
406 | && !rootPrim.m_isSelected && !rootPrim.m_disabled) | 408 | && !rootPrim.m_isSelected && !rootPrim.m_disabled) |
407 | d.BodyEnable(rootPrim.Body); | 409 | d.BodyEnable(rootPrim.Body); |
@@ -805,7 +807,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
805 | } | 807 | } |
806 | 808 | ||
807 | m_lmEfect *= m_lmDecay; | 809 | m_lmEfect *= m_lmDecay; |
808 | m_ffactor = 0.01f + 1e-4f * curVel.LengthSquared(); | 810 | // m_ffactor = 0.01f + 1e-4f * curVel.LengthSquared(); |
811 | m_ffactor = 0.0f; | ||
809 | } | 812 | } |
810 | else | 813 | else |
811 | { | 814 | { |
diff --git a/OpenSim/Region/Physics/UbitOdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/UbitOdePlugin/ODEPrim.cs index 9b3b51b..3d8e680 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/ODEPrim.cs | |||
@@ -275,6 +275,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
275 | 275 | ||
276 | if (veh != null && veh.Type != Vehicle.TYPE_NONE) | 276 | if (veh != null && veh.Type != Vehicle.TYPE_NONE) |
277 | cdata.mu *= veh.FrictionFactor; | 277 | cdata.mu *= veh.FrictionFactor; |
278 | // cdata.mu *= 0; | ||
278 | } | 279 | } |
279 | } | 280 | } |
280 | 281 | ||
diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs index 6c72324..4552f3f 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs | |||
@@ -526,8 +526,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
526 | d.WorldSetGravity(world, gravityx, gravityy, gravityz); | 526 | d.WorldSetGravity(world, gravityx, gravityy, gravityz); |
527 | d.WorldSetContactSurfaceLayer(world, contactsurfacelayer); | 527 | d.WorldSetContactSurfaceLayer(world, contactsurfacelayer); |
528 | 528 | ||
529 | d.WorldSetLinearDamping(world, 0.001f); | 529 | d.WorldSetLinearDamping(world, 0.002f); |
530 | d.WorldSetAngularDamping(world, 0.001f); | 530 | d.WorldSetAngularDamping(world, 0.002f); |
531 | d.WorldSetAngularDampingThreshold(world, 0f); | 531 | d.WorldSetAngularDampingThreshold(world, 0f); |
532 | d.WorldSetLinearDampingThreshold(world, 0f); | 532 | d.WorldSetLinearDampingThreshold(world, 0f); |
533 | d.WorldSetMaxAngularSpeed(world, 100f); | 533 | d.WorldSetMaxAngularSpeed(world, 100f); |