summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChuyuan Fu <fuchuyuan@fuchuyuan-macbookpro.roam.corp.google.com>2019-03-11 13:12:49 -0700
committerChuyuan Fu <fuchuyuan@fuchuyuan-macbookpro.roam.corp.google.com>2019-03-11 13:12:49 -0700
commitbea2f6e65a80798f3f524154204995ed15eb7af5 (patch)
treee45f6df164088e14ba7c5fe66b9cea3a1cca72f4
parent81ab8cd1c6fea9d9382259bfa8d3132962f37142 (diff)
downloadbullet3-bea2f6e65a80798f3f524154204995ed15eb7af5.tar.gz
Turn off self-collision for FixJointBoxes example
-rw-r--r--examples/BulletRobotics/FixJointBoxes.cpp1
-rw-r--r--examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp22
-rw-r--r--examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.h2
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