@@ -102,39 +102,38 @@ def reduce(self, considered_joint_names: List[str]) -> "Tree":
102
102
for joint in fixed_joints :
103
103
joint .type = "fixed"
104
104
105
- for f_joint in fixed_joints :
106
- merged_node = self .graph [f_joint .parent ]
107
- merged_neighbors = self .graph [f_joint .child ]
105
+ for fixed_j in fixed_joints :
106
+ saved_node = self .graph [fixed_j .parent ]
107
+ removing_node = self .graph [fixed_j .child ]
108
108
109
- merged_node .children .remove (merged_neighbors )
110
- merged_node .children .extend (merged_neighbors .children )
109
+ saved_node .children .remove (removing_node )
110
+ saved_node .children .extend (removing_node .children )
111
111
# update the arcs
112
- merged_node .arcs .remove (f_joint )
113
- merged_node .arcs .extend (merged_neighbors .arcs )
112
+ saved_node .arcs .remove (fixed_j )
113
+ saved_node .arcs .extend (removing_node .arcs )
114
114
115
- merged_node .link = merged_node .link .lump (
116
- other = merged_neighbors .link , joint = f_joint
115
+ saved_node .link = saved_node .link .lump (
116
+ other = removing_node .link , joint = fixed_j
117
117
)
118
118
119
- merged_joint = merged_node .parent_arc
120
- removed_joint = merged_neighbors .parent_arc
119
+ merged_joint = saved_node .parent_arc
120
+ removed_joint = removing_node .parent_arc
121
121
# update the parent arc of the merged node
122
- merged_node .parent_arc = merged_node .parent_arc .lump (removed_joint )
122
+ # saved_node .parent_arc = saved_node .parent_arc.lump(removed_joint)
123
123
124
124
# we need to updated the parents and child on the joints in fixed_joints
125
125
for joint in self .get_joint_list ():
126
- if joint .parent == merged_neighbors .name :
127
- joint .parent = merged_node .name
128
- if joint .child == merged_neighbors .name :
129
- joint .child = merged_node .name
126
+ if joint .parent == removing_node .name :
127
+ joint .parent = saved_node .name
128
+ if joint .child == removing_node .name :
129
+ joint .child = saved_node .name
130
130
131
- for child in merged_node .children :
131
+ for child in saved_node .children :
132
+ child .parent = saved_node .link
133
+ child .parent_arc = saved_node .parent_arc
132
134
133
- child .parent = merged_node .link
134
- child .parent_arc = merged_node .parent_arc
135
-
136
- self .graph .pop (merged_neighbors .name )
137
- self .graph [merged_node .name ] = merged_node
135
+ self .graph .pop (removing_node .name )
136
+ self .graph [saved_node .name ] = saved_node
138
137
139
138
if {joint .name for joint in self .get_joint_list ()} != set (
140
139
considered_joint_names
0 commit comments