fixing some issues: force needs to wake up objects, property sensor issue, island activation issue
This commit is contained in:
@@ -268,7 +268,7 @@ bool SCA_PropertySensor::CheckPropertyCondition()
|
||||
m_recentresult=result;
|
||||
} else
|
||||
{
|
||||
m_recentresult=true;
|
||||
m_recentresult=result;//true;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user