Generating Triangles Given a Set of Points

Speaking only from a 2-dimensional standpoint, given a set of points (vertices), how can I generate the triangles necessary to fill in the object that the points were made from?

And what I mean by this is, if I specify the "outer edge" of this set of points, I need something to calculate all the triangles that will properly "fill" this object in. It shouldn't matter if the object is concave or not.

I realize this is confusing, so I've drawn a helpful diagram. :)

alt text

See... what I want is, if I give this algorithm a set of line segments (point pairs), say:

AB, BC, CD, DE, EF, FG, GH, HA

It should then be able to compute the triangles necessary to fill in the object, utilizing the lines I gave it. So if you give it 8 points, depending on the configuration, it will compute either the triangle set on the left, or right.

Does something like this exist? I'm sure it has to in some form or another, I mean... how else do 3D modelling programs generate triangles like this? If anyone has any information about something that I could possibly use inside of Unity like this, that would be excellent. Thanks!

Check out the Triangulator script on the wiki.