// Last edited on 2003-12-08 21:12:58 by stolfi
// Exemplo de arquivo de descricao de cena para POV-ray

// ======================================================================

#include "colors.inc"
#include "skies.inc"
#include "stoneold.inc"

#declare ctr = < 0.00, 1.00, -0.50 > + 0.52*clock*y;
#declare camDir = < 3.00, 7.00, 3.00 >;

// sphere{ ctr, 1 texture{ pigment{ color rgb <1,0,1> } finish { ambient 0.6 diffuse 0.4 } } }

camera {
  location   ctr + 1.00*camDir
  right      0.80*x
  up         0.60*y
  sky        z
  look_at    ctr
}
 

// ======================================================================
// FONTES DE LUZ

light_source {
  10 * < +40.0, +60.0, +100.0 >              // Posição da lâmpada.
  color rgb 1.2 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 

light_source {
  10 * < 20.0, +80.0, +100.0 >             // Posição da lâmpada.
  color rgb 0.8 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 

// ======================================================================
// DESCRIÇÃO DA CENA 

background{ color rgb < 1, 1, 1 > }

plane { z, -1.29
  texture{ 
    pigment{ checker color rgb <0.7,0.6,0.5>, color rgb <0.6,0.5,0.2> }
    finish{ diffuse 0.7 ambient 0.3 }
    scale 0.5*0.52
  }
}

sky_sphere {S_Cloud3}

#declare gerador = seed (12837);

#declare limpata = 5;

#declare indicepata = 1;

  #declare unha =
  union{
     cone{
    <0,0,0>, 0.1
    <0.4,0,0>,0
    pigment{Yellow}
       }
  }

  #declare dedo =
  union{
    cylinder {
      <0,0,0>,
      <0.4,0,0>,
      0.1
      pigment {Yellow}
    }
    sphere{  
      <0.4,0,0>,
      0.1
      pigment {Red}
    }
    object{
      unha
      rotate 30*y
      translate <0.4,0,0>
    }
  }

  
  #declare mao =
  union{
     cylinder {
        <0,0,0>,
        <0.4,0,0>,
        0.1
        pigment {Yellow}
     }
     sphere{
    <0.4,0,0>,
    0.1
    pigment {Red}
     }
     object{
       dedo
       rotate 30*y
       translate <0.4,0,0>
    }
  }

  #declare antebraco=
  union{
    cylinder{
    <0,0,0>
    <0.4,0,0>
    0.1
    pigment {Yellow}
    }
    sphere{
    <0.4,0,0>,
    0.1
    pigment{Red}
    }
    object{
      mao
      rotate 30*y
      translate <0.4,0,0>
    }
  }

#declare i = 0;
#declare par = 1;
#while (i < limpata)
//O objeto finalmente
  object{
    union{
      cone {
      <0,0,0>,0.2
      <0.1,0,0>,0.1
      pigment {Yellow}
      }
      sphere{
      <0.1,0,0>,
      0.1
      pigment{Red}
      }
      object{

        antebraco

        rotate 30*y

        #if (par>0)
          #if (clock <=0.5)
            rotate -clock*2*30*y
          #else
            rotate -30*y
            rotate (clock-0.5)*2*30*y
          #end
        #end

        rotate 15*-par*z
        rotate 2*clock*par*15*z
        
        translate <0.1,0,0>
      }
    translate <0.55,0.5*i,0>
    }
    translate <0,0.52*clock,0>
    scale <-1,1,1>
  }
  #declare par = -par;
  #declare i = i+1;
#end

#declare i = 0;
#declare par = -1;
#while (i < limpata)
//O objeto finalmente
  object{
    union{
      cone {
      <0,0,0>,0.2
      <0.1,0,0>,0.1
      pigment {Yellow}
      }
      sphere{
      <0.1,0,0>,
      0.1
      pigment{Red}
      }
      object{

        antebraco

        rotate 30*y

        #if (par>0)
          #if (clock <=0.5)
            rotate -clock*2*30*y
          #else
            rotate -30*y
            rotate (clock-0.5)*2*30*y
          #end
        #end

        rotate 15*-par*z
        rotate 2*clock*par*15*z
        
        translate <0.1,0,0>
      }
    translate <0.55,0.5*i,0>
    }
    translate <0,0.52*clock,0>
  }
  #declare par = -par;
  #declare i = i+1;
#end


#declare i = 0;
#while (i< limpata)
  #declare i=i+1;
#end

//Corpo
    cylinder {<0,0,0>
      <0,limpata*0.5+0.2,0>
      0.6
      pigment{Yellow}
      translate <0,0.52*clock,0>
           }

//Cabeca
  sphere   {<0,0,0>
      0.6
      pigment {Yellow}
      translate <0,0.52*clock,0>
           }

//Anus
  sphere {
    <0,limpata*0.5+0.2,0>
    0.6
    pigment {Yellow}
         translate <0,0.52*clock,0>
  }