From e08f404953a14f1ae064beb16fb89327fc3c5085 Mon Sep 17 00:00:00 2001 From: yida Date: Tue, 13 Aug 2024 19:44:51 +0800 Subject: [PATCH] fix: Incompatible xformOpOrder fix usd helper: [omni.usd._impl.utils] Incompatible xformOpOrder, translation applied before rotation or too many rotation ops. --- src/curobo/util/usd_helper.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/curobo/util/usd_helper.py b/src/curobo/util/usd_helper.py index 1dc8f39..befa64f 100644 --- a/src/curobo/util/usd_helper.py +++ b/src/curobo/util/usd_helper.py @@ -63,6 +63,9 @@ def set_prim_translate(prim, translation): def set_prim_transform( prim, pose: List[float], scale: List[float] = [1, 1, 1], use_float: bool = False ): + if not prim.GetAttribute("xformOp:translate").IsValid(): + UsdGeom.Xformable(prim).AddTranslateOp(UsdGeom.XformOp.PrecisionFloat) + if prim.GetAttribute("xformOp:orient").IsValid(): if isinstance(prim.GetAttribute("xformOp:orient").Get(), Gf.Quatf): use_float = True @@ -70,8 +73,6 @@ def set_prim_transform( UsdGeom.Xformable(prim).AddOrientOp(UsdGeom.XformOp.PrecisionFloat) use_float = True - if not prim.GetAttribute("xformOp:translate").IsValid(): - UsdGeom.Xformable(prim).AddTranslateOp(UsdGeom.XformOp.PrecisionFloat) if not prim.GetAttribute("xformOp:scale").IsValid(): UsdGeom.Xformable(prim).AddScaleOp(UsdGeom.XformOp.PrecisionFloat) quat = pose[3:]