From e895820e24305dc8205442560be2fd8177ddb125 Mon Sep 17 00:00:00 2001 From: Lou Rohan Date: Mon, 23 Feb 2026 12:51:02 -0600 Subject: [PATCH] Check for the UsdPhysicsFilteredPairsAPI in the body parsing function --- plugin/usd_decoder/usd_decoder.cc | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/plugin/usd_decoder/usd_decoder.cc b/plugin/usd_decoder/usd_decoder.cc index 0d4e400d..e856cd09 100644 --- a/plugin/usd_decoder/usd_decoder.cc +++ b/plugin/usd_decoder/usd_decoder.cc @@ -2250,12 +2250,8 @@ void ParseMjcPhysicsKeyframe(mjSpec* spec, } void ParseUsdFilteredPairsAPI(mjSpec* spec, const pxr::UsdPrim& prim) { - if (!prim.HasAPI()) { - return; - } - auto filtered_pairs_api = pxr::UsdPhysicsFilteredPairsAPI(prim); pxr::SdfPathVector filtered_bodies; - filtered_pairs_api.GetFilteredPairsRel().GetTargets(&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()); @@ -2283,7 +2279,9 @@ mjsBody* ParseUsdPhysicsRigidbody( body->element, kUsdPrimPathKey, usd_primpath, [](const void* data) { delete static_cast(data); }); - ParseUsdFilteredPairsAPI(spec, prim); + if (prim.HasAPI()) { + ParseUsdFilteredPairsAPI(spec, prim); + } return body; }