//Eduardo Hideki Tanaka  RA: 970563
//   Oitavo Exercicio - MC930

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

background{ color rgb < 0.02, 0.00, 0.02 > }

light_source {
  < 17.00, 10.00, -25.00 >
  color rgb < 1.0, 1.0, 1.0 >
} 

camera {
  location  <  17.00, 9.00, -25.00 >
  look_at   <  3.00, 5.00, 2.00 >
} 

//plano que servira de base
plane { y, 0
  texture {
    pigment {
      checker
      color rgb <1.0, 0.85, 0.3>
      color rgb <1.0, 0.9, 0.2>
    }
  }
}

//para o feixe de luz esverdeada apontando na galinha
#declare posicao = <20, 15, 0>;
#declare alvo = <0, 0, 0>;
#declare distancia = vlength(posicao - alvo);
#declare abertura = degrees(9/distancia);
light_source {
  posicao
  color rgb <0.8, 1.0, 0.8>
  spotlight
  point_at alvo
  radius 0.8*abertura falloff 1.2*abertura
  fade_distance distancia
  fade_power 2
}

#declare espessura = 5.5;
#declare amarelado = color rgb (1/espessura)*<1, 1, 0>;

#declare esp2 = 2;
#declare am2 = color rgb (1/esp2)*<1, 1, 0>;

#declare tinta_amarela = 
  texture {
    pigment { color rgb <1, 1, 0> }
    finish { diffuse 0.8 ambient 0.1 }
  }

#declare tinta_vermelha =
  texture {
    pigment { color rgb <1, 0.3, 0.1> }
    finish { diffuse 0.3 metallic }
  }

#declare corpo = 
  sphere {
    <0, 0, 0>, 3.00
//    texture { tinta_amarela }
    hollow on
    pigment { color rgbt <1, 1, 1, 1> }
    interior {
      media { emission color amarelado }
    }
  }

#declare asa = 
  cone {
    <0, 0, -2>, 1.4
    <0, 0, -5.5>, 0.01
    open
    texture { tinta_amarela }
  }

#declare pe = 
  cone {
    <0, 0, 0>, 2.1
    <0, 2, 0>, 0.1
    open
    texture { tinta_vermelha }
  }

#declare pescoco = 
  cylinder {
    <0, 3, 0>,
    <0, -3, 0>,
    0.5
//    texture { tinta_amarela }
    hollow on
    pigment { color rgbt <1, 1, 1, 1> }
    interior {
      media { emission color am2 }
    }
  }

#declare cabeca = 
  sphere {
    <0, 3, 0>,
    1.5
//    texture { tinta_amarela }
    hollow on
    pigment { color rgbt <1, 1, 1, 1> }
    interior {
      media { emission color am2 }
    }  
  }

#declare bico =
  cone {
    <0, 3, 0>, 1
    <-3, 3, 0>, 0.1
    open
    texture { tinta_vermelha }
  }

#declare cil_o =
  cylinder {
    <-1, 3, -4>,
    <1, 3, 4>,
    0.4
    texture { tinta_vermelha }
  }

merge {
  object { corpo 
           translate <0, 5, 0>
         }
  object { asa
           translate <0, 5, 0> 
         }
  object { asa
           scale <1, 1, -1>
           translate <0, 5, 0>
         }
  object { pe
           translate <0, 0, 0> 
         }
  merge {
    object { pescoco }
    difference {
      object { cabeca }
      object { cil_o }
    }
    object { bico } 
    rotate <0, 0, 45>
    translate <-3, 9, 0>
  }
  rotate <0, -62, 0>
}