SGI algorithm

The SGI algorithm creates triangle strips from a set of triangles.

It was published by K. Akeley, P. Haeberli, and D. Burns as a C program named "tomesh.c" for use with Silicon Graphics' IRIS GL API.

[1] The algorithm operates on the set of triangles that have not yet been added to a triangle strip, starting with the entire set of input triangles.

When choosing a triangle for starting or continuing a triangle strip, the selection is based on a triangle's degree (i.e. the number of triangles adjacent to it), with smaller degrees being preferred.

If implemented using a priority queue to quickly identify triangles that can start a new strip, the algorithm runs in linear time.