aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs
diff options
context:
space:
mode:
authorRobert Adams2013-07-23 08:14:20 -0700
committerRobert Adams2013-07-23 08:14:20 -0700
commitf499b328c44ef29d92aa2ef8102aad6ff5cbe336 (patch)
treeec77334532f05495f8174b8c2eb971d3073a3885 /OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs
parentRevert "Revert "BulletSim: change BSDynamics to expect to be passed a BSPrimL... (diff)
downloadopensim-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/BSLinksetCompound.cs')
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs36
1 files changed, 36 insertions, 0 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs b/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs
index 3668456..33ae5a5 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs
@@ -44,6 +44,42 @@ public sealed class BSLinksetCompound : BSLinkset
44 { 44 {
45 } 45 }
46 46
47 // ================================================================
48 // Changing the physical property of the linkset only needs to change the root
49 public override void SetPhysicalFriction(float friction)
50 {
51 if (LinksetRoot.PhysBody.HasPhysicalBody)
52 m_physicsScene.PE.SetFriction(LinksetRoot.PhysBody, friction);
53 }
54 public override void SetPhysicalRestitution(float restitution)
55 {
56 if (LinksetRoot.PhysBody.HasPhysicalBody)
57 m_physicsScene.PE.SetRestitution(LinksetRoot.PhysBody, restitution);
58 }
59 public override void SetPhysicalGravity(OMV.Vector3 gravity)
60 {
61 if (LinksetRoot.PhysBody.HasPhysicalBody)
62 m_physicsScene.PE.SetGravity(LinksetRoot.PhysBody, gravity);
63 }
64 public override void ComputeLocalInertia(OMV.Vector3 inertiaFactor)
65 {
66 OMV.Vector3 inertia = m_physicsScene.PE.CalculateLocalInertia(LinksetRoot.PhysShape.physShapeInfo, LinksetRoot.Mass);
67 LinksetRoot.Inertia = inertia * inertiaFactor;
68 m_physicsScene.PE.SetMassProps(LinksetRoot.PhysBody, LinksetRoot.Mass, LinksetRoot.Inertia);
69 m_physicsScene.PE.UpdateInertiaTensor(LinksetRoot.PhysBody);
70 }
71 public override void SetPhysicalCollisionFlags(CollisionFlags collFlags)
72 {
73 if (LinksetRoot.PhysBody.HasPhysicalBody)
74 m_physicsScene.PE.SetCollisionFlags(LinksetRoot.PhysBody, collFlags);
75 }
76 public override void RemoveFromPhysicalCollisionFlags(CollisionFlags collFlags)
77 {
78 if (LinksetRoot.PhysBody.HasPhysicalBody)
79 m_physicsScene.PE.RemoveFromCollisionFlags(LinksetRoot.PhysBody, collFlags);
80 }
81 // ================================================================
82
47 // When physical properties are changed the linkset needs to recalculate 83 // When physical properties are changed the linkset needs to recalculate
48 // its internal properties. 84 // its internal properties.
49 public override void Refresh(BSPrimLinkable requestor) 85 public override void Refresh(BSPrimLinkable requestor)