* Remove some super experimental stuff in BulletDotNETPlugin since it was causing issues.

* Tweak the ODEPrim PID a bit more.
0.6.5-rc1
Teravus Ovares 2009-04-16 08:11:05 +00:00
parent eac5d4015d
commit 8a7a0190e6
3 changed files with 18 additions and 11 deletions

View File

@ -2140,8 +2140,8 @@ namespace OpenSim.Region.Physics.BulletDotNETPlugin
((btGImpactMeshShape) prim_geom).setLocalScaling(new btVector3(1, 1, 1)); ((btGImpactMeshShape) prim_geom).setLocalScaling(new btVector3(1, 1, 1));
((btGImpactMeshShape) prim_geom).updateBound(); ((btGImpactMeshShape) prim_geom).updateBound();
} }
Body.setCollisionFlags(Body.getCollisionFlags() | (int)ContactFlags.CF_CUSTOM_MATERIAL_CALLBACK); //Body.setCollisionFlags(Body.getCollisionFlags() | (int)ContactFlags.CF_CUSTOM_MATERIAL_CALLBACK);
Body.setUserPointer((IntPtr) m_localID); //Body.setUserPointer((IntPtr) (int)m_localID);
_parent_scene.AddPrimToScene(this); _parent_scene.AddPrimToScene(this);
} }
else else

View File

@ -134,7 +134,7 @@ namespace OpenSim.Region.Physics.BulletDotNETPlugin
m_dispatcher = new btCollisionDispatcher(m_collisionConfiguration); m_dispatcher = new btCollisionDispatcher(m_collisionConfiguration);
m_world = new btDiscreteDynamicsWorld(m_dispatcher, m_broadphase, m_solver, m_collisionConfiguration); m_world = new btDiscreteDynamicsWorld(m_dispatcher, m_broadphase, m_solver, m_collisionConfiguration);
m_world.setGravity(m_gravity); m_world.setGravity(m_gravity);
EnableCollisionInterface(); //EnableCollisionInterface();
} }

View File

@ -2733,28 +2733,29 @@ namespace OpenSim.Region.Physics.OdePlugin
/*
// Inverse Inertia Matrix, set the X, Y, and/r Z inertia to 0 then invert it again. // Inverse Inertia Matrix, set the X, Y, and/r Z inertia to 0 then invert it again.
d.Mass objMass; d.Mass objMass;
d.MassSetZero(out objMass); d.MassSetZero(out objMass);
DMassCopy(ref pMass, ref objMass); DMassCopy(ref pMass, ref objMass);
m_log.DebugFormat("1-{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, ", objMass.I.M00, objMass.I.M01, objMass.I.M02, objMass.I.M10, objMass.I.M11, objMass.I.M12, objMass.I.M20, objMass.I.M21, objMass.I.M22); //m_log.DebugFormat("1-{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, ", objMass.I.M00, objMass.I.M01, objMass.I.M02, objMass.I.M10, objMass.I.M11, objMass.I.M12, objMass.I.M20, objMass.I.M21, objMass.I.M22);
Matrix4 dMassMat = FromDMass(objMass); Matrix4 dMassMat = FromDMass(objMass);
Matrix4 mathmat = Inverse(dMassMat); Matrix4 mathmat = Inverse(dMassMat);
m_log.DebugFormat("2-{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, ", mathmat[0, 0], mathmat[0, 1], mathmat[0, 2], mathmat[1, 0], mathmat[1, 1], mathmat[1, 2], mathmat[2, 0], mathmat[2, 1], mathmat[2, 2]); /*
//m_log.DebugFormat("2-{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, ", mathmat[0, 0], mathmat[0, 1], mathmat[0, 2], mathmat[1, 0], mathmat[1, 1], mathmat[1, 2], mathmat[2, 0], mathmat[2, 1], mathmat[2, 2]);
mathmat = Inverse(mathmat); mathmat = Inverse(mathmat);
objMass = FromMatrix4(mathmat, ref objMass); objMass = FromMatrix4(mathmat, ref objMass);
m_log.DebugFormat("3-{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, ", objMass.I.M00, objMass.I.M01, objMass.I.M02, objMass.I.M10, objMass.I.M11, objMass.I.M12, objMass.I.M20, objMass.I.M21, objMass.I.M22); //m_log.DebugFormat("3-{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, ", objMass.I.M00, objMass.I.M01, objMass.I.M02, objMass.I.M10, objMass.I.M11, objMass.I.M12, objMass.I.M20, objMass.I.M21, objMass.I.M22);
mathmat = Inverse(mathmat); mathmat = Inverse(mathmat);
*/
if (axis.X == 0) if (axis.X == 0)
{ {
mathmat.M33 = 50.0000001f; mathmat.M33 = 50.0000001f;
@ -2775,12 +2776,18 @@ namespace OpenSim.Region.Physics.OdePlugin
mathmat = Inverse(mathmat); mathmat = Inverse(mathmat);
objMass = FromMatrix4(mathmat, ref objMass); objMass = FromMatrix4(mathmat, ref objMass);
m_log.DebugFormat("4-{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, ", objMass.I.M00, objMass.I.M01, objMass.I.M02, objMass.I.M10, objMass.I.M11, objMass.I.M12, objMass.I.M20, objMass.I.M21, objMass.I.M22); //m_log.DebugFormat("4-{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, ", objMass.I.M00, objMass.I.M01, objMass.I.M02, objMass.I.M10, objMass.I.M11, objMass.I.M12, objMass.I.M20, objMass.I.M21, objMass.I.M22);
//return; //return;
if (d.MassCheck(ref objMass))
{
d.BodySetMass(Body, ref objMass);
}
else
{
//m_log.Debug("[PHYSICS]: Mass invalid, ignoring");
}
d.BodySetMass(Body, ref objMass);
*/
if (axisnum <= 0) if (axisnum <= 0)
return; return;
int dAMotorEuler = 1; int dAMotorEuler = 1;