@@ -72,6 +72,7 @@ def __init__(self, port: Optional[int] = None, host="localhost", keep_default_vi
7272 # Cache
7373 self .asset_resource_map : Dict [int , AssetResource ] = {}
7474 self .asset_geom_map = {}
75+ self .actor_asset_map = {}
7576 self .env_map = {}
7677 self .actor_rigid_body_name_map : Dict [int , List [str ]] = {}
7778
@@ -206,6 +207,8 @@ def create_actor(env: gymapi.Env, asset: gymapi.Asset, pose: gymapi.Transform, n
206207 geom_path = f"{ robot_tree_path } /{ rigid_body_name } "
207208 self .viz [geom_path ].set_object (geom )
208209
210+ self .actor_asset_map [f"{ num_env } /{ num_actor } " ] = id (asset )
211+
209212 return actor
210213
211214 self .new_gym .add_method ("create_actor" , create_actor )
@@ -279,8 +282,15 @@ def set_actor_scale(arg0: gymapi.Env, actor_id: int, scale: float):
279282 if arg0 in self .env_map :
280283 env_num = self .env_map [arg0 ]
281284 actor_path = f"/Sim/env:{ env_num } /actor:{ actor_id } "
282- scaling_transform = np .eye (4 ) * scale
283- self .viz [actor_path ].set_transform (scaling_transform )
285+ asset_id = self .actor_asset_map [f"{ env_num } /{ actor_id } " ]
286+ resource = self .asset_resource_map [asset_id ]
287+
288+ for path , data in resource .visual_data .items ():
289+ pose = resource .pose_data [path ]
290+ scaling_pose = pose .copy ()
291+ scaling_pose [:3 ] *= scale
292+ print (scaling_pose )
293+ self .viz [f"/{ actor_path } /{ path } " ].set_transform (scaling_pose )
284294
285295 self .new_gym .add_method ("set_rigid_body_color" , set_rigid_body_color )
286296 self .new_gym .add_method ("set_actor_scale" , set_actor_scale )
0 commit comments