Implement this class, and use it as an argument when doing raycasts in Bullet Physics
class MyOwnRayResultCallback : public btCollisionWorld::ClosestRayResultCallback { public: explicit MyOwnRayResultCallback(const btVector3 &rayFromWorld, const btVector3& rayToWorld) : ClosestRayResultCallback(rayFromWorld, rayToWorld) {} virtual ~MyOwnRayResultCallback() {} virtual bool needsCollision(btBroadphaseProxy* proxy0) const { btCollisionObject *collobj = static_cast<btCollisionObject*>( proxy0->m_clientObject ); bullet::Userpointer *userptr = getUserpointer(collobj); return false; } };
Then use it in you application by sending it to btPhysicsWorld.
MyOwnRayResultCallback rayCallback(startPosition, endPosition); m_PhysicsWorld->rayTest(startPosition, endPosition, rayCallback);
Professional Software Developer, doing mostly C++. Connect with Kent on Twitter.