26 #include <QScopedPointer> 36 #include "BulletCollision/NarrowPhaseCollision/btRaycastCallback.h" 46 btCollisionWorld::AllHitsRayResultCallback(btVector3(0,0,0), btVector3(0,0,0)),
48 m_flags = (btTriangleRaycastCallback::kF_KeepUnflippedNormal |
49 btTriangleRaycastCallback::kF_UseGjkConvexCastRaytest);
61 const btVector3 &lookdir,
62 const bool cullBackfacers) :
63 btCollisionWorld::AllHitsRayResultCallback(observer, lookdir),
65 m_flags = (btTriangleRaycastCallback::kF_KeepUnflippedNormal |
66 btTriangleRaycastCallback::kF_UseGjkConvexCastRaytest);
67 if ( cullBackfacers ) {
68 m_flags |= btTriangleRaycastCallback::kF_FilterBackfaces;
107 return ( AllHitsRayResultCallback::m_rayFromWorld );
117 return ( AllHitsRayResultCallback::m_rayToWorld );
129 btAssert( index >= 0 );
130 btAssert( index <
size() );
148 btCollisionWorld::AllHitsRayResultCallback::addSingleResult(rayResult, normalInWorldSpace);
150 return (rayResult.m_hitFraction);
virtual ~BulletAllHitsRayCallback()
Destroy this callback.
virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult &rayResult, bool normalInWorldSpace)
Add a local intersection result to this callback during ray casting.
btVector3 observer() const
Return the beginning of the ray.
btVector3 lookdir() const
Return the end of the ray.
Bullet ray tracing callback for closest hit on target surface.
const BulletClosestRayCallback & hit(const int &index=0) const
Return a callback for the intersection at a given index.
QVector< BulletClosestRayCallback > m_rayHits
List of ray hits.
int size() const
Returns the number of intersections found.
Namespace for ISIS/Bullet specific routines.
bool isValid() const
Checks if the callback is valid/has a valid intersection.
BulletAllHitsRayCallback()
Default constructor.