summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorerwincoumans <erwincoumans@google.com>2020-08-03 13:18:27 -0700
committerGitHub <noreply@github.com>2020-08-03 13:18:27 -0700
commitb623f5d12388db69844e168e6c71788bdb251df6 (patch)
tree2f3b72deecfe876837bdc0c4db885d0e6dc1e038
parenteb32f480008f178c6e16fcfdef0fae866f95f036 (diff)
parentd12d886e1335921ffdb13d44b314438cff4b0506 (diff)
downloadbullet3-b623f5d12388db69844e168e6c71788bdb251df6.tar.gz
Merge pull request #2967 from erwincoumans/master
fix raycast filter masks, they can be negative
-rw-r--r--examples/SharedMemory/PhysicsServerCommandProcessor.cpp18
-rw-r--r--examples/pybullet/gym/pybullet_envs/minitaur/envs/minitaur_logging.py2
-rw-r--r--examples/pybullet/pybullet.c12
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);