Wow, I have just discovered this gem of a web-site Core Techniques and Algorithms in Games Programming
I am only a fraction of my way through, but I’m finding it great.
I found it via the Molly Rocket fourms, along with the coolest polygon edge traversal loop
int i,j;
for (j=n-1,i=0; i < n; j=i++) {
process_edge(j,i);
}
Which puts the edge case (the end) and the beginning, so the loop is trivial, it’s just so neat. A better write-up is here