// Last edited on 2003-04-12 06:26:16 by stolfi
// Ivan Francisco Coutinho Costa
// RA 001833
// MC930 - TP 3 - Macaco Mecanico
// Data 18/03/2003


#include "colors.inc"
#include "textures.inc"
#include "metals.inc"

background { color Black }

camera {
    location <15, 5, -22>
    look_at <0,0,0>
 }

light_source { 5*<10, 20, -10> color 1.2*White }
light_source { 5*<-10, 8, -15> color Pink  }


plane {
  y, -8.0
  texture { White_Wood } 
}


#declare corpo =
     union {
        sphere { <0, 10, 0> 2.0 }
        sphere { <0, 0, 0> 2.0 }
        cylinder { <0,0,0>, <0,10,0>,2 }
        pigment { Brown  }
    }
                
#declare orelha = 
     difference {
          sphere { <0, 0, 0>, 1.5 }
          sphere { <0, 0, .8>, 2.0 }
          pigment {Flesh}
     }
                     
#declare braco =
     union { 
        sphere { <0,0,0>, 1.0 }          
        cylinder { <0,0,0>, <0,-3, 0>, 1.0}
        cylinder { <0,-3,0>, < 2, -7, 0>, 0.8}
        sphere { <0,-3,0>, 1.0 }    
        // a mao
        union {
           sphere { <2,-7,0>, 0.8 pigment {Flesh } }
        }
        
        pigment {Brown}
     }
   

#declare beico=
     difference {
           sphere { <0,0,0>, 1.1 }
           box { <-1.1, 0, -1.1>, <1.1, 1.1, 1.1> }
           pigment {Flesh} 
     }
                
#declare perna =
    union {                               
       sphere { <0,0,0>, 1.3 }
       cylinder { <0,0,0>, <5,-2,0>, 1.3 }
       sphere { <5,-2,0>, 1.3 }
       cylinder { <5,-2,0>, <-1,-7,0>, 1.0 }
       // agora o pe
       union {
         sphere { <-1,-7,0> 1 }
         cylinder {<-1,-7,0>, <1,-8,0>, 1.0 }
         sphere { <1,-8,0>, 1 }
         pigment {Flesh}
       }
       pigment {Brown}
    }

 
    
#declare rabo=
    union {
       cylinder {<0,0,0>, <10,0,0>, 0.4 pigment {Brown} }   // cilindro deitado no eixo x
    }

#declare olho=
   sphere { <0,0,0>, .3 pigment { White } }
     
#declare macaco =
  union {
     object { corpo }
     object { orelha rotate <180,0,0> translate <-2.5,10,-1>}               // orelha direita    
     object { orelha rotate <180,0,0> scale <-1,1,1> translate <2.5,10,-1> }  // orelha esquerda 
     object { braco rotate <0,100,0> rotate <0,0,-25> translate <-2, 6, 0>}                // braco direito
     object { braco rotate <0,100,0> rotate <0,0,-25> scale <-1,1,1> translate <2,6,0> }  // braco esquerdo
     object { perna rotate <0,60,0> rotate <20,0,0> translate <1.5,0,0> }   // perna  
     object { perna rotate <0,60,0> rotate <20,0,0> translate <1.5,0,0> scale <-1,1,1> }  // perna  
     object { rabo rotate <0,290,0> rotate <0,0,0> translate <0,0,0> }      // rabo unico
     object { olho translate <-1,10,-1.8> }                     // olho direito
     object { olho translate <1,10,-1.8> } 	                // olho esquerdo
     object { beico rotate <-10, 0,0 > translate <0, 8, -2> }  // beico inferior
     object { beico rotate <180,0,0> translate <0, 8, -2> }    // beico superior                  
  }
          
          
#declare assento=
    cylinder {<0,0,0>,<0,0.8,0>, 3 pigment {Green}}
              
#declare perna_cadeira=
    cylinder {<0,0,0>,<0,-6,0>, 0.1 pigment {P_Silver3}}
                                                      
 
#declare cadeira=
    union {
         object { assento } //translate <0,6,0> }
         object { perna_cadeira translate <0,0,-3>}
         object { perna_cadeira translate <3,0,0>}
         object { perna_cadeira translate <0,0,3>}
         object { perna_cadeira translate <-3,0,0>}
    }                                                 
      
    
    
// a cena 

object { macaco }
object { cadeira translate <0,-2,0>}