// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2017-05-07 20:10:09 by stolfilocal

// ======================================================================
// CORES E TEXTURAS

background{ color rgb < 1.0, 1.0, 1.00 > }

#declare tx_plastico = 
  texture{
    pigment{ color rgb < 0.10, 0.80, 1.00 > }
    finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
  }

#declare tx_fosca = 
  texture{
    pigment{ color rgb < 1.00, 0.80, 0.10 > }
    finish{ diffuse 0.9 ambient 0.1 }
  }

#declare tx_espelho = 
  texture{
    pigment{ color rgb < 1.00, 0.85, 0.30 > }
    finish{ diffuse 0.2 reflection 0.7*< 1.00, 0.85, 0.30 > ambient 0.1 }
  }

#declare tx_vidro = 
  texture{
    pigment{ color rgb < 0.8, 0.8, 0.8 > filter 0.70 }
    finish{ diffuse 0.03 reflection 0.1 ambient 0.02 specular 0.25 roughness 0.005 }
  }


#declare tx_xadrez =
  texture{
    pigment{ checker color rgb < 0.10, 0.32, 0.60 >, color rgb < 1.00, 0.97, 0.90 > }
    finish{ diffuse 0.9 ambient 0.1 }
    scale 2.0
  }
  
 #declare tx_teste =
	texture{
	pigment{ color rgb < 0.9, 0.90, 0.1 > }
    finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 }
	}
	
  

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


// Partes da cena:


#macro perna (ox, oy, rot)
union {

 // coxa

  object{
		box{ <0,0, 0>, <0.2,0.2,1.0>  translate <ox, oy, 0>  rotate<-rot,0,0> texture{tx_plastico}}
		}
		
  object{
		sphere {
		 <0.1,0.1,0.8>, 0.15 translate <ox, oy, rot*0.05>  rotate<0,0,0>  texture {tx_plastico}
		}
		}
		
 // canela
  		
  object{
		box{ <0,0, 1.0>, <0.2,0.2,1.8>  translate <ox, oy, 0>  rotate<rot,0,0>  texture{tx_plastico}}
		}
		
  object{
		sphere {
		 <0.1,0.1, 0.1>, 0.15 translate <ox, oy,rot*0.05>  rotate<0,0,0>  texture {tx_plastico}
		}
		}
		
   object{
        pe(ox, oy, ox*rot)
   }
		
}
#end

#macro pe(ox, oy, rot) 
object{
        box{ <0,0, 0>, <0.2,0.8,-0.1>  translate <ox, oy, 0>  rotate<rot,0,0>  texture{tx_plastico}}
		}
#end

#macro corpo ()
   object{
		box{ <1.4,-2.6, 1.4>, <-1.4,2.6,1.8>   texture{tx_plastico}}
		}
#end

#macro mosquito (ox, oy, rot)
  corpo()
  perna(1*ox,1*oy, rot)
  perna(2*ox,1*oy, rot)
  perna(1*ox,2*oy, rot)
  perna(2*ox,2*oy, rot)
  perna(0*ox,-1*oy, rot)
  perna(2*ox,-1*oy, rot)
#end

#declare frames = array[6];
#declare i = 0;

  #while (i < 6)
   #declare frames[i] = clock;
   #declare i = i + 1;
  #end
  
#macro dragao(ox, oy, rot)
   mosquito(ox, oy, rot * frames[1])

#end

#include "eixos.inc"

// Aqui está a cena, finalmente:

union{
  dragao(1,1,5)
}

#include "camlight.inc"
#declare centro_cena = < 0.00, 0.00, 1.00 >;
#declare raio_cena = 6.0;
#declare dir_camera = < 14.00, 7.00, 4.00 >;
#declare dist_camera = 20*raio_cena;
#declare intens_luz = 1.20;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)