// Last edited on 2009-10-10 18:38:50 by stolfilocal // Processed by remove-cam-lights #macro eixo(ponta,cor,nome) union{ sphere{ <0,0,0>, 0.02 } cylinder{ <0,0,0>, 0.91*ponta, 0.02 } cone{ 0.90*ponta, 0.06, ponta, 0.00 } texture{ pigment{ color rgb cor } finish{ ambient 0.5 diffuse 0.5 } } } #end #macro eixos(tamanho) union{ object{ eixo( , <1.0,0.2,0.2>, "X") } object{ eixo( <0,tamanho,0>, <0.0,0.8,0.0>, "Y") } object{ eixo( <0,0,tamanho>, <0.3,0.3,1.0>, "Z") } } #end background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_cinza = 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_preto = texture{ pigment{ color rgb < 0, 0, 0 > } } #declare tx_branco = texture{ pigment{ color rgb < 1, 1, 1 > } finish{ ambient 0.3 } } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.65, 0.00 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_espelho = texture{ pigment{ color rgb < 1.00, 0.90, 0.70 > } finish{ diffuse 0.1 reflection 0.8*< 1.00, 0.90, 0.70 > ambient 0.1 } } #declare tx_vidro = texture{ pigment{ color rgb < 0.97, 0.98, 1.00 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } #declare tx_dct = texture { pigment{ image_map { jpeg "dct.jpg"} scale < 0.77 , 0.61 , 1> } finish{ diffuse 0.8 ambient 0.2 } } #declare tamanho_assento = 1.000; #declare caixa1 = box{ < 0.0, 0.0, 0.0>, < 0.2, 0.8, tamanho_assento-0.2 > texture{ tx_cinza } } #declare caixa2 = box{ < 0.0, 0.0, 0.0>, < 0.2, 0.8, tamanho_assento > texture{ tx_cinza } } #declare assento = union { object { caixa2 rotate 90 * y } } #declare suporte = box{ < 0.1, 0.1, -0.1>, < 0.2, 0, 0.25 > texture{ tx_cinza } } #declare pe = box{ < 0, 0, 0>, < 0.15, 0.15, 0.6 > texture{ tx_cinza } } #macro cadeira() union { object { caixa1 } object { assento translate < -1.0*tamanho_assento , 0 , -0.25 > } object { suporte translate <0, 0.1, -0.2> } object { suporte translate <0, 0.6, -0.2> } object { pe translate < -0.2 , 0,-1.05> } object { pe translate < -0.2 - tamanho_assento + 0.25, 0,-1.05> } object { pe translate < -0.2 , tamanho_assento - 0.2 - 0.15, -1.05> } object { pe translate < -0.2 - tamanho_assento + 0.25 , tamanho_assento - 0.2 - 0.15, -1.05> } } #end #macro pe_mesa(tamanho) box{ < 0, 0, 0 >, < 0.2, 0.2, tamanho > texture{ tx_cinza } } #end #macro cima_mesa(comprimento, largura) box{ < 0.0, 0.0, 0.0>, < largura, comprimento, 0.2 > texture{ tx_cinza } } #end #macro mesa(tamanho, comprimento, tamanho_pe) union { object { cima_mesa(tamanho,comprimento) } object { pe_mesa(tamanho_pe) translate<0,0,-1.0*tamanho_pe> } object { pe_mesa(tamanho_pe) translate<0 , tamanho - 0.2 ,-1.0* tamanho_pe> } object { pe_mesa(tamanho_pe) translate } object { pe_mesa(tamanho_pe) translate } } #end #macro workstation ( tamanho, largura ) union { object { mesa(tamanho, largura, 1.0) translate < -1.0 * tamanho, -0.5, 0>} object { cadeira() } object { computer (tamanho - 0.7, 0.4) translate < -1.4 , 0, 0.6> } } #end #macro monitor(comprimento , altura) #declare main = box{ < 0.0, 0.0, 0.0>, < 0.3, comprimento, altura > texture{ tx_cinza } } #declare corte = box{ < 0.29, 0.1, 0.1>, < 0.4, comprimento-0.1, altura-0.1 > texture{ tx_preto } } union { difference { object {main} object {corte} } } #end #macro cpu(comprimento , altura) box{ < -0.3, 0.0, 0.0>, < 0.5, comprimento, altura > texture{ tx_cinza } } #end #macro computer (comprimento, altura) union { object {monitor(comprimento - 0.3, altura + 0.35)} object {cpu(comprimento , altura) translate < 0, -0.15 , -0.4>} } #end #macro piso (comprimento, largura) box{ < 0.0, 0.0, -0.4 >, < largura, comprimento, 0.1 > texture{ tx_fosca } } #end #macro fileira( m , flag) union { #local divisao = m/2; #local m = m + 1; #declare j=0; #while( j < m ) #if( (flag=2 | j > divisao) & flag != 0) #if (j != divisao) object { workstation( 2.0 , 1.5 ) scale 0.6 translate< 0 , 0 + j*1.5 , 0 > } #end #end #declare j = j+1; #end object { piso( 2.0 * m + 0.6*m , 5.0 ) scale 0.6 translate < (5.0)/-2.0 , - 0.6 , -0.7 >} } #end #macro parede(comprimento, altura , tx) box{ < 0, 0, 0>, < 1.5, comprimento, altura > texture{ tx } } #end #macro quadro(comprimento, altura , tx) box{ < 0, 0, 0>, < comprimento, altura , 0.1> texture{ tx } } #end union { #declare i = 0; #declare num_filas = 3; #while (i} #else object { fileira (6 , 2) translate < (-3.0*i) , 0, (0.3*i) - 1.0>} #end #declare i = i + 1; #end object { fileira (6 , 0) translate < (-3.0*i) , 0, (0.3*i) - 1.0>} object { parede(18, 4.5, tx_branco) scale 0.6 translate < -12.0 , -0.5 , -0.96> } object { quadro(0.77, 0.61, tx_dct) rotate 90*y rotate 90*x scale 2 translate < -11.1 , 0 , 0.3> } object { text { ttf"arial" "DCT-UFMS" 0.5 0 texture {tx_cinza} } scale 0.5 rotate 90*y rotate 90*x translate < -11.2 , 3.0 , 0.9> } //eixos(2.0) } // Original camera parameters: // #local cam_ctr = <0.00,5.00,0.00> // #local cam_vec = ((1.5 *<14.00,7.00,3.50>)-<0.00,5.00,0.00>) // #local cam_sky = z #include "camlight.inc" camlight(<-4.00,6.00,-1.00>,9.0,<10,7,7>,22.0,z,1.2)