From be176b1e4948059e041d06be2caea1eb10b5ee68 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 29 Apr 2012 08:24:41 +0100 Subject: ubitode fix inertia for same cases. Added a nasty lock on llGetCenterOfMass and simulate --- OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs') diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs index fa3d33e..84195d3 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs @@ -301,7 +301,7 @@ namespace OpenSim.Region.Physics.OdePlugin // split static geometry collision into a grid as before private IntPtr[,] staticPrimspace; - private Object OdeLock; + public Object OdeLock; private static Object SimulationLock; public IMesher mesher; @@ -746,8 +746,7 @@ namespace OpenSim.Region.Physics.OdePlugin ); // do volume detection case if ( - (p1 is OdePrim) && (((OdePrim)p1).m_isVolumeDetect) || - (p2 is OdePrim) && (((OdePrim)p2).m_isVolumeDetect)) + (p1.IsVolumeDtc || p2.IsVolumeDtc)) { collision_accounting_events(p1, p2, maxDepthContact); return; @@ -1024,9 +1023,9 @@ namespace OpenSim.Region.Physics.OdePlugin bool p1events = p1.SubscribedEvents(); bool p2events = p2.SubscribedEvents(); - if (p1 is OdePrim && p1.IsVolumeDtc) + if (p1.IsVolumeDtc) p2events = false; - if (p2 is OdePrim && p2.IsVolumeDtc) + if (p2.IsVolumeDtc) p1events = false; if (!(p2events || p1events)) @@ -1725,6 +1724,7 @@ namespace OpenSim.Region.Physics.OdePlugin // checkThread(); lock (SimulationLock) + lock(OdeLock) { // adjust number of iterations per step try -- cgit v1.1