% pathernon.mp
% L. Nobre G.
% 2004

beginfig(0);
        f := (4.8,3,3.65);
	viewcentr := black;
	Spread := 50;
	horiZon := 0;
	ShadowOn := false;
	LightSource := (1,-1,7);
	SphericalDistortion := true;
	OverRidePolyhedricColor := true;
	numeric side, coluheight, blocheight, roofheight, coluray, fact;
	numeric acroside, acronum, auxa, raya, rayb , poshemi, lena, lenb;
	color roofcenter, ba, bb, bc, bd, coluvec, colucen, auxb, auxc, auxd;
	side = 1;
	roofheight = 0.1;
	coluheight = 0.7;
	acroside = 4;
	acronum = 20;
	coluray = 0.06;
	blocheight = 0.1;
	poshemi = 0.25*side;
	raya = 0.08;
	rayb = 0.12;
	lena = 0.13;
	lenb = 0.26;
	fact = 1.3;
	auxa = 0.5*side-coluray;
	coluvec = blue*coluheight;
	colucen = 0.5*coluvec;
	auxc = (0,-poshemi,0);
	auxd = (0,-poshemi,raya+rayb);
	setthestage( acronum, acroside ); 
	V1 := (0.5*side,-0.5*side,coluheight+blocheight);
	V2 := (0.5*side,0.5*side,coluheight+blocheight);
	V3 := (-0.5*side,0.5*side,coluheight+blocheight);
	V4 := (-0.5*side,-0.5*side,coluheight+blocheight);
	V5 := (0,-0.5*side,coluheight+roofheight+blocheight);
	V6 := (0,0.5*side,coluheight+roofheight+blocheight);
	makeface1(1,4,5);
	makeface2(1,2,6,5);
	makeface3(2,3,6);
	makeface4(3,4,5,6);
	ba = (auxa,-auxa,0);
	bb = (auxa,auxa,0);
	bc = (-auxa,auxa,0);
	bd = (-auxa,-auxa,0);
	roofcenter = (V1+V2+V3+V4+V5+V6)/6;
	auxb = roofcenter-blue*blocheight;
	V7 := (-0.5*side,-0.5*side,coluheight);
	getready( "draw_invisible( false, false, white, black )", roofcenter );
	getready( "rigorousdisc( 0, true, ba, coluray, coluvec )", ba+colucen);
	getready( "rigorousdisc( 0, true, bb, coluray, coluvec )", bb+colucen);
	getready( "rigorousdisc( 0, true, bc, coluray, coluvec )", bc+colucen);
	getready( "rigorousdisc( 0, true, bd, coluray, coluvec )", bd+colucen);
	getready("kindofcube(false,true,V7,0,0,0,side,side,blocheight)",auxb);
	getready( "whatisthis(auxc,lenb*red,lena*green,raya,fact)", auxc );
	getready( "spatialhalfsfear( auxd, blue, rayb )", auxd );
	doitnow;
	produce_vga_border;
endfig;

end;
