Friday, June 23, 2006

Right today was another appauling day for productivity, no real progress has been made but I've rewritten the voronoi code twice and its still a mess. I'm beginning to wish I'd chosen the other way of implementing it (Fortune's method). Writing this after the pub and still a way away from having it work, perhaps I'll sit down tomorrow evening and not get up till it works!- or I'll never be able to have a street of houses by Monday.

Thoughts on the floor plan: If the floorplan, at any one height, is just one complete straight skeleton it would allow (really easily) for roofs to combine with walls with changing slope. So we have components, such as "bay window", "main house", "extension", "chimney" arranged in a hierarchy with the biggest at the top. Each part is responsible for deciding any changes in slope (such as the overhang of a balcony or the start of a roof), and makes these changes dynamically
in response to certain events:
  • reaching a certain height
  • being given a "proximity warning" from the component higher up the hierarchy that it is will change slope/perform a discrete change a set height futher up
  • Having a straight skeleton merge event of some kind
Each component is responsible for assigning decorators (I like that name) to each edge in the skeleton. These will be concepts such as "plain brick", "brick with windows", "roof tiles" or "yellow paint". The dectorator can change on any of the above events.

So the user will specify a house base and a bunch of components (say a rectangular house with bay windows, followed by a hatched roof) , modify and dectorators, and then this complex skeletoning procedure will create the house. All co-planar areas with the same decorator will be merged together, before the dectorator creates windows etc.... It'd be cool if the dectorators could interact at corners (say make a continuous brick pattern continue around a bend) but thats 'outside the scope of this project' :(

No comments:

Post a Comment