fixing some issues: force needs to wake up objects, property sensor issue, island activation issue

This commit is contained in:
Erwin Coumans
2006-12-25 02:02:13 +00:00
parent 0e094ffcab
commit e820cdf6a0
6 changed files with 50 additions and 25 deletions

View File

@@ -268,7 +268,7 @@ bool SCA_PropertySensor::CheckPropertyCondition()
m_recentresult=result;
} else
{
m_recentresult=true;
m_recentresult=result;//true;
}
return result;
}

View File

@@ -90,7 +90,8 @@ bool KX_NetworkMessageSensor::Evaluate(CValue* event)
bool result = false;
bool WasUp = m_IsUp;
m_IsUp = false;
// m_IsUp = false;
if (m_BodyList) {
m_BodyList->Release();
m_BodyList = NULL;

View File

@@ -379,6 +379,10 @@ void CcdPhysicsController::ApplyTorque(float torqueX,float torqueY,float torque
{
btVector3 torque(torqueX,torqueY,torqueZ);
btTransform xform = m_body->getCenterOfMassTransform();
if (torque.length2() > (SIMD_EPSILON*SIMD_EPSILON))
{
m_body->activate();
}
if (local)
{
torque = xform.getBasis()*torque;
@@ -389,6 +393,13 @@ void CcdPhysicsController::ApplyTorque(float torqueX,float torqueY,float torque
void CcdPhysicsController::ApplyForce(float forceX,float forceY,float forceZ,bool local)
{
btVector3 force(forceX,forceY,forceZ);
if (force.length2() > (SIMD_EPSILON*SIMD_EPSILON))
{
m_body->activate();
}
btTransform xform = m_body->getCenterOfMassTransform();
if (local)
{

View File

@@ -653,6 +653,8 @@ void CcdPhysicsEnvironment::removeConstraint(int constraintId)
btTypedConstraint* constraint = m_dynamicsWorld->getConstraint(i);
if (constraint->getUserConstraintId() == constraintId)
{
constraint->getRigidBodyA().activate();
constraint->getRigidBodyB().activate();
m_dynamicsWorld->removeConstraint(constraint);
break;
}