Merge pull request #3129 from LouRohanNV:UsdContactExcludes
PiperOrigin-RevId: 879028113 Change-Id: I8798761bf40a8e60ef9aba83337bcabd96813cb9
This commit is contained in:
@@ -67,6 +67,7 @@
|
||||
#include <pxr/usd/usdGeom/tokens.h>
|
||||
#include <pxr/usd/usdGeom/xformCache.h>
|
||||
#include <pxr/usd/usdPhysics/collisionAPI.h>
|
||||
#include <pxr/usd/usdPhysics/filteredPairsAPI.h>
|
||||
#include <pxr/usd/usdPhysics/fixedJoint.h>
|
||||
#include <pxr/usd/usdPhysics/joint.h>
|
||||
#include <pxr/usd/usdPhysics/massAPI.h>
|
||||
@@ -2247,6 +2248,16 @@ void ParseMjcPhysicsKeyframe(mjSpec* spec,
|
||||
}
|
||||
}
|
||||
|
||||
void ParseUsdFilteredPairsAPI(mjSpec* spec, const pxr::UsdPrim& prim) {
|
||||
pxr::SdfPathVector filtered_bodies;
|
||||
pxr::UsdPhysicsFilteredPairsAPI(prim).GetFilteredPairsRel().GetTargets(&filtered_bodies);
|
||||
for (const auto& filtered_body : filtered_bodies) {
|
||||
mjsExclude* exclude = mjs_addExclude(spec);
|
||||
mjs_setString(exclude->bodyname1, prim.GetPath().GetAsString().c_str());
|
||||
mjs_setString(exclude->bodyname2, filtered_body.GetAsString().c_str());
|
||||
}
|
||||
}
|
||||
|
||||
mjsBody* ParseUsdPhysicsRigidbody(
|
||||
mjSpec* spec, const pxr::UsdPhysicsRigidBodyAPI& rigidbody_api,
|
||||
const pxr::UsdPrim& parent_prim, mjsBody* parent,
|
||||
@@ -2267,6 +2278,10 @@ mjsBody* ParseUsdPhysicsRigidbody(
|
||||
body->element, kUsdPrimPathKey, usd_primpath,
|
||||
[](const void* data) { delete static_cast<const pxr::SdfPath*>(data); });
|
||||
|
||||
if (prim.HasAPI<pxr::UsdPhysicsFilteredPairsAPI>()) {
|
||||
ParseUsdFilteredPairsAPI(spec, prim);
|
||||
}
|
||||
|
||||
return body;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user