diff options
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BS6DofConstraint.cs')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BS6DofConstraint.cs | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BS6DofConstraint.cs b/OpenSim/Region/Physics/BulletSPlugin/BS6DofConstraint.cs index ff271fe..39a3421 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BS6DofConstraint.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BS6DofConstraint.cs | |||
@@ -58,10 +58,22 @@ public class BS6DofConstraint : BSConstraint | |||
58 | m_world = world; | 58 | m_world = world; |
59 | m_body1 = obj1; | 59 | m_body1 = obj1; |
60 | m_body2 = obj2; | 60 | m_body2 = obj2; |
61 | m_constraint = new BulletConstraint( | 61 | if (obj1.ptr == IntPtr.Zero || obj2.ptr == IntPtr.Zero) |
62 | BulletSimAPI.Create6DofConstraintToPoint2(m_world.ptr, m_body1.ptr, m_body2.ptr, | 62 | { |
63 | joinPoint, | 63 | world.scene.DetailLog("{0},BS6DOFConstraint,badBodyPtr,wID={1}, rID={2}, rBody={3}, cID={4}, cBody={5}", |
64 | useLinearReferenceFrameA, disableCollisionsBetweenLinkedBodies)); | 64 | "[BULLETSIM 6DOF CONSTRAINT]", world.worldID, |
65 | obj1.ID, obj1.ptr.ToString("X"), obj2.ID, obj2.ptr.ToString("X")); | ||
66 | world.scene.Logger.ErrorFormat("{0} Attempt to build 6DOF constraint with missing bodies: wID={1}, rID={2}, rBody={3}, cID={4}, cBody={5}", | ||
67 | "[BULLETSIM 6DOF CONSTRAINT]", world.worldID, | ||
68 | obj1.ID, obj1.ptr.ToString("X"), obj2.ID, obj2.ptr.ToString("X")); | ||
69 | } | ||
70 | else | ||
71 | { | ||
72 | m_constraint = new BulletConstraint( | ||
73 | BulletSimAPI.Create6DofConstraintToPoint2(m_world.ptr, m_body1.ptr, m_body2.ptr, | ||
74 | joinPoint, | ||
75 | useLinearReferenceFrameA, disableCollisionsBetweenLinkedBodies)); | ||
76 | } | ||
65 | m_enabled = true; | 77 | m_enabled = true; |
66 | } | 78 | } |
67 | 79 | ||