diff options
author | Benoit Bolsee <benoit.bolsee@online.be> | 2008-08-27 23:16:21 +0400 |
---|---|---|
committer | Benoit Bolsee <benoit.bolsee@online.be> | 2008-08-27 23:16:21 +0400 |
commit | f6bdba8351d389b397ea0a8a6f1390644c36cc0e (patch) | |
tree | 033e388729eb4959dbaf8daed31ebd543dc8701f /extern/bullet2/src/BulletCollision/NarrowPhaseCollision | |
parent | c6acbc30474bbe1b0f67642b93e188c3eccdb92b (diff) |
Bullet patch: option to return true face normal, complete triangle information and broad phase filter. This patch is needed to support enhanced ray cast function in the BGE. I have proposed it to the Bullet forum for inclusion in the next Bullet version.
Diffstat (limited to 'extern/bullet2/src/BulletCollision/NarrowPhaseCollision')
-rw-r--r-- | extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp | 6 | ||||
-rw-r--r-- | extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h | 3 |
2 files changed, 5 insertions, 4 deletions
diff --git a/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp b/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp index 31b91467777..68ac93ec3cc 100644 --- a/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp +++ b/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp @@ -16,10 +16,11 @@ subject to the following restrictions: #include "btRaycastCallback.h" -btTriangleRaycastCallback::btTriangleRaycastCallback(const btVector3& from,const btVector3& to) +btTriangleRaycastCallback::btTriangleRaycastCallback(const btVector3& from,const btVector3& to,bool faceNormal) : m_from(from), m_to(to), + m_faceNormal(faceNormal), m_hitFraction(btScalar(1.)) { @@ -84,8 +85,7 @@ void btTriangleRaycastCallback::processTriangle(btVector3* triangle,int partId, if ( (btScalar)(cp2.dot(triangleNormal)) >=edge_tolerance) { - - if ( dist_a > 0 ) + if (m_faceNormal || dist_a > 0) { m_hitFraction = reportHit(triangleNormal,distance,partId,triangleIndex); } diff --git a/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h b/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h index a0bbc9f8fe9..71ed9fead49 100644 --- a/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h +++ b/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h @@ -27,10 +27,11 @@ public: //input btVector3 m_from; btVector3 m_to; + bool m_faceNormal; btScalar m_hitFraction; - btTriangleRaycastCallback(const btVector3& from,const btVector3& to); + btTriangleRaycastCallback(const btVector3& from,const btVector3& to,bool faceNormal); virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex); |