mastodon-sc / mastodon

Mastodon – a large-scale tracking and track-editing framework for large, multi-view images.
BSD 2-Clause "Simplified" License
66 stars 20 forks source link

Move the `DepthFirstIteration` class to the `mastodon-graph` repo. #175

Closed tinevez closed 1 year ago

tinevez commented 2 years ago

@maarzt introduced a new graph iterator: DepthFirstIteration.

Neither of the to classes DepthFirstIteration and DepthFirstSearch cannot be used to replace this DepthFirstIteration class. The DepthFirstIterator doesn't visit the nodes twice. The second visit is actually needed in the layoutX() method in TrackScheme. The DepthFisrtSearch is based on a recursive function call, which cannot provide the required performance. DepthFisrtSearch will likely cause a StackOverflowException when used in the layoutX method. Another important feature that neither of the implementations provide is the ability the exclude a subtree from the iteration.

Let's move it in mastodon-graph repo and document the differences between the DF 3 iterators.

tinevez commented 1 year ago

@maarzt made some changes in this class to specifically address issues in TrackScheme display. Now I think that it makes sense to keep it close to TrackScheme.