forked from bartvdbraak/blender
BGE bug #18624: Collision detection fails on parented objects. Partial fix, parented shape now moves with the parent but still the parent near detector detects the child only in the zone where it was parented.
This commit is contained in:
parent
369c8b8055
commit
c56ee09c48
@ -361,6 +361,7 @@ void KX_BulletPhysicsController::SuspendDynamics(bool ghost)
|
|||||||
btBroadphaseProxy* handle = body->getBroadphaseHandle();
|
btBroadphaseProxy* handle = body->getBroadphaseHandle();
|
||||||
m_savedCollisionFlags = body->getCollisionFlags();
|
m_savedCollisionFlags = body->getCollisionFlags();
|
||||||
m_savedMass = GetMass();
|
m_savedMass = GetMass();
|
||||||
|
m_savedDyna = m_bDyna;
|
||||||
m_savedCollisionFilterGroup = handle->m_collisionFilterGroup;
|
m_savedCollisionFilterGroup = handle->m_collisionFilterGroup;
|
||||||
m_savedCollisionFilterMask = handle->m_collisionFilterMask;
|
m_savedCollisionFilterMask = handle->m_collisionFilterMask;
|
||||||
m_savedActivationState = body->getActivationState();
|
m_savedActivationState = body->getActivationState();
|
||||||
@ -370,6 +371,7 @@ void KX_BulletPhysicsController::SuspendDynamics(bool ghost)
|
|||||||
btCollisionObject::CF_STATIC_OBJECT|((ghost)?btCollisionObject::CF_NO_CONTACT_RESPONSE:(m_savedCollisionFlags&btCollisionObject::CF_NO_CONTACT_RESPONSE)),
|
btCollisionObject::CF_STATIC_OBJECT|((ghost)?btCollisionObject::CF_NO_CONTACT_RESPONSE:(m_savedCollisionFlags&btCollisionObject::CF_NO_CONTACT_RESPONSE)),
|
||||||
btBroadphaseProxy::StaticFilter,
|
btBroadphaseProxy::StaticFilter,
|
||||||
btBroadphaseProxy::AllFilter ^ btBroadphaseProxy::StaticFilter);
|
btBroadphaseProxy::AllFilter ^ btBroadphaseProxy::StaticFilter);
|
||||||
|
m_bDyna = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -384,6 +386,7 @@ void KX_BulletPhysicsController::RestoreDynamics()
|
|||||||
m_savedCollisionFilterGroup,
|
m_savedCollisionFilterGroup,
|
||||||
m_savedCollisionFilterMask);
|
m_savedCollisionFilterMask);
|
||||||
body->forceActivationState(m_savedActivationState);
|
body->forceActivationState(m_savedActivationState);
|
||||||
|
m_bDyna = m_savedDyna;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ private:
|
|||||||
short int m_savedCollisionFilterGroup;
|
short int m_savedCollisionFilterGroup;
|
||||||
short int m_savedCollisionFilterMask;
|
short int m_savedCollisionFilterMask;
|
||||||
MT_Scalar m_savedMass;
|
MT_Scalar m_savedMass;
|
||||||
|
bool m_savedDyna;
|
||||||
btCollisionShape* m_bulletChildShape;
|
btCollisionShape* m_bulletChildShape;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
Loading…
Reference in New Issue
Block a user