Ogre::Ray ray = mCamera->getCameraToViewportRay(.5, .5); OgreBulletCollisions::CollisionClosestRayResultCallback callBackObject(ray, m_world, 10000); m_world->launchRay(callBackObject); if(callBackObject.doesCollide()){ std::cout << "HIT: " << callBackObject.getCollidedObject()->getName() << std::endl; //get the object OgreBulletDynamics::RigidBody *body = dynamic_cast(callBackObject.getCollidedObject()); //apply a force body->enableActiveState(); body->applyImpulse(// 100*ray.getDirection(), -1000*callBackObject.getCollisionNormal(), //Ogre::Vector3::ZERO); callBackObject.getCollisionPoint() - body->getCenterOfMassPosition());