Avoid deepcopy'ing Shape.topo_parent.

Speeds up benchy example from 27s to 5.5s.
This commit is contained in:
Ami Fischman 2025-02-24 15:58:25 -08:00
parent 1c9cd019a2
commit 4d8dfe16a8

View file

@ -866,7 +866,10 @@ class Shape(NodeMixin, Generic[TOPODS]):
if self.wrapped is not None:
memo[id(self.wrapped)] = downcast(BRepBuilderAPI_Copy(self.wrapped).Shape())
for key, value in self.__dict__.items():
setattr(result, key, copy.deepcopy(value, memo))
if key == 'topo_parent':
result.topo_parent = value
else:
setattr(result, key, copy.deepcopy(value, memo))
if key == "joints":
for joint in result.joints.values():
joint.parent = result