allow to disable self-collision for a link-pair

This commit is contained in:
erwincoumans
2018-09-21 17:33:13 -07:00
parent 874bbc91a3
commit 278454ae17

View File

@@ -62,6 +62,13 @@ struct DefaultPluginCollisionInterface : public b3PluginCollisionInterface
b3Swap(keyValue.m_objectUniqueIdA,keyValue.m_objectUniqueIdB);
b3Swap(keyValue.m_linkIndexA,keyValue.m_linkIndexB);
}
if (objectUniqueIdA==objectUniqueIdB)
{
if (keyValue.m_linkIndexA>keyValue.m_linkIndexB)
{
b3Swap(keyValue.m_linkIndexA,keyValue.m_linkIndexB);
}
}
m_customCollisionFilters.insert(keyValue,keyValue);
@@ -83,6 +90,13 @@ struct DefaultPluginCollisionInterface : public b3PluginCollisionInterface
b3Swap(keyValue.m_objectUniqueIdA,keyValue.m_objectUniqueIdB);
b3Swap(keyValue.m_linkIndexA,keyValue.m_linkIndexB);
}
if (objectUniqueIdA==objectUniqueIdB)
{
if (keyValue.m_linkIndexA>keyValue.m_linkIndexB)
{
b3Swap(keyValue.m_linkIndexA,keyValue.m_linkIndexB);
}
}
m_customCollisionFilters.remove(keyValue);
}
@@ -116,6 +130,13 @@ struct DefaultPluginCollisionInterface : public b3PluginCollisionInterface
b3Swap(keyValue.m_objectUniqueIdA,keyValue.m_objectUniqueIdB);
b3Swap(keyValue.m_linkIndexA,keyValue.m_linkIndexB);
}
if (objectUniqueIdA==objectUniqueIdB)
{
if (keyValue.m_linkIndexA>keyValue.m_linkIndexB)
{
b3Swap(keyValue.m_linkIndexA,keyValue.m_linkIndexB);
}
}
b3CustomCollisionFilter* filter = m_customCollisionFilters.find(keyValue);
if (filter)