aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs
diff options
context:
space:
mode:
authorRobert Adams2012-09-25 15:01:18 -0700
committerRobert Adams2012-09-27 22:01:42 -0700
commit735d89e3692bb7c620b9e3c248a1dbd5924b8b3f (patch)
tree0d31723cc7302e4928de6ac69905787099442bf1 /OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs
parentBulletSim: renamed members of BulletShape, BulletSim and BulletBody (diff)
downloadopensim-SC_OLD-735d89e3692bb7c620b9e3c248a1dbd5924b8b3f.zip
opensim-SC_OLD-735d89e3692bb7c620b9e3c248a1dbd5924b8b3f.tar.gz
opensim-SC_OLD-735d89e3692bb7c620b9e3c248a1dbd5924b8b3f.tar.bz2
opensim-SC_OLD-735d89e3692bb7c620b9e3c248a1dbd5924b8b3f.tar.xz
BulletSim: btGhostObjects working to make 'volume detect' work.
Rearrangement and cleanup of shape collection code. Much more readable. Enabling and use of collision filters and masks. Addition of ID to body creation BulletSimAPI calls so always set in shape for collision reporting. Change default of ShouldSplitSimulationIslands and ShouldRandomizeSolverOrder from 'false' to 'true'. When 'false', this suppresses NO_CONTACT_RESPONSE which makes volume detect fail.
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs')
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs8
1 files changed, 6 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs
index 6a9fe50..3458477 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs
@@ -123,6 +123,7 @@ public abstract class BSPhysObject : PhysicsActor
123 CollisionCollection.AddCollider(collidingWith, new ContactPoint(contactPoint, contactNormal, pentrationDepth)); 123 CollisionCollection.AddCollider(collidingWith, new ContactPoint(contactPoint, contactNormal, pentrationDepth));
124 DetailLog("{0},{1}.Collison.AddCollider,call,with={2},point={3},normal={4},depth={5}", 124 DetailLog("{0},{1}.Collison.AddCollider,call,with={2},point={3},normal={4},depth={5}",
125 LocalID, TypeName, collidingWith, contactPoint, contactNormal, pentrationDepth); 125 LocalID, TypeName, collidingWith, contactPoint, contactNormal, pentrationDepth);
126
126 ret = true; 127 ret = true;
127 } 128 }
128 return ret; 129 return ret;
@@ -145,7 +146,10 @@ public abstract class BSPhysObject : PhysicsActor
145 // We are called if we previously had collisions. If there are no collisions 146 // We are called if we previously had collisions. If there are no collisions
146 // this time, send up one last empty event so OpenSim can sense collision end. 147 // this time, send up one last empty event so OpenSim can sense collision end.
147 if (CollisionCollection.Count == 0) 148 if (CollisionCollection.Count == 0)
149 {
150 // If I have no collisions this time, remove me from the list of objects with collisions.
148 PhysicsScene.ObjectsWithNoMoreCollisions.Add(this); 151 PhysicsScene.ObjectsWithNoMoreCollisions.Add(this);
152 }
149 153
150 DetailLog("{0},{1}.SendCollisionUpdate,call,numCollisions={2}", LocalID, TypeName, CollisionCollection.Count); 154 DetailLog("{0},{1}.SendCollisionUpdate,call,numCollisions={2}", LocalID, TypeName, CollisionCollection.Count);
151 base.SendCollisionUpdate(CollisionCollection); 155 base.SendCollisionUpdate(CollisionCollection);
@@ -159,7 +163,7 @@ public abstract class BSPhysObject : PhysicsActor
159 // Subscribe for collision events. 163 // Subscribe for collision events.
160 // Parameter is the millisecond rate the caller wishes collision events to occur. 164 // Parameter is the millisecond rate the caller wishes collision events to occur.
161 public override void SubscribeEvents(int ms) { 165 public override void SubscribeEvents(int ms) {
162 DetailLog("{0},BSScene.SubscribeEvents,subscribing,ms={1}", BSScene.DetailLogZero, ms); 166 DetailLog("{0},{1}.SubscribeEvents,subscribing,ms={2}", LocalID, TypeName, ms);
163 SubscribedEventsMs = ms; 167 SubscribedEventsMs = ms;
164 if (ms > 0) 168 if (ms > 0)
165 { 169 {
@@ -178,7 +182,7 @@ public abstract class BSPhysObject : PhysicsActor
178 } 182 }
179 } 183 }
180 public override void UnSubscribeEvents() { 184 public override void UnSubscribeEvents() {
181 DetailLog("{0},BSScene.UnSubscribeEvents,unsubscribing", BSScene.DetailLogZero); 185 DetailLog("{0},{1}.UnSubscribeEvents,unsubscribing", LocalID, TypeName);
182 SubscribedEventsMs = 0; 186 SubscribedEventsMs = 0;
183 PhysicsScene.TaintedObject(TypeName+".UnSubscribeEvents", delegate() 187 PhysicsScene.TaintedObject(TypeName+".UnSubscribeEvents", delegate()
184 { 188 {