For the SGI algorithm, we just have to sort the default list according to the number of connections of each triangle. The number of connections depends on the number of boundary edges, as defined in the previous paragraph, and we already have this information thanks to the adjacency structures. We just have to call the sort routine once more. My own code takes one method or the other according to what the user wants. Once we have our starting face, we must choose a direction in which we ll extend the strip.
Most implementations just take the first edge, and let it go.
No subtle things there, just some more buffers to fill and some extra code to debug. Of course I also reverse the three possible strips and extend all of them in the opposite directions. Hence, starting from a given face, I just can t miss the best possible strip sharing this face. The only thing which could produce better strips is the order in which you select your starting faces, but this is left for further investigation. Only the longest one is kept in the final strip, others are discarded.