15 #include "bulletClosestHitRayResult.h"
22 BulletClosestHitRayResult::
23 BulletClosestHitRayResult(
const btVector3 &from_pos,
const btVector3 &to_pos,
const CollideMask &mask)
24 : btCollisionWorld::ClosestRayResultCallback(from_pos, to_pos), _mask(mask) {
38 btCollisionObject *obj0 = (btCollisionObject *) proxy0->m_clientObject;
42 return (_mask & mask0) != 0;
51 addSingleResult(btCollisionWorld::LocalRayResult& rayResult,
bool normalInWorldSpace) {
54 if (rayResult.m_localShapeInfo) {
55 _shapePart = rayResult.m_localShapeInfo->m_shapePart;
56 _triangleIndex = rayResult.m_localShapeInfo->m_triangleIndex;
60 return btCollisionWorld::ClosestRayResultCallback::addSingleResult(rayResult, normalInWorldSpace);
68 bool BulletClosestHitRayResult::
79 PN_stdfloat BulletClosestHitRayResult::
80 get_hit_fraction()
const {
82 return (PN_stdfloat)m_closestHitFraction;
90 const PandaNode *BulletClosestHitRayResult::
93 const btCollisionObject *objectPtr = m_collisionObject;
94 return (objectPtr) ? (
const PandaNode *)objectPtr->getUserPointer() : NULL;
102 LPoint3 BulletClosestHitRayResult::
103 get_hit_pos()
const {
105 return btVector3_to_LPoint3(m_hitPointWorld);
113 LVector3 BulletClosestHitRayResult::
114 get_hit_normal()
const {
116 return btVector3_to_LVector3(m_hitNormalWorld);
124 LPoint3 BulletClosestHitRayResult::
125 get_from_pos()
const {
127 return btVector3_to_LPoint3(m_rayFromWorld);
135 LPoint3 BulletClosestHitRayResult::
138 return btVector3_to_LPoint3(m_rayToWorld);
146 int BulletClosestHitRayResult::
147 get_shape_part()
const {
157 int BulletClosestHitRayResult::
158 get_triangle_index()
const {
160 return _triangleIndex;
A basic node of the scene graph or data graph.
This is a three-component vector distance (as opposed to a three-component point, which represents a ...
This is a three-component point in space (as opposed to a three-component vector, which represents a ...
virtual bool needsCollision(btBroadphaseProxy *proxy0) const
Override default implementation.
virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult &rayResult, bool normalInWorldSpace)
Override default implementation.