Code: Select all
btVector3 angvel = fallRigidBody->getAngularVelocity();
btVector3 linvel = fallRigidBody->getLinearVelocity();
if ((angvel.getX() < 0.1 && angvel.getY() < 0.1 && angvel.getZ() < 0.1) && (linvel.getX() < 0.1 && linvel.getY() < 0.1 && linvel.getZ() < 0.1) && !reset) {
fallRigidBody->getMotionState()->setWorldTransform(btTransform(btQuaternion(0,0,0,1), btVector3(0,20,0)));
fallRigidBody->setLinearVelocity(btVector3(0,0,0));
fallRigidBody->setAngularVelocity(btVector3(0,0,0));
fallRigidBody->applyForce(btVector3(1,0,0), btVector3(0,20,0));
reset = true;
} else {
if (steps > 10) {
steps = 0;
reset = false;
} else {
steps ++;
}
}