surface
lab7 (
  color dotcolor = 1;
  color backcolor = 0;
  float radius= 1;
  float spacing = 2;
  float Ka = 1;
  float	Kd = 1;
)
{
  point Nf, V;
  float x, y, z;

  x = xcomp(transform("shader",P));
  y = ycomp(transform("shader", P));
  z = zcomp(transform("shader", P));
  
  
  if (x > (spacing * (floor(x/spacing) + .5)))
     x = mod(-x, spacing);
  else
     x = mod(x, spacing);
  
  if (y > (spacing * (floor(y/spacing) + .5)))
     y = mod(-y, spacing); 
  else
     y = mod(y, spacing);

  if (z > (spacing * (floor(z/spacing) +.5)))
     z = mod(-z, spacing);
  else  
     z = mod(z, spacing);

  Oi = Os;
  Nf = faceforward(normalize(N), I);
  V = normalize(-I); 

  if (((x * x) + (z * z) + (y * y)) < (radius * radius))
     Ci = Oi * dotcolor;
  else
     Ci = Oi * backcolor;
}