Now that I've got the roof connection functionality up and running it is time to turn my attention to the actual roof framing. This is where the real headaches begin.
I think I will start with trying to figure out an efficient algorithm for the ridge boards.
Most orthogonal roofs are fairly straight forward:
If a ridge meets another ridge then it will receive a miter cut to match with that other ridge.
If the ridge terminates into two hip rafters then it will be a square cut.
The question I have is what to do when the hip terminates into a flying hip and valley?
Then of course there are the exceptions caused by half hips, dutch gables, gables and terminals but those can be accounted for.
As I've previously stated it makes sense to first catolog each edge of the roof primitive and create a hash for easy lookups. The process of elimination should allow me to assemble the catalog relatively easily.
I think I will start with trying to figure out an efficient algorithm for the ridge boards.
Most orthogonal roofs are fairly straight forward:
If a ridge meets another ridge then it will receive a miter cut to match with that other ridge.
If the ridge terminates into two hip rafters then it will be a square cut.
The question I have is what to do when the hip terminates into a flying hip and valley?
Then of course there are the exceptions caused by half hips, dutch gables, gables and terminals but those can be accounted for.
As I've previously stated it makes sense to first catolog each edge of the roof primitive and create a hash for easy lookups. The process of elimination should allow me to assemble the catalog relatively easily.