diff --git a/rodlayout/proxy.py b/rodlayout/proxy.py index eb96e31..f72927e 100644 --- a/rodlayout/proxy.py +++ b/rodlayout/proxy.py @@ -66,12 +66,22 @@ def valid(self) -> bool: """ return cast(bool, current_workspace.db.valid_p(self.db)) + def _promote_children_to_rod(self, fig_grp: RemoteObject) -> None: + for fig in fig_grp.figs: + if fig.obj_type == 'figGroup': + self._promote_children_to_rod(cast(RemoteObject, fig)) + else: + current_workspace.rod.name_shape(shape_id=fig) + def _copy_figure( self, cell_view: RemoteObject, translate: Point, transform: Transform ) -> RemoteObject: - translate_transform = cast(SkillTuple, (translate, transform)) + + translate_transform = cast(SkillTuple, (translate, transform.value)) db = current_workspace.db.copy_fig(self.db, cell_view, translate_transform) + self._promote_children_to_rod(cast(RemoteObject, db)) + return cast(RemoteObject, db) def copy(