in mae_envs/modules/objects.py [0:0]
def build_world_step(self, env, floor, floor_size):
default_name = 'static_cylinder' if self.make_static else 'moveable_cylinder'
diameter = env._random_state.uniform(self.diameter[0], self.diameter[1])
height = env._random_state.uniform(self.height[0], self.height[1])
obj_size = (diameter, height, 0)
successful_placement = True
for i in range(self.n_objects):
geom = Geom('cylinder', obj_size, name=f'{default_name}{i}', rgba=self.rgba)
if self.make_static:
geom.mark_static()
if self.placement_fn is not None:
_placement_fn = (self.placement_fn[i]
if isinstance(self.placement_fn, list)
else self.placement_fn)
pos, _ = rejection_placement(env, _placement_fn, floor_size, diameter * np.ones(2))
if pos is not None:
floor.append(geom, placement_xy=pos)
else:
successful_placement = False
else:
floor.append(geom)
return successful_placement