Code: Select all
Vector3 absPos(node->_getDerivedPosition());
Quaternion absOrient(node->_getDerivedOrientation());
node->getParent()->removeChild(node);
m_pSceneMgr->getRootSceneNode()->getChild("NewParentNode")->addChild(node);
node->_setDerivedPosition(absPos);
node->_setDerivedOrientation(absOrient);
So the problem is somehow related to Bullet. I tried to solve it by doing this after changing the parent node:
Code: Select all
btRigidBody* rigid = getBtRigid(String("Cube"));
btTransform tr = rigid->getWorldTransform();
tr.setOrigin(BtOgre::Convert::toBullet(absPos));
tr.setRotation(BtOgre::Convert::toBullet(absOrient));
rigid->getMotionState()->setWorldTransform(tr);
rigid->setWorldTransform(tr);
Any other ideas what I might be missing here?