* Remove some super experimental stuff in BulletDotNETPlugin since it was causing issues.
* Tweak the ODEPrim PID a bit more.0.6.5-rc1
parent
eac5d4015d
commit
8a7a0190e6
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue