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

//coroa 
// ======================================================================
// CÂMERA 

camera {

//	 location <0, 10, -0>  //visao por cima
//	location < 10, 2, 0>  // visao de lado
//	location <0, 0, -10> //visao de frente
	location <0, 3, -10> // visao "oficial"
	look_at <0, 0, 0>
	//location  <  8.00, 4.00, 2.00 >  // Posição do observador.
	right     0.75*x                // Largura RELATIVA da imagem.
	up       y                 // Altura RELATIVA da imagem.      
	sky       z                      // Qual direção é "para cima"?
} 
// Nota: os parâmetros "right" e "up" devem ter a mesma proporção
// que os parâmetros ${WIDTH} e ${HEIGHT} no Makefile.

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


light_source {
	1 * < 0, 10, 0>             // Posição da lâmpada.
	color rgb 1.2* < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 
light_source {
	1 * < 0, 0, -10>             // Posição da lâmpada.
	color rgb 1.2* < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 

light_source {
	1 * < 10, 0, 0>             // Posição da lâmpada.
	color rgb 1.2* < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 
// ======================================================================
// DESCRIÇÃO DA CENA 

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

#declare coro = <0.7, 0.6, 0>; //cor próxima ao dourado. 
#declare ouro = texture { // pigmento reflexivo dourado. 
	pigment { rgb coro }
	finish {
		ambient 0.05
		diffuse 0.05
		reflection coro
		specular 0.20 
		roughness 0.05 
	}
}

#declare cor_cristal = <1, 1, 1>; //cor do diamante
#declare diamante = texture { //pigmento refratante de diamante. 
	finish {
			ambient 0.1
			diffuse 0.1
			reflection .25
			specular 1
			roughness 0.001 
		}
		pigment { color cor_cristal filter 1 }
}

#declare cor_cristal = <0, 1, 0>;  //cor da esmeralda 
#declare esmeralda = texture { //pigmento refratante de diamante. 
	finish {
			ambient 0.1
			diffuse 0.1
			reflection .25
			specular 1
			roughness 0.001 
		}
		pigment { color cor_cristal filter 1 }
}

#declare base = torus {
	1.5, 0.5
	texture { ouro}
}

#declare desl = <1,0>;
#declare lateral = lathe {
	linear_spline 
	4, <0, 0> + desl, <1, 1.2> + desl, <1.3, 1.2> + desl, <0.5, 0> + desl 
	texture {ouro}
}

#declare joia = union{
	lathe {
		linear_spline 
		3, <0,0>, <.5, .5>, <0, 1>
		translate <0, 0.5, 0>
		texture { esmeralda }
		interior { ior 1.5 } 
	}
	sphere {
		<0, 0, 0>, 0.5 
		texture { diamante }
		interior { ior 1.5 } 
	}
} 

#declare joia_t = object {
	joia
	scale 0.5
	translate <0, 1.9, -2.2>
	//translate <0, 1.65, -2.25>
}

#declare coroa = union {
	object {
		base
	}

	object {
		lateral
		//scale <0.8, 1.4, 1>
		scale <1, 1.4, 1>
	}
	#declare rota = 0;
	#while (rota < 360)
		object {
			joia_t
			rotate y*rota
		}
		#declare rota = rota + 90;
	#end
}

plane {
	y, -2
	texture { pigment { DMFWood4 scale 4 }
	//texture { pigment { checker <1, 0, 0>, <0, 0, 1> }
		finish { ambient 0.1 diffuse 0.9 }
		scale 0.5
	}
}

object{
	coroa
	translate <0, 0.5, 0 > 
}