diff options
author | Robert Adams | 2012-09-25 15:01:18 -0700 |
---|---|---|
committer | Robert Adams | 2012-09-27 22:01:42 -0700 |
commit | 735d89e3692bb7c620b9e3c248a1dbd5924b8b3f (patch) | |
tree | 0d31723cc7302e4928de6ac69905787099442bf1 /OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs | |
parent | BulletSim: renamed members of BulletShape, BulletSim and BulletBody (diff) | |
download | opensim-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-x | OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs | 8 |
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 | { |