Skip to content

Commit c597434

Browse files
havesscopybara-github
authored andcommitted
When UsdCollisionAPI is applied but collisionEnabled is false, treat it as a visual gprim.
PiperOrigin-RevId: 784219782 Change-Id: If87e1cd7e1cc10b27a3d432585466e3aece71d26
1 parent f5df466 commit c597434

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

src/experimental/usd/kinematic_tree.cc

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,20 @@ ExtractedPrims ExtractPrims(pxr::UsdStageRefPtr stage) {
135135
root->physics_scene = prim_path;
136136
}
137137

138-
if (prim.HasAPI<pxr::UsdPhysicsCollisionAPI>()) {
139-
current_node->colliders.push_back(prim_path);
140-
} else if (prim.IsA<pxr::UsdGeomGprim>()) {
141-
current_node->visual_gprims.push_back(prim_path);
138+
if (prim.IsA<pxr::UsdGeomGprim>()) {
139+
bool has_collision_api = prim.HasAPI<pxr::UsdPhysicsCollisionAPI>();
140+
if (has_collision_api) {
141+
bool collision_enabled = false;
142+
pxr::UsdPhysicsCollisionAPI(prim).GetCollisionEnabledAttr().Get(
143+
&collision_enabled);
144+
if (collision_enabled) {
145+
current_node->colliders.push_back(prim_path);
146+
} else {
147+
current_node->visual_gprims.push_back(prim_path);
148+
}
149+
} else {
150+
current_node->visual_gprims.push_back(prim_path);
151+
}
142152
}
143153

144154
if (prim.HasAPI<pxr::MjcPhysicsSiteAPI>()) {

0 commit comments

Comments
 (0)