Roofs
Styles
	- There are styles of roof which have well-known meanings in architecture, 
	although terminology does vary somewhat
- A guide (no longer offline) showed 14 different styles
	
		- flat, salt box, 
		hip, 
		gable, kicked eaves 
		(bonnet), gambrel, 
		mansard, pyramid, 
		cross gable, conical, hip and gable, shed, hip with cross 
		gables
- a
		
		page on roofhelper has illustrations of many of these
 
- Unfortunately many buildings (especially modern buildings) don't 
	use a single roof style, but combine many of them, in complex ways
- Roof Plan Components (no longer online) has great explanations and examples
		- (part of the book
		Architectural 
		Drafting & Design, Alan Jefferis, Chapter 20)
- lists 8 styles : flat, shed, gable, A-frame (half-story gable), gambrel, 
		hip, Dutch hip (hip and gable), mansard
 
Terminology
	- 
	 mechanicals 
	are the things (like vents and air conditioners) placed on top of roofs mechanicals 
	are the things (like vents and air conditioners) placed on top of roofs
- a parapet is when a section of roof 
	extends upward above the height of the building, useful for hiding the mechanicals 
	- sometimes the highest part of the building's facade
- roof angle (pitch) is conventionally 
	expressed as a rise/run fraction over 12, e.g. 3/12
- a dormer is a extension of part of the 
	roof to allow a vertical window to be added (picture on right)
- a cornice is the overhanging part of 
	the roof (the part that sticks out past the walls), although generally the term 
	is used more often for horizontal cornice features in classical architecture 
	- not be confused with a stripe of internal moulding, generally at the ceiling, 
	also called a cornice
- an eave is the beam ends of the roof 
	that extend over the walls to allow water to drip off away from the building's 
	walls - it can be thought of as the structure elements which supports the
	cornice
- a fascia is the outward-facing edge 
	of the cornice
Roof Materials
	- 4 general types: rolled roofing, shingles, tiles, panels
Constructing roof geometry for complex polygons : Straight Skeletons
	- 
	 with 
	a given roof outline, how do you construct a roof in a particular style (hip, 
	gable, etc.) with 
	a given roof outline, how do you construct a roof in a particular style (hip, 
	gable, etc.)
- this is relatively easy for rectangular outlines, but very difficult for 
	more complex polygons
- the solution is in the domain of computation geometry, academically 
	known as the problem of finding the 
	straight skeleton, 
	which in this case is the set of roof lines: "the straight skeleton provides 
	a canonical way of constructing a polygonal roof above a general layout of ground 
	walls"
- the straight skeleton can be considered as a "linearization" of a more general 
	process, finding the 
	medial axis
		- the medial axis of a polygon P is the set of all interior points whose 
		closest point on P's boundary is not unique
- is P is convex then the straight skeleton and the medial axis are identical
- finding the medial axis is related to finding the Voronoi diagram, but 
		a straight skeleton is defined not by a distance function but by 
		a shrinking process
 
- Designing Roofs 
	of Buildings by David Bélanger
		- great site with overview of all the academic papers and even a live 
		Java applet which demonstrates finding the straight skeleton, which leverages 
		some routines from the book
		Computational 
		Geometry in C, Second Edition, Joseph O'Rourke
- the applet is fairly robust, but i was able to consistently create simple 
		polygons for which it failed to terminate
 
Academic Papers for Roofs
	- 
	
	Towards fully automatic generation of city models (pdf), C. Brenner, July 
	2000
		- main focus is constructing roofs from ground plans, given knowledge 
		from a hi-resolution DSM (elevation points)
- the do a lot of sophisticated extensions of the straight skeleton algorithm
 
- A Novel Type of Skeleton for Polygons (Gzipped 
	PostScript,
	pdf)
		- O. Aichholzer, 
		D. Alberts, F. Aurenhammer, B. Gärtner, 1995
- describes the straight skeleton and its application to roofs
- states that fast Voronoi-style solutions will fail, so a procedural 
		process is required to determine it, but does not describe that process
		
 
- Straight skeletons for general polygonal figures in the plane (O. 
	Aichholzer and F. Aurenhammer) 1998 (Gzipped 
	PostScript)
		- 
		 great 
		quote: "Even when the slopes of the roof faces are prescribed, a roof is 
		a highly ambiguous object." great 
		quote: "Even when the slopes of the roof faces are prescribed, a roof is 
		a highly ambiguous object."
- proposes an algorithm which is "conceptually simple and easy to implement", 
		with O(n log n) behavior in the typical case
- interestingly, this approach also has an application for constructing 
		terrain elevation, when your only input is vector data for a coastline and 
		river map, by making assumptions about the slope at each vector
 
- Raising roofs, 
	crashing cycles, and playing pool (David 
	Eppstein, Jeff Erickson) 
	1999
- 
	Straight 
	Skeleton Implementation (P. Felkel, Š. Obdržálek) 1998
		- has actual pseudocode
- handles convex, non-convex, even polygons with holes in them
- states that C++ code is available upon request, so 02.08.05 sent in 
		a request
 
- 
	 Automatically 
	Generating Roof Models from Building Footprints (pdf) Automatically 
	Generating Roof Models from Building Footprints (pdf)
		- 
		
		R. G. Laycock, A. M. Day, 
		University of East Anglia, UK, 2003
- They describe using the Felkel algorithm for generation of roofs, and 
		observe that it produces poor results for "many vernacular buildings start 
		their life as simple footprints with few vertices and become more complicated 
		through the addition of extensions."
- For these buildings, an extended algorithm is described starting with 
		the straight skeleton, then using rectilinear analysis to guess original 
		structure and intersect the resulting roofs. 
 
Commercial Software for Roofs
	- Etercalc 
	is a Java application that builds roofs from perimeter
		- by a Brazilian roofing company (Eternit) so the site is in Portuguese
- you do have to register at Eternit site to try it
 
- 
	 There 
	was once a package called Roofer, a "a library of routines for generating 
	the roof geometry of a house given the ground plan and wall parameters".  
	It was Copyright © 1996 Geometric Software Services Co. Ltd., India.  Sadly 
	it seems to be no longer in existence, nor was it bought or continued by any 
	other company (?)  An old archived copy of their web page is
	
	here. There 
	was once a package called Roofer, a "a library of routines for generating 
	the roof geometry of a house given the ground plan and wall parameters".  
	It was Copyright © 1996 Geometric Software Services Co. Ltd., India.  Sadly 
	it seems to be no longer in existence, nor was it bought or continued by any 
	other company (?)  An old archived copy of their web page is
	
	here.
- ArCon (€230) is architectural 
	design software which includes a roof editor
- most high-end CAD packages (e.g. Nemetschek 
	Allplan FT and ArchiCAD) 
	have significant functionality for roof design
- reportedly, BuildersCAD ($1000) 
	has a very capable Roof Generator and is much less expensive than ArchiCAD or 
	Allplan