// Last edited on DATE TIME by USER // Processed by remove-cam-lights #include "retalho.inc" background{ color rgb < 0.88, 0.66, 0.00 > } #declare tx_pintura = texture { pigment { color rgb < 0.88, 0.33, 0.22 > } finish { diffuse 0.8 ambient 0.1 specular 0.3 roughness 0.05 } } #declare tx_roda = texture { pigment { color rgb < 0.11, 0.11, 0.11 > } finish { diffuse 0.8 ambient 0.1 specular 0.1 roughness 0.005 } } #declare tx_sofa = texture { pigment { color rgbt < 0.99, 0.55, 0.22, 0.1 > } finish { diffuse 0.9 ambient 0.1 specular 0.0 roughness 0.05 } } #declare tx_invisivel = texture { pigment { color rgbt < 0, 0, 0, 1 > } } #declare num_blocos = 5; #declare roda = cylinder { < 0.1, 0, 0 > < -0.1, 0, 0 > 1 texture { tx_roda } } #macro superficie(A, raio, textura1, textura2) 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], raio, textura1, textura2) #end #macro sofa(cheio) union { #local i=-1; #while (i<2) #local A=array[4][4]; #local A[0][0]=< 0, 0, 0 >; #local A[0][1]=< 0, 1, 0 >; #local A[0][2]=< 0, 1, 1 >; #local A[0][3]=< 0, 0, 1 >; #local A[1][0]=< 0, 0, 0 >; #local A[1][1]=< -0.5, 1, 0 >; #local A[1][2]=< -0.5, 1, 1 >; #local A[1][3]=< 0, 0, 1 >; #local A[2][0]=< 0, 0, 0 >; #local A[2][1]=< -1, 0.5, 0 >; #local A[2][2]=< -1, 0.5, 1 >; #local A[2][3]=< 0, 0, 1 >; #local A[3][0]=< 0, 0, 0 >; #local A[3][1]=< -1, 0, 0 >; #local A[3][2]=< -1, 0, 1 >; #local A[3][3]=< 0, 0, 1 >; object { superficie(A, 0.00001, tx_invisivel, tx_sofa) scale < i, 1, 1 + cheio > } #local A=array[4][4]; #local A[0][0]=< 0, 0, 0 >; #local A[0][1]=< -1, 0, 0 >; #local A[0][2]=< -1, 0, 1 >; #local A[0][3]=< 0, 0, 1 >; #local A[1][0]=< 0, 0, 0 >; #local A[1][1]=< -1, -0.15, 0 >; #local A[1][2]=< -1, -0.35, 1 >; #local A[1][3]=< 0, -0.5, 1 >; #local A[2][0]=< 0, 0, 0 >; #local A[2][1]=< -1, -0.15, 0 >; #local A[2][2]=< -1, -0.35, 0.5 >; #local A[2][3]=< 0, -0.5, 0.5 >; #local A[3][0]=< 0, 0, 0 >; #local A[3][1]=< -1, -0.3, 0 >; #local A[3][2]=< -1, -0.7, 0.5 >; #local A[3][3]=< 0, -1, 0.5 >; object { superficie(A, 0.00001, tx_invisivel, tx_sofa) scale < i, 1, 1 + cheio > } #local A=array[4][4]; #local A[0][0]=< 0, 0, 0 >; #local A[0][1]=< -1, -0.3, 0 >; #local A[0][2]=< -1, -0.7, 0.5 >; #local A[0][3]=< 0, -1, 0.5 >; #local A[1][0]=< 0, 0, 0 >; #local A[1][1]=< -1, -1.15, 0 >; #local A[1][2]=< -1, -1.1, 0.5 >; #local A[1][3]=< 0, -1, 0.5 >; #local A[2][0]=< 0, 0, 0 >; #local A[2][1]=< -0.5, -2, 0 >; #local A[2][2]=< -0.5, -1.5, 0.5 >; #local A[2][3]=< 0, -1, 0.5 >; #local A[3][0]=< 0, 0, 0 >; #local A[3][1]=< 0, -2, 0 >; #local A[3][2]=< 0, -1.5, 0.5 >; #local A[3][3]=< 0, -1, 0.5 >; object { superficie(A, 0.00001, tx_invisivel, tx_sofa) scale < i, 1, 1 + cheio > } #local i=i+2; #end } #end #declare pos_roda_frente = < 0, -2, 0 >; #declare pos_roda_traz_direita = < -0.5, 2, 0 >; #declare pos_roda_traz_esquerda = < 0.5, 2, 0 >; #declare altura_guidao = 1.5; #declare tam_guidao = 2.5; #declare pos_sofa = < 0, 2, 0.7 >; union{ object { sofa(1) translate pos_sofa } object { roda translate pos_roda_frente } object { roda translate pos_roda_traz_direita } object { roda translate pos_roda_traz_esquerda } object { cylinder { (pos_roda_traz_direita+pos_roda_traz_esquerda)/2 pos_roda_frente + < 0, 0, altura_guidao > 0.1 texture { tx_pintura } } } object { cylinder { pos_roda_frente + < -0.2, 0, 0 > pos_roda_frente + < -0.2, 0, altura_guidao > 0.1 texture { tx_pintura } } } object { cylinder { pos_roda_frente + < 0.2, 0, 0 > pos_roda_frente + < 0.2, 0, altura_guidao > 0.1 texture { tx_pintura } } } object { cylinder { pos_roda_frente + < -tam_guidao/2, 0, altura_guidao > pos_roda_frente + < tam_guidao/2, 0, altura_guidao > 0.1 texture { tx_pintura } } } } #include "camlight.inc" #declare centro_cena = < 0, 0, 1 >; #declare raio_cena = 6; #declare dir_camera = < -0.5, -1, 0.1 >; #declare dist_camera = 100.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)