Skip to content

Commit fd5520b

Browse files
committed
Better update of ghost object pose
1 parent 137a3aa commit fd5520b

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

ambf_framework/afFramework.cpp

+12-1
Original file line numberDiff line numberDiff line change
@@ -8030,7 +8030,18 @@ void afGhostObject::update(double dt)
80308030
// cTransform trans;
80318031
// trans << m_bulletGhostObject->getWorldTransform();
80328032
// setLocalTransform(trans);
8033-
m_bulletGhostObject->setWorldTransform(to_btTransform(m_globalTransform));
8033+
cTransform T_g_p = getLocalTransform();
8034+
if (m_parentObject){
8035+
cTransform T_p_w;
8036+
if (m_parentObject->getType() == afType::RIGID_BODY || m_parentObject->getType() == afType::SOFT_BODY || m_parentObject->getType() == afType::GHOST_OBJECT){
8037+
T_p_w << ((afInertialObject*)m_parentObject)->getCOMTransform();
8038+
}
8039+
else{
8040+
T_p_w = m_parentObject->getGlobalTransform();
8041+
}
8042+
T_g_p = T_p_w * T_g_p;
8043+
}
8044+
m_bulletGhostObject->setWorldTransform(to_btTransform(T_g_p));
80348045
m_sensedObjectsMaps.clear();
80358046

80368047
btManifoldArray* manifoldArray = new btManifoldArray();

0 commit comments

Comments
 (0)