BGE Fix T39026: No collisions detected with parented rigid body object
Fix for T39026. Preliminary investigation by blenderscripter on D446.
Also it solves bug T41285 (Parenting object leave collission box).
Refactor commit b90de0331d
introduced a
regression bug.
Reviewers: sergof, campbellbarton, moguri
Reviewed By: moguri
Subscribers: blueprintrandom, blenderscripter
Differential Revision: https://developer.blender.org/D1064
This commit is contained in:
parent
eda2d563bc
commit
9e217ccb2e
Notes:
blender-bot
2023-02-14 11:21:40 +01:00
Referenced by issue #41285, Parenting object leave collission box. Referenced by issue #39026, 2.7 BGE: No collisions detected with parented rigid body object
|
@ -148,6 +148,7 @@ CcdPhysicsController::CcdPhysicsController (const CcdConstructionInfo& ci)
|
|||
m_savedCollisionFilterGroup = 0;
|
||||
m_savedCollisionFilterMask = 0;
|
||||
m_savedMass = 0.0;
|
||||
m_savedDyna = false;
|
||||
m_suspended = false;
|
||||
|
||||
CreateRigidbody();
|
||||
|
@ -1068,6 +1069,7 @@ void CcdPhysicsController::SuspendDynamics(bool ghost)
|
|||
|
||||
m_savedCollisionFlags = body->getCollisionFlags();
|
||||
m_savedMass = GetMass();
|
||||
m_savedDyna = m_cci.m_bDyna;
|
||||
m_savedCollisionFilterGroup = handle->m_collisionFilterGroup;
|
||||
m_savedCollisionFilterMask = handle->m_collisionFilterMask;
|
||||
m_suspended = true;
|
||||
|
@ -1076,6 +1078,7 @@ void CcdPhysicsController::SuspendDynamics(bool ghost)
|
|||
btCollisionObject::CF_STATIC_OBJECT|((ghost)?btCollisionObject::CF_NO_CONTACT_RESPONSE:(m_savedCollisionFlags&btCollisionObject::CF_NO_CONTACT_RESPONSE)),
|
||||
btBroadphaseProxy::StaticFilter,
|
||||
btBroadphaseProxy::AllFilter ^ btBroadphaseProxy::StaticFilter);
|
||||
m_cci.m_bDyna = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1092,6 +1095,7 @@ void CcdPhysicsController::RestoreDynamics()
|
|||
m_savedCollisionFilterGroup,
|
||||
m_savedCollisionFilterMask);
|
||||
body->activate();
|
||||
m_cci.m_bDyna = m_savedDyna;
|
||||
m_suspended = false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -480,6 +480,7 @@ protected:
|
|||
short m_savedCollisionFilterGroup;
|
||||
short m_savedCollisionFilterMask;
|
||||
MT_Scalar m_savedMass;
|
||||
bool m_savedDyna;
|
||||
bool m_suspended;
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue