//editado por samuel em 11-01-2001 #include "colors.inc" #include "glass.inc" background {color rgb <0.53,0.53,1>} light_source { <2000,600,-3000> color rgb <1,1,1> } light_source { <-2000,1000,1500> color rgb <1,1,1> } light_source { <6000,1000,1500> color rgb <1,1,1> } camera { location <2200 , 150.0 ,-4500.0> //visao frontal // location <-1000,500,0> //visao lateral esquerda //location < 5500, 500, 0> //visao lateral direita //location <200,500,-900> sky <0.0, 1.0, 0.0> look_at <2200 , 20.0 ,200.0> //frontal //look_at <200 , 0 , 0> //lateral esquerda } //o chao...verde por enquanto plane { y, 0 texture { pigment {color rgb <0,1,0>} } } //------------------------------------------------------- //BASE DO GINASIO - ENTRADA PARA O CENTRO DE CONFERENCIAS //------------------------------------------------------- /* detalhes - janelas, colunas externas, entrada principal. */ #declare a = box { <0,0,0>, <5,46,2> texture { pigment {color Gray} } finish {metallic on phong 1} } #declare b = box { <0,0,0>, <5,50,2> texture { pigment {color rgb <1,1,0>} } } #declare janela = union { #declare i = 1; #while (i < 7 ) object {b rotate <0,0,90> translate <0,6*i,0>} #declare i = i+ 1; #end object {a} object {b rotate <0,0,90> texture {pigment {color Gray} finish {metallic on phong 1}}} object {b rotate <0,0,90> translate <0,41,0> texture {pigment {color Gray} finish {metallic on phong 1}}} object {a translate <-55,0,0>} } #declare janelas = union { #declare j=1; #while (j < 6) object {janela translate <55*j,0,0>} #declare j = j+1; #end } #declare triang = prism { linear_sweep linear_spline 0, 15, 3, <0,0>,<150,0>,<0,-30> pigment {color Gray} rotate <0,0,90> } #declare ladoA = union{ object {triang} object {janelas translate <0,104,0>} object {triang translate <280,0,0>} } #declare vidro1 = union{ box { <125,10,0>,<155,100,5> texture{F_Glass1} finish {reflection 1.0 ambient 0 diffuse 0 } interior {I_Glass} hollow on } box { <125,110,0>,<155,145,5> texture{F_Glass1} finish {reflection 1.0 ambient 0 diffuse 0 } interior {I_Glass} hollow on } } #declare vidro = 0; #declare vidros = union{ #while (vidro < 4 ) object {vidro1 translate } #declare vidro = vidro + 1; #end } #declare vidrolat1 = union{ box {<0,0,-10>,<120,150,20> pigment {color red 0.99 green 0.99 blue 0.99}} difference { box {<120,0,0>,<280,150,5> pigment {color rgb <1,1,1>}} object {vidros} } object {triang translate <280,0,0>} } #declare vidrolat2 = union{ difference { box {<0,0,0>,<160,150,5> pigment {color rgb <1,1,1>}} object {vidros translate <-125,0,0>} } box {<160,0,-10>,<280,150,20> pigment {color rgb <0.99,0.99,0.99>}} object {triang translate <280,0,0>} } #declare vidroentrada = box { <0,10,0>,<30,100,5> texture{F_Glass1} finish {reflection 1.0 ambient 0 diffuse 0 } interior {I_Glass} hollow on } #declare vidroentradamenor = box { <0,110,0>,<30,140,5> texture{F_Glass1} finish {reflection 1.0 ambient 0 diffuse 0 } interior {I_Glass} hollow on } #declare entrada = union{ difference { box { <0,0,0>,<280,150,5> pigment {color rgb <1,1,1>} } object {vidroentrada translate <15,0,0>} object {vidroentrada translate <60,0,0>} object {vidroentrada translate <105,0,0>} object {vidroentrada translate <150,0,0>} object {vidroentrada translate <195,0,0>} object {vidroentrada translate <240,0,0>} object {vidroentradamenor translate <15,0,0>} object {vidroentradamenor scale <2.5,1,1> translate <60,0,0>} object {vidroentradamenor scale <2.5,1,1> translate <150,0,0>} object {vidroentradamenor translate <240,0,0>} } object {triang translate <280,0,0>} } #declare fachada = union { #declare k = 0; #while (k < 6) object {ladoA translate <280*k, 0, 0>} #declare k = k+1; #end } #declare vazio = box {<0,0,0>,<310,75,200>} //base da construcao... #declare base = union{ box { <-15,0,0.2>,<4500,150,2744> pigment {color red 0.99 green 0.99 blue 0.99} } box { <-15,150,-50>,<4500,200,2744> pigment {color Gray} } difference { box { <-15,200,30>,<4500,875,2744> pigment {color Red} } object {vazio translate <1660,200,0>} object {vazio translate <2546,200,0>} } } //------------------------------------------------------ //ENTRADA PARA GINASIO (superior) //------------------------------------------------------ /* detalhes - laterais , colunas, parte posterior */ #declare o1 = box { <0,0,-15>,<400,75,10> pigment {color rgb <1,1,1>} } #declare o2a = box{ <0,0,0>,<50,10,5> texture{F_Glass1} finish {reflection 1.0 ambient 0 diffuse 0 } interior {I_Glass} hollow on } #declare o2baux1 = 0; #declare o2b = union { #while (o2baux1 < 7) object {o2a translate <55*o2baux1,0,0>} object {o2a translate <55*o2baux1,15,0>} #declare o2baux1 = o2baux1 + 1; #end } #declare o2 = union{ difference { box { <0,0,0>,<500,75,5> pigment {color rgb <1,1,1>} } object {o2b translate <50,15,0>} } box { <0,55,-10>,<500,75,5> pigment {color Gray} } } #declare o3baux1 = 0; #declare o3b = union { #while (o3baux1 < 5) object {o2a translate <55*o3baux1,0,0>} object {o2a translate <55*o3baux1,15,0>} #declare o3baux1 = o3baux1 + 1; #end } #declare o3= union { box {<0,0,0>,<620,75,5> pigment {color Gray}} difference { box {<0,0,-5>,<300,75,20> pigment {color rgb <1,1,1>}} object {o3b translate <20,15,-5>} } difference{ box {<320,0,-5>,<620,75,20> pigment {color rgb <1,1,1>}} object {o3b translate <340,15,-5>} } #declare o3c = box {<75,0,-10>,<215,75,20> pigment {color rgb <1,1,1>}} object {o3c} object {o3c translate <320,0,0>} } #declare nivel1= union { object {o1} object {o2 translate <400,0,0>} object {o1 translate <780,0,0>} object {o2 translate <1180,0,0>} object {o3 scale <0.93,1,1> translate <1970,0,0> } object {o2 translate <2856,0,0>} object {o1 translate <3236,0,0>} object {o2 translate <3634,0,0>} object {o1 translate <4100,0,0>} } #declare o4 = union{ #declare o4a = prism { linear_sweep linear_spline 0, 15, 3, <0,0>,<675,-100>,<675,0> pigment {color Gray} rotate <0,0,90> } object {o4a} #declare o4b = box { <0,0,-10>,<645,50,10> pigment {color rgb <1,1,1>} } object {o4b} object {o4a translate <325,0,0>} object {o4b scale <1,1,2> translate <0,125,-20>} object {o4b scale <1,2,1> translate <0,250,0>} #declare o4c = box { <0,0,0>,<60,70,5> texture{F_Glass1} finish {reflection 1.0 ambient 0 diffuse 0 } interior {I_Glass} hollow on } #declare o4d = union{ object {o4c translate <15,50,0>} object {o4c translate <125,50,0>} object {o4c translate <235,50,0>} object {o4c translate <340,50,0>} object {o4c translate <450,50,0>} object {o4c translate <560,50,0>} } object {o4d} object {o4d translate <0,125,-10>} } #declare detail = union{ box { <0,0,-30>,<100,50,-10> pigment {color rgb <1,1,1>} } #declare detaila = union{ box { <0,0,-30>,<445,50,-10> pigment {color rgb <1,1,1>} } } object {detaila rotate <0,0,9.58> translate <100,0,0>} box { <445,65,-30>,<520,115,-10> pigment {color rgb <1,1,1>} } } #declare detalhefim1 = union { object {o4 scale <0.96,1,1>} object {detail translate <115,50,0>} } #declare detalhefim2 = union{ object {o4 scale <0.96,1,1>} object {detail rotate <0,180,0> translate <500,50,-40>} } #declare nivel2a = 0; #declare nivel2 = union{ #while (nivel2a < 2) object {o4 scale <0.96,1,1> translate <645*nivel2a,275,0>} #declare nivel2a = nivel2a + 1 ; #end object {detalhefim1 translate <645*2,275,0>} object {o4 scale <0.96,1,1> translate <645*3,275,0>} object {detalhefim2 translate <645*4,275,0>} object {o4 scale <0.96,1,1> translate <645*5,275,0>} object {o4 scale <0.96,1,1> translate <645*6,275,0>} object {o4a translate <4495,275,0>} } //------------------------------------------------------ //PARTE SUPERIOR //------------------------------------------------------ /* telhado, vigas de sustentacao */ #declare teto = difference { box { <-375,650,-350>,<4875,1162,3294> pigment {color red 1 green 1 blue 1} } box { <-365,650,-340>,<4865,1152,3284> } } //------------------------------------------------------- //AQUI A CENA FINAL //------------------------------------------------------- #declare fim = union { object {base} object {teto translate <0,-20,0>} object {fachada} object {vidrolat1 translate <1690,0,0>} object {entrada translate <1970,0,0>} object {entrada translate <2250,0,0>} object {vidrolat2 translate <2530,0,0>} object {fachada translate <2810,0,0>} object {nivel1 translate <-15,200,20>} object {nivel2 translate <0,0,25>} } object {fim}