/*
 * csg wood block (apologies to Hofstadter)
 *
 * Eric Haines
 *
 */
name letter_c
difference
	list
		cylinder  1 0 0 -1.0 0 0 1.0
		disc 1 0 0 -1.0 0 0 -1
		disc 1 0 0  1.0 0 0  1
	end
	union
		list
			cylinder  0.55 0 0 -1.2 0  0 1.2
			disc 0.55 0 0 -1.2 0 0 -1
			disc 0.55 0 0  1.2 0 0  1
		end
		box 0. -.3 -1.2  1.2 0.3 1.2 
	end
end


name s1 /* outer top part of s */
list
		cylinder 0.6125  -0.3875 0.3875 -1.0 -0.3875 0.3875 1.0
		disc 0.6125 -0.3875 0.3875 -1.0 0 0 -1
		disc 0.6125 -0.3875 0.3875  1.0 0 0  1
		cylinder  0.6125 0.3875 -0.3875 -1.0 0.3875 -0.3875 1.0
		disc 0.6125 0.3875 -0.3875 -1.0 0 0 -1
		disc 0.6125 0.3875 -0.3875  1.0 0 0  1
end

name s3 /* all inner part of s */
union
	list
		cylinder  0.1625 -0.3875 0.3875 -1.2 -0.3875 0.3875 1.2
		disc 0.1625 -0.3875 0.3875 -1.2 0 0 -1
		disc 0.1625 -0.3875 0.3875  1.2 0 0  1
		cylinder  0.1625 0.3875 -0.3875 -1.2 0.3875 -0.3875 1.2
		disc 0.1625 0.3875 -0.3875 -1.2 0 0 -1
		disc 0.1625 0.3875 -0.3875  1.2 0 0  1
	end
	box -.3875 -1.2 -1.2 .3875 1.2 1.2 
end

name letter_s
union
	union
		union
			difference
				object s1
				object s3
			end

			box -0.3875 0.55 -1 1 1 1 
		end
		box -0.3875 -0.225 -1 0.3875 0.225 1 
	end
	box -1 -1 -1 0.3875 -0.55 1 
end


name g3 /*all inner of g */
union
	list
		cylinder  0.55 0 0 -1.2 0  0 1.2
		disc 0.55 0 0 -1.2 0 0 -1
		disc 0.55 0 0  1.2 0 0  1
	end
	box 0. 0. -1.2  1.2 0.425 1.2 
end

name letter_g
union
	difference
		list	/* outer part of g */
			cylinder  1.0 0 0 -1.0 0 0 1.0
			disc 1 0 0 -1.0 0 0 -1
			disc 1 0 0  1.0 0 0  1
		end
		object g3
	end
	box 0.25 -0.3375 -1.2 1.05 0.1125 1.2 
end

name csg
difference
	difference
		object letter_s rotate 1 0 0 90
		object letter_c rotate 1 0 0 90 rotate 0 0 1 90
				scale 1.2 0.8 0.8
	end
	object letter_g scale 0.8 0.8 1.2
	/* scaling here is to avoid coincident surfaces */
end

surface white ambient .1 .1 .1 diffuse .5 .5 .5

surface s1 ambient .5 .4 .3 diffuse .25 .2 .15
surface lgreen ambient .07 .1 .07
	diffuse .42 .6 .42
	specular .28 .4 .28 specpow 10

plane white 0 0 -3  0 0 1
plane white 0 3 0   0 -1 0
plane white -3 0 0  1 0 0

object s1 csg /* texture wood scale 3 3 3*/

light 0.8 directional 0 0 1
light 0.7 directional 0 -1 0
light 0.6 directional 1 0 0

background .1 .3 .8
eyep 10. -13 8.
lookp 0 0 -0.3
up 0 0 1
fov 20.
