/* This is the shader (volumetric) for lab7. It does polka-dots 
	Tim Fitz (cs184-bg) */

surface polka (float Ka = 1;
	       float Kd = 1;
		color dotcolor = .8;
		color outsidecolor = .2;
		float size = .25;
		float spacing = 1;)
{
	float xval;
	float yval;
	float zval;

	xval = abs(xcomp(P));
	yval = abs(ycomp(P));
	zval = abs(zcomp(P)); 

	xval = xval - (spacing*floor(xval/spacing));
	yval = yval - (spacing*floor(yval/spacing));
	zval = zval - (spacing*floor(zval/spacing));


	if ((xval+size)>spacing)
		xval = 1-xval;
	if ((yval+size)>spacing)
		yval = 1-yval;
	if ((zval+size)>spacing)
		zval = 1-zval;

	Oi = Os;
	if (sqrt(pow(xval, 2) +
		pow(yval, 2) +
		pow(zval, 2)) < size) {
		Ci = dotcolor;
	} else {
		Ci = outsidecolor;
	}
}