When UsdCollisionAPI is applied but collisionEnabled is false, treat it as a visual gprim.
PiperOrigin-RevId: 784219782 Change-Id: If87e1cd7e1cc10b27a3d432585466e3aece71d26
This commit is contained in:
committed by
Copybara-Service
parent
f5df466ee5
commit
c597434fc9
@@ -135,10 +135,20 @@ ExtractedPrims ExtractPrims(pxr::UsdStageRefPtr stage) {
|
|||||||
root->physics_scene = prim_path;
|
root->physics_scene = prim_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prim.HasAPI<pxr::UsdPhysicsCollisionAPI>()) {
|
if (prim.IsA<pxr::UsdGeomGprim>()) {
|
||||||
current_node->colliders.push_back(prim_path);
|
bool has_collision_api = prim.HasAPI<pxr::UsdPhysicsCollisionAPI>();
|
||||||
} else if (prim.IsA<pxr::UsdGeomGprim>()) {
|
if (has_collision_api) {
|
||||||
current_node->visual_gprims.push_back(prim_path);
|
bool collision_enabled = false;
|
||||||
|
pxr::UsdPhysicsCollisionAPI(prim).GetCollisionEnabledAttr().Get(
|
||||||
|
&collision_enabled);
|
||||||
|
if (collision_enabled) {
|
||||||
|
current_node->colliders.push_back(prim_path);
|
||||||
|
} else {
|
||||||
|
current_node->visual_gprims.push_back(prim_path);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
current_node->visual_gprims.push_back(prim_path);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prim.HasAPI<pxr::MjcPhysicsSiteAPI>()) {
|
if (prim.HasAPI<pxr::MjcPhysicsSiteAPI>()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user