Spent this morning finishing up the GUI, couldn't stand those nasty boxes. Then I read some more papers on the straight skeleton - Felkel's and Eppstein's were both useful. Then I looked at the 2K of code I thought I already had, on first impressions it was bad. An hour of working with it later I thought it was *really* bad, programming when your not really able to concentrate is a waste of time.
So I burned all that code and set to work on a new, cleaner version with an emphasis on debugging tools. The first one I wrong displays the bisectors of each edge:
The shape I'm trying to create the skeleton for is in yellow. The skinny triangles show the starting angles (bisectors) for the skeleton from each corner. Its all outputing in maya ( i got it output coloured vertices finally!) because its much easier to examine the results from all angles.
Next stage is to re implement collisions. The idea is that we work up the height of the roof finding when these bisectors interact with each other. Its really difficult because of all the borderline cases - what happens when two lines are co-incident? when do they cross? what happens when two events happen at the same height? this and many more pointless questions to be answered in tomorrow...