diff options
author | Chuyuan Fu <fuchuyuan@fuchuyuan-macbookpro.roam.corp.google.com> | 2019-03-11 13:12:49 -0700 |
---|---|---|
committer | Chuyuan Fu <fuchuyuan@fuchuyuan-macbookpro.roam.corp.google.com> | 2019-03-11 13:12:49 -0700 |
commit | bea2f6e65a80798f3f524154204995ed15eb7af5 (patch) | |
tree | e45f6df164088e14ba7c5fe66b9cea3a1cca72f4 | |
parent | 81ab8cd1c6fea9d9382259bfa8d3132962f37142 (diff) | |
download | bullet3-bea2f6e65a80798f3f524154204995ed15eb7af5.tar.gz |
Turn off self-collision for FixJointBoxes example
-rw-r--r-- | examples/BulletRobotics/FixJointBoxes.cpp | 1 | ||||
-rw-r--r-- | examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp | 22 | ||||
-rw-r--r-- | examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.h | 2 |
3 files changed, 25 insertions, 0 deletions
diff --git a/examples/BulletRobotics/FixJointBoxes.cpp b/examples/BulletRobotics/FixJointBoxes.cpp index 8034600f3..a5a89e329 100644 --- a/examples/BulletRobotics/FixJointBoxes.cpp +++ b/examples/BulletRobotics/FixJointBoxes.cpp @@ -75,6 +75,7 @@ public: if (i > 0) { m_robotSim.createConstraint(cubeIds[i], -1, cubeIds[i - 1], -1, &jointInfo); + m_robotSim.setCollisionFilterGroupMask(cubeIds[i], -1, 0, 0); } m_robotSim.loadURDF("plane.urdf"); diff --git a/examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp b/examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp index 284430847..9efed7f7e 100644 --- a/examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp +++ b/examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp @@ -2417,3 +2417,25 @@ void b3RobotSimulatorClientAPI_NoDirect::setAdditionalSearchPath(const std::stri statusHandle = b3SubmitClientCommandAndWaitStatus(sm, commandHandle); } } + +void b3RobotSimulatorClientAPI_NoDirect::setCollisionFilterGroupMask(int bodyUniqueIdA, int linkIndexA, int collisionFilterGroup, int collisionFilterMask) +{ + int physicsClientId = 0; + b3PhysicsClientHandle sm = m_data->m_physicsClientHandle; + if (sm == 0) + { + b3Warning("Not connected"); + return; + } + + b3SharedMemoryCommandHandle commandHandle; + b3SharedMemoryStatusHandle statusHandle; + int statusType; + + commandHandle = b3CollisionFilterCommandInit(sm); + b3SetCollisionFilterGroupMask(commandHandle, bodyUniqueIdA, linkIndexA, collisionFilterGroup, collisionFilterMask); + + statusHandle = b3SubmitClientCommandAndWaitStatus(sm, commandHandle); + statusType = b3GetStatusType(statusHandle); +} + diff --git a/examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.h b/examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.h index cca09d974..297c7e203 100644 --- a/examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.h +++ b/examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.h @@ -664,6 +664,8 @@ public: return SHARED_MEMORY_MAGIC_NUMBER; } void setAdditionalSearchPath(const std::string &path); + + void setCollisionFilterGroupMask(int bodyUniqueIdA, int linkIndexA, int collisionFilterGroup, int collisionFilterMask); }; #endif //B3_ROBOT_SIMULATOR_CLIENT_API_NO_DIRECT_H |