diff options
author | erwincoumans <erwincoumans@google.com> | 2020-08-03 13:18:27 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-03 13:18:27 -0700 |
commit | b623f5d12388db69844e168e6c71788bdb251df6 (patch) | |
tree | 2f3b72deecfe876837bdc0c4db885d0e6dc1e038 | |
parent | eb32f480008f178c6e16fcfdef0fae866f95f036 (diff) | |
parent | d12d886e1335921ffdb13d44b314438cff4b0506 (diff) | |
download | bullet3-b623f5d12388db69844e168e6c71788bdb251df6.tar.gz |
Merge pull request #2967 from erwincoumans/master
fix raycast filter masks, they can be negative
-rw-r--r-- | examples/SharedMemory/PhysicsServerCommandProcessor.cpp | 18 | ||||
-rw-r--r-- | examples/pybullet/gym/pybullet_envs/minitaur/envs/minitaur_logging.py | 2 | ||||
-rw-r--r-- | examples/pybullet/pybullet.c | 12 |
3 files changed, 11 insertions, 21 deletions
diff --git a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp index cc3fb5c9d..b9a890d57 100644 --- a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp +++ b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp @@ -5995,12 +5995,9 @@ struct FilteredClosestRayResultCallback : public btCollisionWorld::ClosestRayRes virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult& rayResult, bool normalInWorldSpace) { - if (m_collisionFilterMask >= 0) - { - bool collides = (rayResult.m_collisionObject->getBroadphaseHandle()->m_collisionFilterGroup & m_collisionFilterMask) != 0; - if (!collides) - return m_closestHitFraction; - } + bool collides = (rayResult.m_collisionObject->getBroadphaseHandle()->m_collisionFilterGroup & m_collisionFilterMask) != 0; + if (!collides) + return m_closestHitFraction; return btCollisionWorld::ClosestRayResultCallback::addSingleResult(rayResult, normalInWorldSpace); } }; @@ -6019,12 +6016,9 @@ struct FilteredAllHitsRayResultCallback : public btCollisionWorld::AllHitsRayRes virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult& rayResult, bool normalInWorldSpace) { - if (m_collisionFilterMask >= 0) - { - bool collides = (rayResult.m_collisionObject->getBroadphaseHandle()->m_collisionFilterGroup & m_collisionFilterMask) != 0; - if (!collides) - return m_closestHitFraction; - } + bool collides = (rayResult.m_collisionObject->getBroadphaseHandle()->m_collisionFilterGroup & m_collisionFilterMask) != 0; + if (!collides) + return m_closestHitFraction; //remove duplicate hits: //same collision object, link index and hit fraction bool isDuplicate = false; diff --git a/examples/pybullet/gym/pybullet_envs/minitaur/envs/minitaur_logging.py b/examples/pybullet/gym/pybullet_envs/minitaur/envs/minitaur_logging.py index 500bbdc71..b6f1c5a3d 100644 --- a/examples/pybullet/gym/pybullet_envs/minitaur/envs/minitaur_logging.py +++ b/examples/pybullet/gym/pybullet_envs/minitaur/envs/minitaur_logging.py @@ -19,7 +19,7 @@ import datetime import os import time -import tf.compat.v1 as tf +import tensorflow.compat.v1 as tf from pybullet_envs.minitaur.envs import minitaur_logging_pb2 NUM_MOTORS = 8 diff --git a/examples/pybullet/pybullet.c b/examples/pybullet/pybullet.c index a349bdc59..f22366b65 100644 --- a/examples/pybullet/pybullet.c +++ b/examples/pybullet/pybullet.c @@ -6576,10 +6576,8 @@ static PyObject* pybullet_rayTestObsolete(PyObject* self, PyObject* args, PyObje to[0], to[1], to[2]); - if (collisionFilterMask >= 0) - { - b3RaycastBatchSetCollisionFilterMask(commandHandle, collisionFilterMask); - } + b3RaycastBatchSetCollisionFilterMask(commandHandle, collisionFilterMask); + if (reportHitNumber >= 0) { b3RaycastBatchSetReportHitNumber(commandHandle, reportHitNumber); @@ -6751,10 +6749,8 @@ static PyObject* pybullet_rayTestBatch(PyObject* self, PyObject* args, PyObject* { b3RaycastBatchSetReportHitNumber(commandHandle, reportHitNumber); } - if (collisionFilterMask >= 0) - { - b3RaycastBatchSetCollisionFilterMask(commandHandle, collisionFilterMask); - } + b3RaycastBatchSetCollisionFilterMask(commandHandle, collisionFilterMask); + if (fractionEpsilon >= 0) { b3RaycastBatchSetFractionEpsilon(commandHandle, fractionEpsilon); |