diff options
author | Robert Adams | 2012-08-15 16:27:30 -0700 |
---|---|---|
committer | Robert Adams | 2012-08-15 16:29:50 -0700 |
commit | 376441e5507052b36279279f64896542d44ec12a (patch) | |
tree | 0dd9e1df759f76eb516c1ce5efca1829f658d76e /OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | |
parent | BulletSim: update DLLs and SOs to fix the problem with avatars jumping around... (diff) | |
download | opensim-SC_OLD-376441e5507052b36279279f64896542d44ec12a.zip opensim-SC_OLD-376441e5507052b36279279f64896542d44ec12a.tar.gz opensim-SC_OLD-376441e5507052b36279279f64896542d44ec12a.tar.bz2 opensim-SC_OLD-376441e5507052b36279279f64896542d44ec12a.tar.xz |
BulletSim: make it so objects in a linkset do not generate collisions with each other.
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs index 9c20004..c157669 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | |||
@@ -1353,6 +1353,7 @@ public sealed class BSPrim : PhysicsActor | |||
1353 | } | 1353 | } |
1354 | 1354 | ||
1355 | // I've collided with something | 1355 | // I've collided with something |
1356 | // Called at taint time from within the Step() function | ||
1356 | CollisionEventUpdate collisionCollection; | 1357 | CollisionEventUpdate collisionCollection; |
1357 | public void Collide(uint collidingWith, ActorTypes type, OMV.Vector3 contactPoint, OMV.Vector3 contactNormal, float pentrationDepth) | 1358 | public void Collide(uint collidingWith, ActorTypes type, OMV.Vector3 contactPoint, OMV.Vector3 contactNormal, float pentrationDepth) |
1358 | { | 1359 | { |
@@ -1366,6 +1367,15 @@ public sealed class BSPrim : PhysicsActor | |||
1366 | } | 1367 | } |
1367 | 1368 | ||
1368 | // DetailLog("{0},BSPrim.Collison,call,with={1}", LocalID, collidingWith); | 1369 | // DetailLog("{0},BSPrim.Collison,call,with={1}", LocalID, collidingWith); |
1370 | BSPrim collidingWithPrim; | ||
1371 | if (_scene.Prims.TryGetValue(collidingWith, out collidingWithPrim)) | ||
1372 | { | ||
1373 | // prims in the same linkset cannot collide with each other | ||
1374 | if (this.Linkset.LinksetID == collidingWithPrim.Linkset.LinksetID) | ||
1375 | { | ||
1376 | return; | ||
1377 | } | ||
1378 | } | ||
1369 | 1379 | ||
1370 | // if someone is subscribed to collision events.... | 1380 | // if someone is subscribed to collision events.... |
1371 | if (_subscribedEventsMs != 0) { | 1381 | if (_subscribedEventsMs != 0) { |