in robogym/envs/rearrange/simulation/base.py [0:0]
def _hide_geoms(self, hide_targets=False, hide_objects=False, hide_robot=False):
sim = self.mj_sim
geom_ids_to_hide = []
# Hide sites.
site_rgba = sim.model.site_rgba.copy()
sim.model.site_rgba[:] = np.zeros_like(site_rgba)
if hide_targets:
# Hide targets
target_ids = [
target_id
for i in range(self.num_objects)
for target_id in geom_ids_of_body(sim, f"target:object{i}")
]
assert len(target_ids) > 0
geom_ids_to_hide += target_ids
if hide_objects:
# Hide targets
object_ids = [
target_id
for i in range(self.num_objects)
for target_id in geom_ids_of_body(sim, f"object{i}")
]
assert len(object_ids) > 0
geom_ids_to_hide += object_ids
if hide_robot:
robot_geom_ids = [
sim.model.geom_name2id(name)
for name in sim.model.geom_names
if name.startswith("robot0:")
]
geom_ids_to_hide += robot_geom_ids
geom_rgba = sim.model.geom_rgba.copy()
sim.model.geom_rgba[geom_ids_to_hide, -1] = 0.0
yield
# If sim becomes stale (e.g. because of reset while being yield), we don't have to reset
# it to the original state
if not sim.is_stale():
# Restore sites and targets
sim.model.geom_rgba[:] = geom_rgba
sim.model.site_rgba[:] = site_rgba