uknfire / tsmpy

An orthogonal layout algorithm, using TSM approach
MIT License
7 stars 4 forks source link

Compaction code missing a step? #2

Closed MobiZaman closed 3 years ago

MobiZaman commented 3 years ago

Hi, I am not sure if this is an issue or a missing feature, but according to your readme file, this code is based on the approach mentioned in "A Generic Framework for the Topology-Shape-Metrics Based Layout". Now, this paper mentions in the first paragraph of section 5.1 that

Tamassia defined some restrictions to make such a computation possible. The compaction by Tamassia requires orthogonal representations that contain no bends as input. Furthermore, each face of the input has to have a rectangular shape.

But I cannot find the section in your code which implements the part about making faces rectangular. Isnt this supposed to be a part of the compaction step? The output of the orthogonalization doesn't seem to be working well because of this. Or is this part already implemented somewhere in the code?

MobiZaman commented 3 years ago

I believe that this is what is causing the node and edge overlaps.

uknfire commented 3 years ago

Sorry, I didn't notice this issue until today.

You're right. The reason is that I got into trouble implementing refine_faces(). The code is still buggy, and I guess it is the most complicated part of this algorithm.

MobiZaman commented 3 years ago

I have implemented this part of the algorithm. But i am still testing it out.

uknfire commented 3 years ago

Finally, I fully implemented refine_faces() and passed all tests. (It's a really heavy and complicated task, congraduation!)