#
# Makefile for cubicle office space
#

VIEW=-vf vf/plan
DEV=x11
SCENE=bestoffice
PICT=$(SCENE)
OCTOPTS=-f -r 128
AMBIENT=-av .01 .01 .01 #-ab 1 -af amb/$(SCENE)
RVOPTS=
RPOPTS=-t 3600 -e errfile
RTOPTS=
PFOPTS=-1 -e +2 -x /2 -y /2 -r .67
DOROW=cnt 8 2 9 | rcalc -e '$$1=2+.25*$$2+3*$$1+select(r,.25,2.5,.25,2.5)' \
		-e '$$2=.25+.25*$$3+select(r,2,4.5,8.5,11)' \
		-e '$$3=.7;$$4=0;$$5=0;$$6=1'
CALCOM=rcalc -e '$$1=val;$$2=val*val;val=(.3*$$1+.59*$$2+.11*$$3)*683'
#	| total -m -18 | rcalc -e '$$1=$$1;$$2=sqrt($$2-$$1*$$1)'

.PRECIOUS:	raw/$(PICT)

view:	oct/$(SCENE)
	rview $(VIEW) $(AMBIENT) -o $(DEV) $(RVOPTS) oct/$(SCENE)

trace:	val/$(SCENE).1 val/$(SCENE).2

picture:	pic/$(PICT)

pic/$(PICT):	raw/$(PICT)
	pfilt $(PFOPTS) raw/$(PICT) > pic/$(PICT)

raw/$(PICT):	oct/$(SCENE)
	rpict $(VIEW) $(AMBIENT) $(RPOPTS) oct/$(SCENE) \
> raw/$(PICT)

val/$(SCENE).1:	oct/$(SCENE)
	$(DOROW) -e r=1 | rtrace -oi -h $(AMBIENT) $(RTOPTS) oct/$(SCENE) \
| $(CALCOM) > val/$(SCENE).1

val/$(SCENE).2:	oct/$(SCENE)
	$(DOROW) -e r=2 | rtrace -oi -h $(AMBIENT) $(RTOPTS) oct/$(SCENE) \
| $(CALCOM) > val/$(SCENE).2

val/$(SCENE).3:	oct/$(SCENE)
	$(DOROW) -e r=3 | rtrace -oi -h $(AMBIENT) $(RTOPTS) oct/$(SCENE) \
| $(CALCOM) > val/$(SCENE).3

val/$(SCENE).4:	oct/$(SCENE)
	$(DOROW) -e r=4 | rtrace -oi -h $(AMBIENT) $(RTOPTS) oct/$(SCENE) \
| $(CALCOM) > val/$(SCENE).4

oct/test:	proof testroom \
books book.norm \
floorthings chair1.norm \
deskthings openbook.norm pageverts daffodil.norm pencil.norm
	oconv $(OCTOPTS) testroom proof books floorthings deskthings > oct/test

oct/bestvacant:	oct/vacant bestlights light.fmt \
desklamp.fmt desklamp.y0 desklamp.y1
	oconv $(OCTOPTS) -i oct/vacant bestlights > oct/bestvacant

oct/goodvacant:	oct/vacant goodlights light.fmt 
	oconv $(OCTOPTS) -i oct/vacant goodlights > oct/goodvacant

oct/badvacant:	oct/vacant badlights light.fmt
	oconv $(OCTOPTS) -i oct/vacant badlights > oct/badvacant

oct/bestempty:	office bestlights light.fmt \
desklamp.fmt desklamp.y0 desklamp.y1
	oconv $(OCTOPTS) office bestlights > oct/bestempty

oct/goodempty:	office goodlights light.fmt 
	oconv $(OCTOPTS) office goodlights > oct/goodempty

oct/badempty:	office badlights light.fmt
	oconv $(OCTOPTS) office badlights > oct/badempty

oct/vacant:	office empty_cubs empty_cub.fmt oct/empty_cub
	oconv $(OCTOPTS) office empty_cubs > oct/vacant

oct/bestoffice:	oct/office bestlights light.fmt \
desklamp.fmt desklamp.y0 desklamp.y1
	oconv $(OCTOPTS) -i oct/office bestlights > oct/bestoffice

oct/goodoffice:	oct/office goodlights light.fmt
	oconv $(OCTOPTS) -i oct/office goodlights > oct/goodoffice

oct/badoffice:	oct/office badlights light.fmt
	oconv $(OCTOPTS) -i oct/office badlights > oct/badoffice

oct/office:	office full_cubs full_cub.fmt oct/full_cub
	oconv $(OCTOPTS) office full_cubs > oct/office

oct/bestcube.r1c3:	oct/cube.r1c3 bestlights.r1c3 light.fmt \
desklamp.fmt desklamp.y0 desklamp.y1
	oconv $(OCTOPTS) -i oct/cube.r1c3 bestlights.r1c3 > oct/bestcube.r1c3

oct/goodcube.r1c3:	oct/cube.r1c3 goodlights.r1c3 light.fmt
	oconv $(OCTOPTS) -i oct/cube.r1c3 goodlights.r1c3 > oct/goodcube.r1c3

oct/badcube.r1c3:	oct/cube.r1c3 badlights.r1c3 light.fmt
	oconv $(OCTOPTS) -i oct/cube.r1c3 badlights.r1c3 > oct/badcube.r1c3

oct/leftcube.r1c3:	oct/cube.r1c3 leftlight.r1c3
	oconv $(OCTOPTS) -i oct/cube.r1c3 leftlight.r1c3 > oct/leftcube.r1c3

oct/rightcube.r1c3:	oct/cube.r1c3 rightlight.r1c3
	oconv $(OCTOPTS) -i oct/cube.r1c3 rightlight.r1c3 > oct/rightcube.r1c3

oct/bestvacant.r1c3:	oct/vacant bestlights.r1c3 light.fmt \
desklamp.fmt desklamp.y0 desklamp.y1
	oconv $(OCTOPTS) -i oct/vacant bestlights.r1c3 > oct/bestvacant.r1c3

oct/goodvacant.r1c3:	oct/vacant goodlights.r1c3 light.fmt
	oconv $(OCTOPTS) -i oct/vacant goodlights.r1c3 > oct/goodvacant.r1c3

oct/badvacant.r1c3:	oct/vacant badlights.r1c3 light.fmt
	oconv $(OCTOPTS) -i oct/vacant badlights.r1c3 > oct/badvacant.r1c3

oct/leftvacant.r1c3:	oct/vacant leftlight.r1c3
	oconv $(OCTOPTS) -i oct/vacant leftlight.r1c3 > oct/leftvacant.r1c3

oct/rightvacant.r1c3:	oct/vacant rightlight.r1c3
	oconv $(OCTOPTS) -i oct/vacant rightlight.r1c3 > oct/rightvacant.r1c3

oct/cube.r1c3:	office cube.r1c3 full_cub.fmt oct/full_cub \
empty_cub.fmt oct/empty_cub
	oconv $(OCTOPTS) office cube.r1c3 > oct/cube.r1c3

oct/full_cub:	oct/empty_cub books book.norm floorthings chair1.norm \
deskthings openbook.norm pageverts daffodil.norm pencil.norm
	oconv $(OCTOPTS) -i oct/empty_cub books floorthings deskthings > oct/full_cub

oct/empty_cub:	proof drawer
	oconv $(OCTOPTS) proof > oct/empty_cub
