diff options
author | Melanie | 2011-10-27 18:14:38 +0100 |
---|---|---|
committer | Melanie | 2011-10-27 18:14:38 +0100 |
commit | b975cbcbed71b12898052395fbc83a5880273190 (patch) | |
tree | f149288740af5227a865783a51f566bef537721e /OpenSim/Region/Physics | |
parent | Merge branch 'master' into bigmerge (diff) | |
parent | Removed use of 'is' operator and casting to find the root ScenePresence in Me... (diff) | |
download | opensim-SC-b975cbcbed71b12898052395fbc83a5880273190.zip opensim-SC-b975cbcbed71b12898052395fbc83a5880273190.tar.gz opensim-SC-b975cbcbed71b12898052395fbc83a5880273190.tar.bz2 opensim-SC-b975cbcbed71b12898052395fbc83a5880273190.tar.xz |
Merge branch 'master' into bigmerge
Conflicts:
OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs
OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
Diffstat (limited to 'OpenSim/Region/Physics')
-rw-r--r-- | OpenSim/Region/Physics/Manager/PhysicsActor.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs index 362f997..49f60f8 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs | |||
@@ -76,6 +76,8 @@ namespace OpenSim.Region.Physics.Manager | |||
76 | /// </summary> | 76 | /// </summary> |
77 | public int Count { get { return m_objCollisionList.Count; } } | 77 | public int Count { get { return m_objCollisionList.Count; } } |
78 | 78 | ||
79 | public bool CollisionsOnPreviousFrame { get; private set; } | ||
80 | |||
79 | public Dictionary<uint, ContactPoint> m_objCollisionList; | 81 | public Dictionary<uint, ContactPoint> m_objCollisionList; |
80 | 82 | ||
81 | public CollisionEventUpdate(Dictionary<uint, ContactPoint> objCollisionList) | 83 | public CollisionEventUpdate(Dictionary<uint, ContactPoint> objCollisionList) |
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs index 3a17511..6e34811 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | |||
@@ -193,6 +193,15 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
193 | private int m_eventsubscription; | 193 | private int m_eventsubscription; |
194 | private CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate(); | 194 | private CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate(); |
195 | 195 | ||
196 | /// <summary> | ||
197 | /// Signal whether there were collisions on the previous frame, so we know if we need to send the | ||
198 | /// empty CollisionEventsThisFrame to the prim so that it can detect the end of a collision. | ||
199 | /// </summary> | ||
200 | /// <remarks> | ||
201 | /// This is probably a temporary measure, pending storing this information consistently in CollisionEventUpdate itself. | ||
202 | /// </remarks> | ||
203 | private bool m_collisionsOnPreviousFrame; | ||
204 | |||
196 | private IntPtr m_linkJoint = IntPtr.Zero; | 205 | private IntPtr m_linkJoint = IntPtr.Zero; |
197 | 206 | ||
198 | internal volatile bool childPrim; | 207 | internal volatile bool childPrim; |
@@ -3025,8 +3034,20 @@ Console.WriteLine(" JointCreateFixed"); | |||
3025 | 3034 | ||
3026 | public void SendCollisions() | 3035 | public void SendCollisions() |
3027 | { | 3036 | { |
3028 | if (CollisionEventsThisFrame.Count > 0) | 3037 | if (m_collisionsOnPreviousFrame || CollisionEventsThisFrame.Count > 0) |
3038 | { | ||
3029 | base.SendCollisionUpdate(CollisionEventsThisFrame); | 3039 | base.SendCollisionUpdate(CollisionEventsThisFrame); |
3040 | |||
3041 | if (CollisionEventsThisFrame.Count > 0) | ||
3042 | { | ||
3043 | m_collisionsOnPreviousFrame = true; | ||
3044 | CollisionEventsThisFrame.Clear(); | ||
3045 | } | ||
3046 | else | ||
3047 | { | ||
3048 | m_collisionsOnPreviousFrame = false; | ||
3049 | } | ||
3050 | } | ||
3030 | } | 3051 | } |
3031 | 3052 | ||
3032 | public override bool SubscribedEvents() | 3053 | public override bool SubscribedEvents() |