Consider that user is trying to build the bookshelf with the middle board as in the picture. According to current Roco implementation, the connection of the middle board H is stored
in the dictionary self.connections(): {B1: F2, G3, H4, H5}
According to the original implementation of Roco, the two edges of the same face cannot belong to the same group of connection. This makes sense when there is no edge to face connection. However, when introduced edge to face connection, this becomes an issue.
In a word, the problem is that when connecting two faces, Roco always tries to retain one edge and makes it a key in the dictionary while it deletes the other edge and makes it a value in the dictionary. However, it is incompatible with face to edge connection
In the past week, I have been trying to come up with a solution.
Solution1: Force the connection dictionary to accept duplicate so that the two faces of H can be processed correctly.
Solution2: Process (edge->edge), (edge->face), (face->face) seperately However, this will still not work as long as we are still using dictionary to store connection.