aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-10-25 22:19:17 +0100
committerJustin Clark-Casey (justincc)2011-10-25 22:19:17 +0100
commit5d37f0471ea504b1426536987d05c7d64dd199ae (patch)
tree66c539fdad4f63939ff3e976240e5a57d2952759 /OpenSim/Region/Physics
parentFix bug where collision event listeners were not removed once the listener ha... (diff)
downloadopensim-SC-5d37f0471ea504b1426536987d05c7d64dd199ae.zip
opensim-SC-5d37f0471ea504b1426536987d05c7d64dd199ae.tar.gz
opensim-SC-5d37f0471ea504b1426536987d05c7d64dd199ae.tar.bz2
opensim-SC-5d37f0471ea504b1426536987d05c7d64dd199ae.tar.xz
For ScenePresence collision events, instead of creating a new CollisionEventsThisFrame every time we need to send some new ones, reuse the existing one instead.
This assumes that the listener is using the data synchronously, which is currently the case.
Diffstat (limited to 'OpenSim/Region/Physics')
-rw-r--r--OpenSim/Region/Physics/Manager/PhysicsActor.cs8
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODECharacter.cs8
2 files changed, 11 insertions, 5 deletions
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
index 96dcfb6..1659ebd 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
@@ -113,6 +113,14 @@ namespace OpenSim.Region.Physics.Manager
113 m_objCollisionList[localID] = contact; 113 m_objCollisionList[localID] = contact;
114 } 114 }
115 } 115 }
116
117 /// <summary>
118 /// Clear added collision events.
119 /// </summary>
120 public void Clear()
121 {
122 m_objCollisionList.Clear();
123 }
116 } 124 }
117 125
118 public abstract class PhysicsActor 126 public abstract class PhysicsActor
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
index e9bab66..55e14bc 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
@@ -1235,11 +1235,9 @@ namespace OpenSim.Region.Physics.OdePlugin
1235 { 1235 {
1236 if (m_eventsubscription > m_requestedUpdateFrequency) 1236 if (m_eventsubscription > m_requestedUpdateFrequency)
1237 { 1237 {
1238 if (CollisionEventsThisFrame != null) 1238 base.SendCollisionUpdate(CollisionEventsThisFrame);
1239 { 1239
1240 base.SendCollisionUpdate(CollisionEventsThisFrame); 1240 CollisionEventsThisFrame.Clear();
1241 }
1242 CollisionEventsThisFrame = new CollisionEventUpdate();
1243 m_eventsubscription = 0; 1241 m_eventsubscription = 0;
1244 } 1242 }
1245 } 1243 }