/* Shader description goes here */
surface
plaid_test(float Kd = 1,
  
                tflip = 1, /* [0 or 1] */
            
                hl1 = 0, /* [-1 1]*/
                hl2 = 0, /* [-1 1]*/
                hl3 = 0, /* [-1 1]*/
                hl4 = 0, /* [-1 1]*/
                hl5 = 0, /* [-1 1]*/
                
            
                vl1 = 0, /* [-1 1]*/
                vl2 = 0, /* [-1 1]*/
                vl3 = 0, /* [-1 1]*/
                vl4 = 0, /* [-1 1]*/
                vl5 = 0, /* [-1 1]*/
                
                bigBlueSqr = 0, /* [-1 1]*/
                blSqur01 = 0;  /* [-1 1]*/
                
            color blue_square_color = color(0.6,0.717,0.721),
                 beige_square_color = color(0.698,0.721,0.6);)
{
color    surfcolor =  color(0.6,0.717,0.721);
normal n = normalize(N);
normal nf = faceforward(n, I);
  
float    tt = 1 - t;
if (tflip == 0)
     tt = t;
  
if(t >= 0.1 && t <= .9 && s >= 0.1 && s <= .9 ) // beige square
    surfcolor = beige_square_color;
  
if(t >= 0.3 && t <= .7+bigBlueSqr && s >= 0.3 && s <= .7+bigBlueSqr )  // blue second square
    surfcolor = blue_square_color;
  
//horizontal lines
if(t >= 0.1+hl1 && t <= .12+hl1 )
    surfcolor = color(0.513,0.415,0.235);
  
if(t >= 0.3+hl2 && t <= .32+hl2 )
    surfcolor = color(0.513,0.415,0.235);
    
if(t >= 0.5+hl3 && t <= .52+hl3 )
    surfcolor = color(0.513,0.415,0.235);
    
if(t >= 0.7+hl4 && t <= .72+hl4 )
    surfcolor = color(0.513,0.415,0.235);
    
if(t >= 0.9+hl5 && t <= .92+hl5 )
    surfcolor = color(0.513,0.415,0.235);
    
//vertical lines
if(s >= 0.1+vl1 && s <= .12+vl1 )
    surfcolor = color(0.513,0.415,0.235);
  
if(s >= 0.3+vl2 && s <= .32+vl2 )
    surfcolor = color(0.513,0.415,0.235);
    
if(s >= 0.5+vl3 && s <= .52+vl3 )
    surfcolor = color(0.513,0.415,0.235);
    
if(s >= 0.7+vl4 && s <= .72+vl4 )
    surfcolor = color(0.513,0.415,0.235);
    
if(s >= 0.9+vl5 && s <= .92+vl5 )
    surfcolor = color(0.513,0.415,0.235);
  
//first square    
if(t >= 0.07 && t <= .13+blSqur01 && s >= 0.07 && s <= .13 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.27 && t <= .33+blSqur01 &&  s >= 0.07 && s <= .13 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.47 && t <= .53+blSqur01 &&  s >= 0.07 && s <= .13 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.67 && t <= .73+blSqur01 &&  s >= 0.07 && s <= .13) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.87 && t <= .93+blSqur01 &&  s >= 0.07 && s <= .13 ) 
    surfcolor = color(0.290,0.419,0.549);
  
  
//second squares
if(t >= 0.07 && t <= .13+blSqur01 && s >= 0.27 && s <= .33 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.07 && t <= .13+blSqur01 && s >= 0.27 && s <= .33 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.27 && t <= .33+blSqur01 &&  s >= 0.27 && s <= .33 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.47 && t <= .53+blSqur01 &&  s >= 0.27 && s <= .33 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.67 && t <= .73+blSqur01 &&  s >= 0.27 && s <= .33) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.87 && t <= .93+blSqur01 &&  s >= 0.27 && s <= .33 ) 
    surfcolor = color(0.290,0.419,0.549);
  
//third squares
if(t >= 0.07 && t <= .13+blSqur01 && s >= 0.47 && s <= .53 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.07 && t <= .13+blSqur01 && s >= 0.47 && s <= .53 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.27 && t <= .33+blSqur01 &&  s >= 0.47 && s <= .53 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.47 && t <= .53+blSqur01 &&  s >= 0.47 && s <= .53 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.67 && t <= .73+blSqur01 &&  s >= 0.47 && s <= .53) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.87 && t <= .93+blSqur01 &&  s >= 0.47 && s <= .53 ) 
    surfcolor = color(0.290,0.419,0.549);
  
//fourth squares
if(t >= 0.07 && t <= .13+blSqur01 && s >= 0.67 && s <= .73 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.07 && t <= .13+blSqur01 && s >= 0.67 && s <= .73 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.27 && t <= .33+blSqur01 &&  s >= 0.67 && s <= .73 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.47 && t <= .53+blSqur01 &&  s >= 0.67 && s <= .73 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.67 && t <= .73+blSqur01 &&  s >= 0.67 && s <= .73) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.87 && t <= .93+blSqur01 &&  s >= 0.67 && s <= .73 ) 
    surfcolor = color(0.290,0.419,0.549);
  
//fifth squares
if(t >= 0.07 && t <= .13+blSqur01 && s >= 0.87 && s <= .93 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.07 && t <= .13+blSqur01 && s >= 0.87 && s <= .93 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.27 && t <= .33+blSqur01 &&  s >= 0.87 && s <= .93 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.47 && t <= .53+blSqur01 &&  s >= 0.87 && s <= .93 ) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.67 && t <= .73+blSqur01 &&  s >= 0.87 && s <= .93) 
    surfcolor = color(0.290,0.419,0.549);
  
if(t >= 0.87 && t <= .93+blSqur01 &&  s >= 0.87 && s <= .93 ) 
    surfcolor = color(0.290,0.419,0.549);
  
  
/* STEP 1 - set the apparent surface opacity */
Oi = Os;
  
//Lighting calculation
color    diffuseColor = diffuse(nf) * Kd;
  
  
/* STEP 2 - calculate the apparent surface color */
Ci = Oi * surfcolor * diffuseColor;
}