// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #include "colors.inc" #include "textures.inc" #include "shapes.inc" #include "stones.inc" #include "metals.inc" #include "transforms.inc" #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.85, 0.95, 1.00 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 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 vermelho = texture{ pigment{ checker color rgb < 1, 0, 0 >, color rgb < 1.00, 0, 0 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } #declare raio = 2.000; #declare caixa = box{<0,0,0> <1,1,1>} #declare visor = box{<0.25,0.25,1> <2.25,4.75,1.05>} #declare visor2 = box{<0.5,1,1.05> <1.5,4,1.1>} #declare peca_1 = box{<0,0,0><1,1,1>} #declare chao = box{ <-20,-20,-1>, <+20,+20,0> } #include "eixos.inc" #include "retalho.inc" #declare roda = difference{ cylinder{<0,0,0>,<0,0,1>,3} cylinder{<-0.1,-0.1,-0.1><0.1,0.1,1.1 >,2.5} } #declare torre = union{ box{<-1,-1,0> <1,1,3>} cone{<0,0,3>, 1, <0,0,4>, 0} } #macro meio_sofa(m) union{ #local A = array[4][4] #local A[0][0] = <3,0,3>; #local A[0][1] = <2,0,3>; #local A[0][2] = <1,0,3>; #local A[0][3] = <0,0,3>; #local A[1][0] = <3,0,2>; #local A[1][1] = <2,0-1*m/5,2>; #local A[1][2] = <1,0-1*m/5,2>; #local A[1][3] = <0,0,2>; #local A[2][0] = <3,0,1>; #local A[2][1] = <2,0-1*m/5,1>; #local A[2][2] = <1,0-1*m/5,1>; #local A[2][3] = <0,0,1>; #local A[3][0] = <3,0,0>; #local A[3][1] = <2,0,0>; #local A[3][2] = <1,0,0>; #local A[3][3] = <0,0,0>; #local C = array[4][4]; #local C[1][0] = <3,0.5,2.25>; #local C[1][1] = <2,0.5+1*m/5,2.25>; #local C[1][2] = <1,0.5+1*m/5,2.25>; #local C[1][3] = <0,0.5,2.25>; #local C[2][0] = <3,1,1.75>; #local C[2][1] = <2,1+1*m/5,1.75>; #local C[2][2] = <1,1+1*m/5,1.75>; #local C[2][3] = <0,1,1.75>; #local C[3][0] = <3,0.5,1>; #local C[3][1] = <2,0.5,1>; #local C[3][2] = <1,0.5,1>; #local C[3][3] = <0,0.5,1>; #local C[0][0] = A[0][0];//(A[1][0]+C[1][0])/2; #local C[0][1] = A[0][1]; #local C[0][2] = A[0][2]; #local C[0][3] = A[0][3]; #local B = array[4][4] #local B[0][0] = A[3][0]; #local B[0][1] = A[3][1]; #local B[0][2] = A[3][2]; #local B[0][3] = A[3][3]; #local B[1][0] = <3,1,0>; #local B[1][1] = <2,1-1*m/5,0>; #local B[1][2] = <1,1-1*m/5,0>; #local B[1][3] = <0,1,0>; #local B[2][0] = <3,2,0>; #local B[2][1] = <2,2-1*m/5,0>; #local B[2][2] = <1,2-1*m/5,0>; #local B[2][3] = <0,2,0>; #local B[3][0] = <3,3,0>; #local B[3][1] = <2,3,0>; #local B[3][2] = <1,3,0>; #local B[3][3] = <0,3,0>; #local D = array[4][4] #local D[0][0] = C[3][0]; #local D[0][1] = C[3][1]; #local D[0][2] = C[3][2]; #local D[0][3] = C[3][3]; #local D[1][0] = <3,1.25,1.3>; #local D[1][1] = <2,1.25+1*m/5,1.3>; #local D[1][2] = <1,1.25+1*m/5,1.3>; #local D[1][3] = <0,1.25,1.3>; #local D[2][0] = <3,2.25,1>; #local D[2][1] = <2,2.25+1*m/5,1>; #local D[2][2] = <1,2.25+1*m/5,1>; #local D[2][3] = <0,2.25,1>; #local B[3][0] = (D[2][0]+B[2][0])/2; #local D[3][0] = B[3][0]; #local B[3][1] = (D[2][1]+B[2][1])/2; #local D[3][1] = B[3][1]; #local B[3][2] = (D[2][2]+B[2][2])/2; #local D[3][2] = B[3][2]; #local B[3][3] = (D[2][3]+B[2][3])/2; #local D[3][3] = B[3][3]; #local E = array[4][4] #local E[0][0] = A[0][0]; #local E[0][1] = C[1][0]; #local E[0][2] = C[2][0]; #local E[0][3] = C[3][0]; #local E[1][0] = A[1][0]; #local E[1][1] = <3.1+1*m/5,0.25,2>; #local E[1][2] = <3.1+1*m/5,0.3,0.6>; #local E[1][3] = D[1][0]; #local E[2][0] = A[2][0]; #local E[2][1] = <3.1+1*m/5,0.2,0.4>; #local E[2][2] = <3.1+1*m/5,2.12,0.8>; #local E[2][3] = B[2][0]; #local E[3][0] = A[3][0]; #local E[3][1] = B[1][0]; #local E[3][2] = B[2][0]; #local E[3][3] = B[3][0]; #local F = array[4][4] #local F[0][0] = A[0][3]; #local F[0][1] = C[1][3]; #local F[0][2] = C[2][3]; #local F[0][3] = C[3][3]; #local F[1][0] = A[1][3]; #local F[1][1] = <0-1*m/5,0.25,2>; #local F[1][2] = <0-1*m/5,0.3,0.6>; #local F[1][3] = D[1][1]; #local F[2][0] = A[2][3]; #local F[2][1] = <0-1*m/5,0.2,0.4>; #local F[2][2] = <0-1*m/5,2.12,0.8>; #local F[2][3] = D[2][3]; #local F[3][0] = A[3][3]; #local F[3][1] = B[1][3]; #local F[3][2] = B[2][3]; #local F[3][3] = D[3][3]; object{ retalho (A[0][0],A[0][1],A[0][2],A[0][3], A[1][0],A[1][1],A[1][2],A[1][3], A[2][0],A[2][1],A[2][2],A[2][3], A[3][0],A[3][1],A[3][2],A[3][3], 0.000001,texture{tx_fosca},texture{tx_fosca}) translate<0,1,5> } object{ retalho (B[0][0],B[0][1],B[0][2],B[0][3], B[1][0],B[1][1],B[1][2],B[1][3], B[2][0],B[2][1],B[2][2],B[2][3], B[3][0],B[3][1],B[3][2],B[3][3], 0.000001,texture{tx_fosca},texture{tx_fosca}) translate<0,1,5> } object{ retalho (C[0][0],C[0][1],C[0][2],C[0][3], C[1][0],C[1][1],C[1][2],C[1][3], C[2][0],C[2][1],C[2][2],C[2][3], C[3][0],C[3][1],C[3][2],C[3][3], 0.000001,texture{tx_fosca},texture{tx_fosca}) translate<0,1,5> } object{ retalho (D[0][0],D[0][1],D[0][2],D[0][3], D[1][0],D[1][1],D[1][2],D[1][3], D[2][0],D[2][1],D[2][2],D[2][3], D[3][0],D[3][1],D[3][2],D[3][3], 0.000001,texture{tx_fosca},texture{tx_fosca}) translate<0,1,5> } object{ retalho (E[0][0],E[0][1],E[0][2],E[0][3], E[1][0],E[1][1],E[1][2],E[1][3], E[2][0],E[2][1],E[2][2],E[2][3], E[3][0],E[3][1],E[3][2],E[3][3], 0.000001,texture{tx_fosca},texture{tx_fosca}) translate<0,1,5> } object{ retalho (F[0][0],F[0][1],F[0][2],F[0][3], F[1][0],F[1][1],F[1][2],F[1][3], F[2][0],F[2][1],F[2][2],F[2][3], F[3][0],F[3][1],F[3][2],F[3][3], 0.000001,texture{tx_fosca},texture{tx_fosca}) translate<0,1,5> } } #end #macro monociclo(n) union{ object {meio_sofa(n) scale 2 translate <-2.5,0,-7> } object{ roda rotate <0,90,0 > translate <0,0,0> texture{ PinkAlabaster }} object{ roda rotate <0,90,0 > translate <0,8,0> texture{ PinkAlabaster }} } #end union{ monociclo(-5) translate <-5,0,0> } union{ monociclo(10) translate <5,0,0> } object{ chao translate < 0,0,-4 > texture{ PinkAlabaster }} #include "camlight.inc" #declare centro_cena = < 0.00, 5.00, 2.00 >; #declare raio_cena = 20.0; #declare dir_camera = < -7, 7 ,3 >; #declare dist_camera = 40.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)