// Aluno: Breno Henrique Leitao
// Ra: 068458

background{ color rgb < 0.75, 0.80, 0.85 > }

// Tintas
#declare tinta_A = 
  texture {
    pigment { color rgb < 0.10, 0.80, 1.00 > }
    finish { diffuse 0.8 specular 0.3 roughness 0.005 ambient 0.2 }
  }

#declare tinta_D = 
  texture {
    pigment { color rgb < 0.20, 0.80, 0.222> }
    finish { diffuse 1.0 specular 1.5 roughness 0.005 ambient 0.1 }
  }

#declare tinta_B = 
  texture {
    pigment { color rgb < 1.00, 0.80, 0.10 > }
    finish { diffuse 1.0 specular 1.5 roughness 0.005 ambient 0.1 }
  }

#declare Xic = 
  texture {
    pigment { color rgb < 0.50, 1.00, 0.00 > }
    finish { diffuse 0.5 specular 0.7 roughness 0.015 ambient 0.1 }
  }
  
#declare Red = 
  texture {
    pigment { color rgb < 1.00, 0.00, 0.00 > }
    finish { diffuse 0.5 specular 1.5 roughness 0.005 ambient 0.1 }
  }

#declare cafe = 
  texture {
    pigment { color rgb < 0.90, 0.80, 0.80 > }
    finish { diffuse 0.8 specular 0.3 roughness 0.005 ambient 0.2 }
  }
  
// Shapes
#declare bloco =
  box {
    < 0.00, 0.00, 0.00 >
    < 1.00, 1.00, 4.00 >
    texture { tinta_A }
  }

#declare haste = 
  cylinder {
	<0.5, 0.5, 0>,
	<0.5, 0.5, -2>, 0.20
	texture { tinta_B}
  }

#declare tampa = 
  sphere {
	<0.5, 0.5, 3.9>, 0.5
	texture { tinta_D }
 }
  
#declare pa=
  torus {
    0.6, 0.15              
    texture { tinta_B }
  }

// botoes
#declare botao2 =
  sphere {
 	<1, 0.5, 1>, 0.10
  }

#declare botao1 =
  sphere {
 	<1, 0.5, 2>, 0.15
  }

#declare botao =
  sphere {
 	<1, 0.5, 3>, 0.2
  }


// xicaras
#declare xicara = 
  cone { <0.5,0.5,-3>, 1.5,
	 <0.5,0.5, -5>, 0.5 
	 texture { Xic}
	}

	
#declare xicara1 = 
  cone { <0.5,0.5,-2.5>, 1.5,
	 <0.5,0.5, -4.5>, 0.5 
	 texture { Xic}
	}

#declare cafe = 
  cone { <0.5,0.5,-3.5>, 1.0,
	 <0.5,0.5, -4.5>, 0.5 
	 texture { cafe }
	}


union { 
   difference {
	   object {bloco}
	   object {botao}
	   object {botao1}
	   object {botao2}
	   texture { Red }
   }
   object {tampa}
}

union{
   object {haste}
   union {
	   object {pa
		translate z*-2.6
		translate x*0.5
		translate y*0.5
	   }
	    object {pa
		rotate x*90
		translate z*-2.6
		translate x*0.5
		translate y*0.5
	   }
   }
}

union {
  difference { 
	object {xicara}
	object {xicara1}
 }
 object { cafe }
}

#include "camlight.inc"
camlight(<0,0,0>,<10.00,8.00,5.00>,0.65,z,1.0)