* Last bit of cleanup now. As long as you keep physical prim off, you should have a reasonably stable experience with ODE again.
* Physical prim at the simulator edge still seems to have the occasional issue.ThreadPoolClientBranch
parent
f80a534eb0
commit
c2d7beb617
|
@ -1073,22 +1073,24 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
}
|
}
|
||||||
private void changevelocity(float timestep)
|
private void changevelocity(float timestep)
|
||||||
{
|
{
|
||||||
while (ode.lockquery())
|
lock (ode)
|
||||||
{
|
{
|
||||||
}
|
while (ode.lockquery())
|
||||||
ode.dlock(_parent_scene.world);
|
|
||||||
|
|
||||||
System.Threading.Thread.Sleep(20);
|
|
||||||
if (IsPhysical)
|
|
||||||
{
|
|
||||||
if (Body != (IntPtr)0)
|
|
||||||
{
|
{
|
||||||
d.BodySetLinearVel(Body, m_taintVelocity.X, m_taintVelocity.Y, m_taintVelocity.Z);
|
|
||||||
}
|
}
|
||||||
|
ode.dlock(_parent_scene.world);
|
||||||
|
|
||||||
|
System.Threading.Thread.Sleep(20);
|
||||||
|
if (IsPhysical)
|
||||||
|
{
|
||||||
|
if (Body != (IntPtr)0)
|
||||||
|
{
|
||||||
|
d.BodySetLinearVel(Body, m_taintVelocity.X, m_taintVelocity.Y, m_taintVelocity.Z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ode.dunlock(_parent_scene.world);
|
||||||
}
|
}
|
||||||
|
|
||||||
ode.dunlock(_parent_scene.world);
|
|
||||||
|
|
||||||
//resetCollisionAccounting();
|
//resetCollisionAccounting();
|
||||||
m_taintVelocity = PhysicsVector.Zero;
|
m_taintVelocity = PhysicsVector.Zero;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue