diff options
author | Robert Adams | 2013-07-23 08:14:20 -0700 |
---|---|---|
committer | Robert Adams | 2013-07-23 08:14:20 -0700 |
commit | f499b328c44ef29d92aa2ef8102aad6ff5cbe336 (patch) | |
tree | ec77334532f05495f8174b8c2eb971d3073a3885 /OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs | |
parent | Revert "Revert "BulletSim: change BSDynamics to expect to be passed a BSPrimL... (diff) | |
download | opensim-SC_OLD-f499b328c44ef29d92aa2ef8102aad6ff5cbe336.zip opensim-SC_OLD-f499b328c44ef29d92aa2ef8102aad6ff5cbe336.tar.gz opensim-SC_OLD-f499b328c44ef29d92aa2ef8102aad6ff5cbe336.tar.bz2 opensim-SC_OLD-f499b328c44ef29d92aa2ef8102aad6ff5cbe336.tar.xz |
Revert "Revert "BulletSim: Add logic to linksets to change physical properties for""
Found that the vehicle movement problem was not caused by these physics changes.
This reverts commit 84d0699761b8da546f9faef084240d7b15f16321.
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs b/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs index 78c0af7..960c0b4 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs | |||
@@ -309,14 +309,14 @@ public abstract class BSLinkset | |||
309 | } | 309 | } |
310 | ); | 310 | ); |
311 | } | 311 | } |
312 | public virtual void ComputeLocalInertia() | 312 | public virtual void ComputeLocalInertia(OMV.Vector3 inertiaFactor) |
313 | { | 313 | { |
314 | ForEachMember((member) => | 314 | ForEachMember((member) => |
315 | { | 315 | { |
316 | if (member.PhysBody.HasPhysicalBody) | 316 | if (member.PhysBody.HasPhysicalBody) |
317 | { | 317 | { |
318 | OMV.Vector3 inertia = m_physicsScene.PE.CalculateLocalInertia(member.PhysShape.physShapeInfo, member.Mass); | 318 | OMV.Vector3 inertia = m_physicsScene.PE.CalculateLocalInertia(member.PhysShape.physShapeInfo, member.Mass); |
319 | member.Inertia = inertia * BSParam.VehicleInertiaFactor; | 319 | member.Inertia = inertia * inertiaFactor; |
320 | m_physicsScene.PE.SetMassProps(member.PhysBody, member.Mass, member.Inertia); | 320 | m_physicsScene.PE.SetMassProps(member.PhysBody, member.Mass, member.Inertia); |
321 | m_physicsScene.PE.UpdateInertiaTensor(member.PhysBody); | 321 | m_physicsScene.PE.UpdateInertiaTensor(member.PhysBody); |
322 | } | 322 | } |
@@ -324,6 +324,26 @@ public abstract class BSLinkset | |||
324 | } | 324 | } |
325 | ); | 325 | ); |
326 | } | 326 | } |
327 | public virtual void SetPhysicalCollisionFlags(CollisionFlags collFlags) | ||
328 | { | ||
329 | ForEachMember((member) => | ||
330 | { | ||
331 | if (member.PhysBody.HasPhysicalBody) | ||
332 | m_physicsScene.PE.SetCollisionFlags(member.PhysBody, collFlags); | ||
333 | return false; // 'false' says to continue looping | ||
334 | } | ||
335 | ); | ||
336 | } | ||
337 | public virtual void RemoveFromPhysicalCollisionFlags(CollisionFlags collFlags) | ||
338 | { | ||
339 | ForEachMember((member) => | ||
340 | { | ||
341 | if (member.PhysBody.HasPhysicalBody) | ||
342 | m_physicsScene.PE.RemoveFromCollisionFlags(member.PhysBody, collFlags); | ||
343 | return false; // 'false' says to continue looping | ||
344 | } | ||
345 | ); | ||
346 | } | ||
327 | // ================================================================ | 347 | // ================================================================ |
328 | protected virtual float ComputeLinksetMass() | 348 | protected virtual float ComputeLinksetMass() |
329 | { | 349 | { |