/* * Script: scena.c * * Composizione della scena e settaggio dei parametri di materiale e di texture * mapping. * * */ #include "descriptor/descriptor.h" int main(void) { ITEM a, piano, piano_attr, muro, muro1, muro_attr, cielo, cielo_attr, cornice, cornice1; ITEM tavolo, tav_base1, tav_base2, tav_cil1, tav_cil2, tav_cil3, tav_cil4, tav_disco1, tav_disco2; ITEM sedia, sedia_cuscino, sedia_strutt1, sedia_strutt2, sedia_trave_centrale, sedia_trave_sotto, sedia_tappo_sotto1, sedia_tappo_sotto2, sedia_tappo_sopra1, sedia_tappo_sopra2; ITEM p_piedi, pp_strutt1, pp_strutt2, pp_cuscino, pp_trave1, pp_trave2; ITEM cocktail, cock_bicchiere, cock_cannuccia, cock_liquido, plast_cannuccia; ITEM om, om_tela, om_mazza, om_pezzo_d, om_pezzo_m, om_pezzo_u, om_punta, om_cappuccio, om_c1, om_c2, om_c3, om_c4, om_c5, om_c6, om_c7, om_base, om_sicura_fill, om_sicura_l1, om_sicura_l2, om_asta, om_a1, om_a2, om_a3, om_a4, om_a5, om_a6, om_a7, om_asta_angolo, om_aa1, om_aa2, om_aa3, om_aa4, om_aa5, om_aa6, om_aa7, om_plast; ITEM marmo, legno, stoffa, metallo, vetro, liquido, obj_legno; ITEM scena; /* * Settaggio parametri globali */ set_background(0.447,0.47,0.588,TRUE); set_ambient_light(1,1,1,1.5); create_point_light(-6,-72,100,1,1,1,2.0,150,"luce"); /* * Attributi globali */ legno = create_attribute("legno"); set_color(legno,0.603,0.411,0.317,0.5,0.5); set_reflectivity(legno,0.050,2); marmo = create_attribute("marmo"); set_color(marmo,0,0,0,0.5,0.5); set_reflectivity(marmo,0.070,2); stoffa = create_attribute("stoffa"); set_color(stoffa,0.411,0.545,0.411,0.5,0.5); set_reflectivity(stoffa,0,2); vetro = create_attribute("vetro"); set_color(vetro,1,1,1,0.5,0.5); set_reflectivity(vetro,0,1); set_transparency(vetro,0.87,0.68,1,1.660); metallo = create_attribute("metallo"); set_color(metallo,0.482,0.482,0.450,0.5,0.5); set_reflectivity(metallo,0.280,2); /* * Sedia */ sedia_strutt1 = read_nurbs("s_strutt1.db"); sedia_strutt2 = read_nurbs("s_strutt2.db"); sedia_trave_centrale = read_nurbs("s_trave_centrale.db"); sedia_trave_sotto = read_nurbs("s_trave_sotto.db"); sedia_tappo_sotto1 = read_nurbs("s_tappo_sotto1.db"); sedia_tappo_sotto2 = read_nurbs("s_tappo_sotto2.db"); sedia_tappo_sopra1 = read_nurbs("s_tappo_sopra1.db"); sedia_tappo_sopra2 = read_nurbs("s_tappo_sopra2.db"); sedia_cuscino = read_nurbs("s_cuscino.db"); set_translate(sedia_cuscino,0.134,0.0,-0.255); set_y_rotate(sedia_cuscino,90,1); set_x_rotate(sedia_cuscino,90,1); set_projection_texture(sedia_cuscino,stoffa,"textures/rafia.hr",FALSE,FALSE,0.8,0.9); set_x_rotate(sedia_cuscino,-90,1); set_y_rotate(sedia_cuscino,-90,1); set_translate(sedia_cuscino,-0.134,0.0,0.255); sedia=create_list(sedia_cuscino,"sedia"); sedia=insert_in_list(sedia,sedia_strutt1); sedia=insert_in_list(sedia,sedia_strutt2); sedia=insert_in_list(sedia,sedia_trave_centrale); sedia=insert_in_list(sedia,sedia_trave_sotto); sedia=insert_in_list(sedia,sedia_tappo_sotto1); sedia=insert_in_list(sedia,sedia_tappo_sotto2); sedia=insert_in_list(sedia,sedia_tappo_sopra1); sedia=insert_in_list(sedia,sedia_tappo_sopra2); /* * Poggiapiedi */ pp_cuscino = read_nurbs("pp_cuscino.db"); set_translate(pp_cuscino,-1.3,-0.031,0.217); set_y_rotate(pp_cuscino,90,1); set_x_rotate(pp_cuscino,90,1); set_projection_texture(pp_cuscino,stoffa,"textures/rafia.hr",FALSE,FALSE,0.8,0.9); set_x_rotate(pp_cuscino,-90,1); set_y_rotate(pp_cuscino,-90,1); set_translate(pp_cuscino,1.3,0.031,-0.217); pp_strutt1 = read_nurbs("pp_strutt1.db"); pp_strutt2 = read_nurbs("pp_strutt2.db"); pp_trave1 = read_nurbs("pp_trave1.db"); pp_trave2 = read_nurbs("pp_trave2.db"); p_piedi=create_list(pp_cuscino,"poggiapiedi"); p_piedi=insert_in_list(p_piedi,pp_strutt1); p_piedi=insert_in_list(p_piedi,pp_strutt2); p_piedi=insert_in_list(p_piedi,pp_trave1); p_piedi=insert_in_list(p_piedi,pp_trave2); set_translate(p_piedi,0,-0.42,0); /* * Bicchiere */ liquido = create_attribute("liquido"); set_color(liquido,0,0,1,0.5,0.5); set_reflectivity(liquido,0,1); set_transparency(liquido,0.87,0.68,1,1.330); plast_cannuccia = create_attribute("plastica_cannuccia"); set_color(plast_cannuccia,1,0,0,0.5,0.5); set_reflectivity(plast_cannuccia,0.2,2); cock_bicchiere = read_nurbs("cock_bicchiere.db"); set_attribute(cock_bicchiere,vetro); cock_cannuccia = read_nurbs("cock_cannuccia.db"); set_attribute(cock_cannuccia,plast_cannuccia); cock_liquido = read_nurbs("cock_liquido.db"); set_attribute(cock_liquido,liquido); cocktail = create_list(cock_bicchiere,"cocktail"); cocktail = insert_in_list(cocktail,cock_cannuccia); cocktail = insert_in_list(cocktail,cock_liquido); /* * Ambiente */ piano_attr = create_attribute("cotto"); set_color(piano_attr,0,0,0,0.270,0.270); set_reflectivity(piano_attr,0,2); muro_attr = create_attribute("mattoni"); set_color(muro_attr,0,0,0,0.270,0.270); set_reflectivity(muro_attr,0,2); cielo_attr = create_attribute("cielo"); set_color(cielo_attr,0,0,0,0.270,0.270); set_reflectivity(cielo_attr,0,0); piano = read_nurbs("a_piano.db"); set_domain_texture(piano,piano_attr,"textures/cotto.hr", 0.0,0.08,0.0,0.08,TRUE,1,1); muro = read_nurbs("a_muro1.db"); set_domain_texture(muro,muro_attr,"textures/muro.hr", 0.05,0,0,0.009,TRUE,1,1); muro1=read_nurbs("a_muro2.db"); set_domain_texture(muro1,muro_attr,"textures/muro.hr", 0.05,0,0,0.009,TRUE,1,1); cielo = read_nurbs("cielo_sfera.db"); set_scale(cielo,300,300,300); set_domain_texture(cielo,cielo_attr,"textures/cielo.hr", 0.15,0,0,0.15,TRUE,1,1); a = create_list(piano,"ambiente"); a = insert_in_list(a,muro); a = insert_in_list(a,muro1); a = insert_in_list(a,cielo); /* * Ombrellone */ om_plast = create_attribute("plastica_ombrellone"); set_color(om_plast,1,0.800,0,0.460,0.460); set_reflectivity(om_plast,0.050,2); om_tela = read_nurbs("om_tela.db"); set_translate(om_tela,0.026,0.0,-2.924); set_scale(om_tela,1/3.8,1/3.8,1/3.8); set_y_rotate(om_tela,90,1); set_projection_texture(om_tela,stoffa,"textures/tessuto.hr",FALSE,FALSE,1,0.8); set_y_rotate(om_tela,-90,1); set_scale(om_tela,3.8,3.8,3.8); set_translate(om_tela,-0.026,0.0,2.924); om_mazza = read_nurbs("om_mazza.db"); om_pezzo_u = read_nurbs("om_pezzo_sopra.db"); om_pezzo_m = read_nurbs("om_pezzo_mezzo.db"); om_pezzo_d = read_nurbs("om_pezzo_sotto.db"); om_punta = read_nurbs("om_punta.db"); set_attribute(om_punta,om_plast); om_cappuccio = read_nurbs("om_cappuccio.db"); set_attribute(om_cappuccio,om_plast); om_c1 = create_copy(om_cappuccio,"om_cappuccio1"); set_attribute(om_c1,om_plast); om_c2 = create_copy(om_cappuccio,"om_cappuccio2"); set_attribute(om_c2,om_plast); om_c3 = create_copy(om_cappuccio,"om_cappuccio3"); set_attribute(om_c3,om_plast); om_c4 = create_copy(om_cappuccio,"om_cappuccio4"); set_attribute(om_c4,om_plast); om_c5 = create_copy(om_cappuccio,"om_cappuccio5"); set_attribute(om_c5,om_plast); om_c6 = create_copy(om_cappuccio,"om_cappuccio6"); set_attribute(om_c6,om_plast); om_c7 = create_copy(om_cappuccio,"om_cappuccio7"); set_attribute(om_c7,om_plast); set_z_rotate(om_c1,45,1); set_z_rotate(om_c2,90,1); set_z_rotate(om_c3,135,1); set_z_rotate(om_c4,180,1); set_z_rotate(om_c5,225,1); set_z_rotate(om_c6,270,1); set_z_rotate(om_c7,315,1); om_asta = read_nurbs("om_asta.db"); om_a1 = create_copy(om_asta,"om_asta1"); om_a2 = create_copy(om_asta,"om_asta2"); om_a3 = create_copy(om_asta,"om_asta3"); om_a4 = create_copy(om_asta,"om_asta4"); om_a5 = create_copy(om_asta,"om_asta5"); om_a6 = create_copy(om_asta,"om_asta6"); om_a7 = create_copy(om_asta,"om_asta7"); set_z_rotate(om_a1,45,1); set_z_rotate(om_a2,90,1); set_z_rotate(om_a3,135,1); set_z_rotate(om_a4,180,1); set_z_rotate(om_a5,225,1); set_z_rotate(om_a6,270,1); set_z_rotate(om_a7,315,1); om_asta_angolo = read_nurbs("om_asta_angolo.db"); om_aa1 = create_copy(om_asta_angolo,"om_asta_angolo1"); om_aa2 = create_copy(om_asta_angolo,"om_asta_angolo2"); om_aa3 = create_copy(om_asta_angolo,"om_asta_angolo3"); om_aa4 = create_copy(om_asta_angolo,"om_asta_angolo4"); om_aa5 = create_copy(om_asta_angolo,"om_asta_angolo5"); om_aa6 = create_copy(om_asta_angolo,"om_asta_angolo6"); om_aa7 = create_copy(om_asta_angolo,"om_asta_angolo7"); set_z_rotate(om_aa1,45,1); set_z_rotate(om_aa2,90,1); set_z_rotate(om_aa3,135,1); set_z_rotate(om_aa4,180,1); set_z_rotate(om_aa5,225,1); set_z_rotate(om_aa6,270,1); set_z_rotate(om_aa7,315,1); om_base= read_nurbs("om_base.db"); set_attribute(om_base,om_plast); om = create_list(om_tela,"ombrellone"); om = insert_in_list(om,om_mazza); om = insert_in_list(om,om_pezzo_d); om = insert_in_list(om,om_pezzo_m); om = insert_in_list(om,om_pezzo_u); om = insert_in_list(om,om_punta); om = insert_in_list(om,om_cappuccio); om = insert_in_list(om,om_c1); om = insert_in_list(om,om_c2); om = insert_in_list(om,om_c3); om = insert_in_list(om,om_c4); om = insert_in_list(om,om_c5); om = insert_in_list(om,om_c6); om = insert_in_list(om,om_c7); om = insert_in_list(om,om_asta); om = insert_in_list(om,om_a1); om = insert_in_list(om,om_a2); om = insert_in_list(om,om_a3); om = insert_in_list(om,om_a4); om = insert_in_list(om,om_a5); om = insert_in_list(om,om_a6); om = insert_in_list(om,om_a7); om = insert_in_list(om,om_asta_angolo); om = insert_in_list(om,om_aa1); om = insert_in_list(om,om_aa2); om = insert_in_list(om,om_aa3); om = insert_in_list(om,om_aa4); om = insert_in_list(om,om_aa5); om = insert_in_list(om,om_aa6); om = insert_in_list(om,om_aa7); om = insert_in_list(om,om_base); set_translate(om,0,-1.3,-0.8); /* * Tavolo */ tav_base1 = read_nurbs("tav_base1.db"); tav_base2 = read_nurbs("tav_base2.db"); tav_cil1 = read_nurbs("tav_cil1.db"); set_attribute(tav_cil1,metallo); tav_cil2 = read_nurbs("tav_cil2.db"); set_attribute(tav_cil2,metallo); tav_cil3 = read_nurbs("tav_cil3.db"); set_attribute(tav_cil3,metallo); tav_cil4 = read_nurbs("tav_cil4.db"); set_attribute(tav_cil4,metallo); tav_disco1 = read_nurbs("tav_disco1.db"); set_attribute(tav_disco1,vetro); tav_disco2 = read_nurbs("tav_disco2.db"); set_translate(tav_disco2,0,-1.5,0.012); set_y_rotate(tav_disco2,90,1); set_scale(tav_disco2,1.0/0.7,1.0/0.7,1.0/0.7); set_projection_texture(tav_disco2,marmo,"textures/marmo.hr",FALSE,FALSE,0.6,0.8); set_scale(tav_disco2,0.7,0.7,0.7); set_y_rotate(tav_disco2,-90,1); set_translate(tav_disco2,0,1.5,-0.012); tavolo = create_list(tav_base1,"tavolo"); tavolo = insert_in_list(tavolo,tav_base2); tavolo = insert_in_list(tavolo,tav_disco1); tavolo = insert_in_list(tavolo,tav_disco2); tavolo = insert_in_list(tavolo,tav_cil1); tavolo = insert_in_list(tavolo,tav_cil2); tavolo = insert_in_list(tavolo,tav_cil3); tavolo = insert_in_list(tavolo,tav_cil4); /* * Creazione lista oggetti di legno */ obj_legno = create_list(sedia_strutt1,"obj_legno"); obj_legno = insert_in_list(obj_legno,sedia_strutt2); obj_legno = insert_in_list(obj_legno,sedia_trave_centrale); obj_legno = insert_in_list(obj_legno,sedia_trave_sotto); obj_legno = insert_in_list(obj_legno,sedia_tappo_sotto1); obj_legno = insert_in_list(obj_legno,sedia_tappo_sotto2); obj_legno = insert_in_list(obj_legno,sedia_tappo_sopra1); obj_legno = insert_in_list(obj_legno,sedia_tappo_sopra2); obj_legno = insert_in_list(obj_legno,tav_base1); obj_legno = insert_in_list(obj_legno,tav_base2); obj_legno = insert_in_list(obj_legno,pp_strutt1); obj_legno = insert_in_list(obj_legno,pp_strutt2); obj_legno = insert_in_list(obj_legno,pp_trave1); obj_legno = insert_in_list(obj_legno,pp_trave2); obj_legno = insert_in_list(obj_legno,om_mazza); obj_legno = insert_in_list(obj_legno,om_pezzo_d); obj_legno = insert_in_list(obj_legno,om_pezzo_m); obj_legno = insert_in_list(obj_legno,om_pezzo_u); obj_legno = insert_in_list(obj_legno,om_asta); obj_legno = insert_in_list(obj_legno,om_a1); obj_legno = insert_in_list(obj_legno,om_a2); obj_legno = insert_in_list(obj_legno,om_a3); obj_legno = insert_in_list(obj_legno,om_a4); obj_legno = insert_in_list(obj_legno,om_a5); obj_legno = insert_in_list(obj_legno,om_a6); obj_legno = insert_in_list(obj_legno,om_a7); obj_legno = insert_in_list(obj_legno,om_asta_angolo); obj_legno = insert_in_list(obj_legno,om_aa1); obj_legno = insert_in_list(obj_legno,om_aa2); obj_legno = insert_in_list(obj_legno,om_aa3); obj_legno = insert_in_list(obj_legno,om_aa4); obj_legno = insert_in_list(obj_legno,om_aa5); obj_legno = insert_in_list(obj_legno,om_aa6); obj_legno = insert_in_list(obj_legno,om_aa7); set_domain_texture(obj_legno,legno,"textures/legno_chiaro.hr",0,1,1,0,TRUE,0.8,0.9); /* * Composizione scena finale */ scena = create_list(a,"scena"); scena = insert_in_list(scena,tavolo); scena = insert_in_list(scena,sedia); scena = insert_in_list(scena,p_piedi); scena = insert_in_list(scena,cocktail); scena = insert_in_list(scena,om); save_scene("scena.md","scena",scena); return(0); }