* ODE - This fixes a few things and breaks a few more.
parent
5f70b8b922
commit
e3a711536b
|
@ -520,7 +520,7 @@ namespace OpenSim.Region.Physics.Meshing
|
|||
// Calculated separately to avoid errors
|
||||
cutHull.AddVertex(legEnd);
|
||||
|
||||
m_log.DebugFormat("Starting cutting of the hollow shape from the prim {1}", 0, primName);
|
||||
// m_log.DebugFormat("Starting cutting of the hollow shape from the prim {1}", 0, primName);
|
||||
SimpleHull cuttedHull = SimpleHull.SubtractHull(outerHull, cutHull);
|
||||
|
||||
outerHull = cuttedHull;
|
||||
|
|
|
@ -92,7 +92,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
|
||||
private int debugcounter = 0;
|
||||
|
||||
public OdePrim(String primName, OdeScene parent_scene, IntPtr targetSpace, PhysicsVector pos, PhysicsVector size,
|
||||
public OdePrim(String primName, OdeScene parent_scene, PhysicsVector pos, PhysicsVector size,
|
||||
Quaternion rotation, IMesh mesh, PrimitiveBaseShape pbs, bool pisPhysical, CollisionLocker dode)
|
||||
{
|
||||
ode = dode;
|
||||
|
@ -126,7 +126,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
_pbs = pbs;
|
||||
|
||||
_parent_scene = parent_scene;
|
||||
m_targetSpace = targetSpace;
|
||||
m_targetSpace = (IntPtr)0;
|
||||
|
||||
if (pos.Z < 0)
|
||||
m_isphysical = false;
|
||||
|
@ -433,6 +433,14 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
}
|
||||
public void changeadd(float timestep)
|
||||
{
|
||||
int[] iprimspaceArrItem = _parent_scene.calculateSpaceArrayItemFromPos(_position);
|
||||
IntPtr targetspace = _parent_scene.calculateSpaceForGeom(_position);
|
||||
|
||||
if (targetspace == IntPtr.Zero)
|
||||
targetspace = _parent_scene.createprimspace(iprimspaceArrItem[0], iprimspaceArrItem[1]);
|
||||
|
||||
m_targetSpace = targetspace;
|
||||
|
||||
if (_mesh != null)
|
||||
{
|
||||
}
|
||||
|
@ -630,11 +638,11 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
|
||||
public void changesize(float timestamp)
|
||||
{
|
||||
if (!_parent_scene.geom_name_map.ContainsKey(prim_geom))
|
||||
{
|
||||
m_taintsize = _size;
|
||||
return;
|
||||
}
|
||||
//if (!_parent_scene.geom_name_map.ContainsKey(prim_geom))
|
||||
//{
|
||||
// m_taintsize = _size;
|
||||
//return;
|
||||
//}
|
||||
string oldname = _parent_scene.geom_name_map[prim_geom];
|
||||
|
||||
|
||||
|
|
|
@ -1033,16 +1033,11 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
rot.z = rotation.z;
|
||||
|
||||
|
||||
int[] iprimspaceArrItem = calculateSpaceArrayItemFromPos(pos);
|
||||
IntPtr targetspace = calculateSpaceForGeom(pos);
|
||||
|
||||
if (targetspace == IntPtr.Zero)
|
||||
targetspace = createprimspace(iprimspaceArrItem[0], iprimspaceArrItem[1]);
|
||||
|
||||
OdePrim newPrim;
|
||||
lock (OdeLock)
|
||||
{
|
||||
newPrim = new OdePrim(name, this, targetspace, pos, siz, rot, mesh, pbs, isphysical, ode);
|
||||
newPrim = new OdePrim(name, this, pos, siz, rot, mesh, pbs, isphysical, ode);
|
||||
|
||||
_prims.Add(newPrim);
|
||||
}
|
||||
|
@ -1244,18 +1239,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
|
||||
collision_optimized(timeStep);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
d.WorldQuickStep(world, ODE_STEPSIZE);
|
||||
}
|
||||
catch (StackOverflowException)
|
||||
{
|
||||
d.WorldQuickStep(world, 0.001f);
|
||||
}
|
||||
|
||||
d.JointGroupEmpty(contactgroup);
|
||||
ode.dunlock(world);
|
||||
|
||||
|
|
Loading…
Reference in New Issue